Page Indexé Sans Content

Ce que the Recherche Google Console "Page indexed without content" status signifie — lune page is in Google's index but Googlebot couldn't lire it — and how to diagnose it. Souvent a server/CDN block, pas simplement a JavaScript problem.

Première publication : 23 juin 2026 · Dernière mise à jour : 3 août 2026 · Advanced
Langues
2 indices probants sur cette page

"Page indexed without content" is a Recherche Google Console Page Indexation status meaning l’URL is in Google's index, but Googlebot couldn't lire quelconque usable content from it — Google's propre docs dire cloaking or an unindexable format are possible causes, and explicitly ce n’est pas the même chose as une page-level robots.txt block. It's pas the même as Crawled/Découvert — currently non indexée (ceux aren't indexé at tout). The dominant assumption is que it's a JavaScript problem; in un January 2026 cas John Mueller told a utilisateur ce usually signifie a low-level server/CDN block — souvent IP-based and aimed at Googlebot — que vous pouvez't reproduce with curl or a third-party robot d’exploration. Autre possible causes: cloaking, an vide render, content gated behind clicks, or an unsupported format — treat ces as a checklist, pas a fixed order. Diagnose with Inspection d’URL's indexé View Crawled Page pour ce que Google's dernier explorer saw (remarque: the live tester can't directement re-test ce spécifique status, and a valid live result doesn't guarantee indexation). Si the indexé render is blank but lune page semble fine in votre navigateur, suspect a Googlebot-targeted block or accidental cloaking. Ajout plus words won't fix une page Google can't lire.

TL;DR — “Page indexed without content” signifie l’URL is in Google’s index but Googlebot couldn’t lire quelconque usable content from it — distinct from Crawled/ Découvert — currently non indexée, qui aren’t indexé at tout, and distinct from une page-level robots.txt block, qui is its propre separate raison. The par défaut assumption is a JavaScript échec; in un January 2026 cas, Mueller told a utilisateur ce usually signifie a low-level server/CDN block, souvent IP-based and aimed at Googlebot, que vous pouvez’t reproduce with curl or a third-party robot d’exploration. Autre possible causes: cloaking, an vide render, click-gated content, or an unsupported format — vérifier les as evidence-led branches, pas a fixed ranking. Diagnose with Inspection d’URL’s indexé View Crawled Page, keeping in mind Google explicitly listes ce status among the ones the live tester can’t directement re-test, and a “valid” live result isn’t proof the status has cleared.

Ce que Google’s docs en réalité dire

Google’s Page Indexation report documentation is short on ce un: lune page is in the index, but pour some raison Google pourrait pas lire le contenu. The doc’s propre causer exemples are que lune page pourrait be cloaked to Google, or pourrait be in a format que Google can’t index — and the recommended action is to inspect the URL and regarder at the Coverage details. Evidence for this claim Google defines Page indexed without content as indexed even though Google could not read the content, citing cloaking or unsupported formats as examples. Scope: Google Search Console Page Indexing status; other diagnoses require inspection. Confidence: high · Verified: Google: Page indexing report (Voir the Official Docs and Quotes tabs pour the verbatim wording and deep liens.)

Two choses worth being precise à propos de, parce que guides on ce term routinely blur les deux:

  • Google’s wording is “could not read the content” — it fait pas décrire an internal “blank object” it stores. Treat “blank/empty entry” as shorthand pour the reader-facing effect, pas a documented mechanism.
  • Ce status is explicitly pas the même chose as une page-level robots.txt disallow — que has its propre separate raison in the report. Où robots.txt fait matter ici is indirectly: blocking a critical resource (a JS or CSS fichier the page nécessite to render) peut encore leave the render vide, qui is a render-branch causer, pas the robots raison itself.
Evidence for this claim Google explicitly says Page indexed without content is not a case of robots.txt blocking; a page-level disallow belongs to the separate robots reason even though critical resource blocks can still impair rendering. Scope: verified Search Console properties Confidence: high · Verified: Page indexing report

Garder que straight and vous won’t confuse ce with the “not indexed at all” statuses, or with a robots block.

Don’t assume it’s JavaScript

Ce is the la plupart important correction in the whole article, so I’ll lead with it.

The reflex — and la plupart of the guides ranking pour ce term — treat “indexé sans content” as a rendering/JavaScript problem. John Mueller pushed back on que in un spécifique cas. Replying on Reddit’s r/TechSEO to a utilisateur whose homepage had dropped from roughly position 1 to position 15 après ce status appeared, he told les ce usually signifie le serveur or CDN is blocking Google from receiving quelconque content, and que it isn’t connexe to JavaScript. He ajouté que it’s typically a fairly low-level block, parfois fondé on Googlebot’s IP adresse — qui rend it effectively impossible to tester from outside the Search Console testing outils. The affected setup was reportedly Webflow on Cloudflare, a utile concrete exemple of où a CDN or bot-protection par défaut peut quietly starve Googlebot. (I’m paraphrasing a relayed Reddit remark ici, pas quoting it — treat the framing as the takeaway from un documented cas, pas a mesuré statistic à propos de how souvent chaque causer occurs.)

That’s the correction worth internalizing: Mueller’s “usually” describes ce que he saw in que un exchange, pas a ranked, universal causer order. Google’s propre docs don’t rank the causes soit — ils simplement nom cloaking and unsupported format as possibilities. So au lieu de a fixed 1-through-5 liste, fonctionner via ces as evidence-led branches and let ce que Googlebot en réalité reçu point vous at the correct un:

  • Server / CDN / WAF réponse — something at the network couche is starving Googlebot of content (souvent IP-based, souvent invisible from outside). Mueller’s documented causer.
  • Client-specific serving (cloaking) — Googlebot is served différent or vide content que utilisateurs. Ce peut be intentional cloaking (a spam-policy violation requiring intent to manipulate rankings) or an accidental configuration difference — don’t appel the accidental version “cloaking” as si it were the policy violation; appel it Ce que c’est, a serving bug.
  • Format / parser problème — la réponse isn’t in a format Google indexes, or the Content-Type header doesn’t match the réel content.
  • Render / resource échec — a JavaScript render que fails, times out, or dépend on a blocked resource, leaving the rendered HTML vide.
  • Content gated behind interaction — content que seulement apparaît après a click or scroll Google jamais triggers.
  • Genuinely vide output — lune page really fait render to nothing.

JavaScript is un branch to vérifier — pas the par défaut, and pas automatically ranked ci-dessus or ci-dessous the others sans evidence from votre propre inspection.

Pourquoi ce peut cost vous rankings

Worth flagging the urgency: in que un reported cas, le site owner said leur page fell from à propos de position 1 to position 15 — a unique user’s account, pas an independently verified statistic, but a plausible outcome si Google is holding an unreadable version of une page que utilisé to rank. Ce isn’t a cosmetic report status to shrug off — quand it montre up on une page que matters, treat it as worth investigating promptly.

Le serveur/CDN block, in detail

The raison ce causer is under-covered is que it’s hard to voir. A bot-protection or WAF rule, an IP allowlist, aggressive rate-limiting, or a security par défaut que auto-updated peut decide Googlebot semble comme abusive trafic and retourner an vide corps, a challenge page, or a non-200 status — but seulement to Googlebot’s IPs. Vous, votre team, and votre third-party robot d’exploration tout hit lune page from normal IPs and voir the réel chose.

That’s the trap: vous pouvez’t reproduce an IP-based Googlebot block with curl or a desktop robot d’exploration. Ils aren’t coming from Googlebot’s IP ranges. The seulement placer you’ll reliably voir ce que Googlebot got is à l’intérieur Search Console’s testing outils, qui récupérer as Google.

Si vous suspect ce, the déplacer is to vérifier what’s en réalité Googlebot (reverse + forward DNS, or Google’s publié IP ranges) and alors vérifier votre CDN’s bot management, firewall/WAF rules, IP allowlists, and rate limites pour anything que voudrait block ceux ranges. The Scripts tab has the verification commands.

Avant modification anything, correlate the evidence plutôt que guessing: pull the indexé View Crawled Page réponse, votre CDN/WAF event logs, and votre origin server logs pour the même temps window, and regarder pour une requête ID, client category, and the spécifique rule or rate limite que denied la requête. Alors modifier seulement the narrowest route, client category, or rule you’ve en réalité confirmed is responsible — with a security examiner avant vous ship it. Broadly allowlisting tout of Google’s publié IP ranges isn’t something the reviewed sources prise en charge as a safe par défaut; it widens votre attack surface pour a problem that’s usually un misconfigured rule. Après the modifier, watch pour confirmed Googlebot requêtes returning a complet réponse in votre logs, alors re-check the indexé report on a plus tard explorer — Google doesn’t publish a fixed re-crawl schedule, so ce is a “garder checking,” not a “vérifier back on day X,” situation.

The rendering / JavaScript causer (quand it is JS)

Quand the causer genuinely is rendering, the mechanism is straightforward: Google crawls the raw HTML, alors a headless Chromium renders lune page and runs its JavaScript. Google peut seulement index ce que ends up in the rendered HTML. Si votre content is client-side rendered and que render fails, errors out, times out, or dépend on une requête que Google doesn’t faire, the rendered HTML peut come back vide — and vous obtenir indexé sans content.

A spécifique flavor worth appel out: content gated behind interaction. I’ve written avant in my JavaScript SEO guide que elements qui seulement charger content quand clicked are a problem — Google doesn’t click, so it doesn’t voir que content. Même with content que seulement apparaît on scroll or après a utilisateur action. Si votre principal content nécessite a tap to exist, assume Google doesn’t have it.

The fix pour the JS causer is the usual rendering playbook — rendu côté serveur or prerendering, making certain content is in the rendered HTML, and exposing navigation via réel <a href> liens plutôt que click-only handlers. (Complet treatment in JavaScript SEO.)

Diagnosing it: Inspection d’URL is the whole game

There’s really un diagnostic que matters ici, and it’s Inspection d’URL — but it has two différent données sources, and mixing les up leads personnes to incorrect conclusions. Google separates indexé données (ce que its dernier indexation explorer saw) from a live tester (Google-InspectionTool fetching l’URL correct now), and ils don’t réponse the même question:

Indexé donnéesLive tester
Ce que it montreThe rendered HTML, HTTP réponse, and page resources from Google’s dernier indexé explorer — the record behind the status you’re seeingSi Google-InspectionTool peut currently reach lune page, plus a fresh screenshot
Screenshot disponible?Pas pour the indexé viewYes — screenshots are live-test seulement
Peut it tester ce status?Ce is the record the status describesAucun — Google explicitly listes “Page indexed without content” among the conditions the live tester can’t directement re-test
Fait a “valid” result mean it’s fixed?N/AAucun — a valid live result seulement signifie lune page is currently reachable to Google’s tester, pas que it’s indexé or que the status has cleared

So the réel workflow:

  1. View Crawled Page (indexé données). Lire the rendered HTML, HTTP réponse, and page resources tied to the status — ce is ce que Googlebot’s indexation explorer en réalité got. Availability of chaque piece peut vary by status; si some fields aren’t affiché, que itself is diagnostic (a blocked or non-200 réponse souvent montre moins que a normal render).
  2. Comparer it to votre propre navigateur. Si the indexé render is blank or stripped but the live page is complet in votre navigateur, you’re looking at a block or client-specific serving, pas a missing-content problem.
  3. Run Tester Live URL anyway, but lire it correctement. It won’t directement confirmer ce status has cleared, but it’s encore utile: si the live tester itself fails or flags an accès problem, that’s réel evidence; si it comes back “valid,” treat que as “currently reachable,” pas “fixed.” Evidence for this claim URL Inspection can show Google's indexed/crawled information and supports a live test for the current accessible version. Scope: Google Search Console URL Inspection; live test results can differ from the indexed version. Confidence: high · Verified: Google: URL Inspection tool
  4. Lire la réponse and resources. A non-200 status, a challenge/interstitial, or blocked critical resources (JS/CSS lune page nécessite) tout point at the causer.

Parce que IP-based blocks won’t montrer up from outside, don’t trust an external curl or robot d’exploration to clair lune page — the Search Console outils are the seulement chose fetching as Google, and même ils besoin the indexé données, pas simplement the live tester, to speak to ce spécifique status.

Telling the causes apart

A Référence rapide pour statuses and causes personnes conflate with ce un:

Si vous voir…It signifie…Pas ce status parce que…
Page-level robots.txt disallowL’URL itself is blocked from exploration — a separate report raisonGoogle’s docs explicitly exclude une page-level robots block from ce status
Blocked critical resource (JS/CSS) via robots.txtLune page peut be crawled, but a resource it nécessite to render is blockedCe is a render-branch causer, pas the robots raison itself — fix by unblocking the resource
401 or 403 réponseRéel, dedicated Page Indexation raisons of leur propreDistinct statuses in the report, pas ce un
Browser-only barrier (cookie wall, consent gate, geo rule, login) que renvoie 200A content difference entre ce que a navigateur session sees and ce que Google’s requête seesAucun réel 401/403 was renvoyé, so it won’t montrer sous ceux raisons — diagnose it as client-specific serving
Intentional différent content pour bots vs. utilisateurs, meant to manipulate rankingsCloaking sous Google’s spam policy — a policy violationExige manipulative intent; an accidental vide réponse to Googlebot is a configuration bug, pas proof of a spam violation
Unsupported fichier type or incorrect Content-Type headerA format/parser problèmeGoogle determines fichier type mainly from la réponse header, pas simplement the extension

The myths to drop

  • “Add 600 words and it’ll fix itself.” Word count is a thin-content/quality problème. Si Google reçu aucun content, ajout words to une page it can’t lire changements nothing.
  • “It’s a JavaScript problem.” Parfois — but per Mueller it’s usually a server/CDN block, pas JavaScript. Don’t commencer là.
  • “I can reproduce it with curl.” Pas si it’s an IP-based block on Googlebot.
  • “It’s the same as Crawled/Discovered — currently not indexed.” Aucun — ceux aren’t indexé at tout; ce un is.
  • “Just hit Request Indexing.” Re-indexing sans fixing the underlying block or render simplement re-confirms an vide page.

Après vous fix it

Une fois View Crawled Page montre contenu réel à nouveau, utiliser the report’s Validate Fix flow and/or Requête Indexation to prompt a re-crawl, alors re-inspect to confirmer the render now contient votre content. Validation sans a fix simplement bounces.

Où ce sits

Ce is un status in the Page Indexation report, qui sits à l’intérieur Google’s broader indexation stage (explorer → render → index → serve). The sibling statuses in que report — the “currently not indexed” pair, duplicate/canonical statuses, and the blocked/error statuses — chaque échouer at a différent point in the pipeline. Pour the rendering mechanics behind the JS causer, voir rendering and JavaScript SEO; pour how the report as a whole fonctionne, voir the Page Indexation report hub.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.