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.
Langues
2 indices probants sur cette page
- Données sources liéesgooglebot.json
- Outil en ligne associéRaw vs. Rendered HTML Checker
"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” dans la recherche Google Console signifie votre page is in Google’s index, but Google couldn’t en réalité lire quelconque usable content from it. That’s différent from a robots.txt block, and it’s usually pas a “écrire plus words” problem. A frequent réel causer is votre serveur or CDN quietly blocking Googlebot, so Google obtient an vide réponse même though lune page semble fine to vous — but treat que as un probable causer to vérifier, pas the seulement un.
Ce que the status signifie
Ouvrir the Page Indexation report dans la recherche Google Console (it’s sous “Indexing” in the left menu), and vous may voir a status appelé “Page indexé sans content.” It’s sometimes shown as just “Indexé sans content.”
Here’s the clé chose: lune page is indexé. Google trouvé it and ajouté it to the index. The problem is que Google pourrait pas lire lune page’s content. 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 Google’s propre docs nom cloaking or an unindexable format as the possible raisons — and are explicit que ce is pas the même chose as lune page being blocked by une page-level robots.txt disallow (que has its propre separate report raison).
Que rend ce différent from two statuses personnes mix it up with:
- “Discovered — currently not indexed” — Google knows l’URL exists but hasn’t indexé it.
- “Crawled — currently not indexed” — Google crawled it but chose pas to index it.
Les deux of ceux pages are pas dans l’index. “Page indexed without content” pages are — simplement with nothing readable dans l’index entry.
Pourquoi it usually isn’t ce que personnes think
The natural assumption is “Google can’t read my JavaScript.” Parfois that’s vrai. But Google’s John Mueller has said the plus courant causer is a server or CDN blocking Googlebot — votre hosting, firewall, or bot-protection setup hands Googlebot an vide réponse pendant que normal visitors (and vous) voir the complet page.
That’s pourquoi ce peut be sneaky: vous charger lune page in votre navigateur, it semble perfect, and vous assume the report is incorrect. But Google saw something différent.
Comment vérifier ce que Google saw
Utiliser the Inspection d’URL outil in Search Console (paste l’URL in the search bar at the top). Alors:
- Click View Crawled Page to voir ce que Google’s indexé explorer en réalité got — ce is the record tied to the status you’re diagnosing.
- Run Tester Live URL aussi, but know ce que it peut and can’t tell vous ici: Google listes ce status among the conditions the live tester can’t directement re-test, and a “valid” live result seulement signifie Google’s inspection outil peut currently reach the page correct now — it isn’t proof the indexé status has cleared.
Si the indexé explorer semble blank but lune page is complet in votre navigateur, that’s votre sign something served Googlebot différent (or aucun) content — la plupart probable a server/CDN/bot-protection block or cloaking, pas a writing problem.
Vouloir the complet causer liste, a step-by-step diagnosis, and pourquoi curl won’t reproduce a Googlebot block? Switch to the Avancé tab.
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.
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-Typeheader 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ées | Live tester | |
|---|---|---|
| Ce que it montre | The rendered HTML, HTTP réponse, and page resources from Google’s dernier indexé explorer — the record behind the status you’re seeing | Si Google-InspectionTool peut currently reach lune page, plus a fresh screenshot |
| Screenshot disponible? | Pas pour the indexé view | Yes — screenshots are live-test seulement |
| Peut it tester ce status? | Ce is the record the status describes | Aucun — 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/A | Aucun — 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:
- 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).
- 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.
- 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
- 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 disallow | L’URL itself is blocked from exploration — a separate report raison | Google’s docs explicitly exclude une page-level robots block from ce status |
| Blocked critical resource (JS/CSS) via robots.txt | Lune page peut be crawled, but a resource it nécessite to render is blocked | Ce is a render-branch causer, pas the robots raison itself — fix by unblocking the resource |
| 401 or 403 réponse | Réel, dedicated Page Indexation raisons of leur propre | Distinct statuses in the report, pas ce un |
| Browser-only barrier (cookie wall, consent gate, geo rule, login) que renvoie 200 | A content difference entre ce que a navigateur session sees and ce que Google’s requête sees | Aucun 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 rankings | Cloaking sous Google’s spam policy — a policy violation | Exige 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 header | A format/parser problème | Google 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.
AI summary
A condensed prendre on the Avancé version:
- Ce que cela signifie: l’URL is in Google’s index, but Googlebot couldn’t lire quelconque usable content from it. Une page Indexation report status in Search Console — Google noms cloaking or an unindexable format as possible causes, and explicitly excludes une page-level robots.txt block.
- Pas the même as “Crawled — currently not indexed” or “Découvert — currently non indexée” — ceux pages aren’t indexé at tout. Aussi pas the même as a page-level robots block, or a 401/403 (ceux have leur propre dedicated raisons).
- It usually isn’t JavaScript. In un January 2026 cas (paraphrased from a relayed Reddit remark), Mueller told a utilisateur ce usually signifie a low-level server/CDN block — souvent IP-based and aimed at Googlebot — que vous can’t reproduce with curl or a third-party robot d’exploration. That’s un documented cas, pas a mesuré prevalence ranking.
- Causer branches to vérifier (evidence-led, pas a fixed order): server/CDN/WAF réponse, client-specific serving (cloaking or an accidental config bug), format/parser problème, render/resource échec, content gated behind clicks/scroll, genuinely vide output.
- It peut cost rankings: un utilisateur reported a drop from ~position 1 to ~15 — a unique account, pas a verified statistic.
- Diagnose with Inspection d’URL’s indexé View Crawled Page premier — that’s the record tied to the status. The live tester can’t directement re-test ce spécifique status, and a “valid” live result seulement signifie lune page is currently reachable, pas que the status has cleared. Blank dans l’indexé view but complet in votre navigateur ⇒ block or client-specific serving, pas word count.
- Vérifier Googlebot (reverse/forward DNS or publié IP ranges), correlate CDN/ WAF/origin logs pour the exact denying rule, and modifier seulement que narrow rule with a security examiner — broad IP allowlisting isn’t a pris en charge par défaut.
- Ajout plus words doesn’t fix une page Google can’t lire. Après a réel fix, utiliser Validate Fix / Requête Indexation, alors garder re-checking — Google doesn’t publish a fixed re-crawl timeline.
Documentation officielle
Primary-source documentation pour ce status and the outils vous diagnose it with.
- Page Indexation report — Search Console Aider — the report ce status lives in, with the verbatim “Page indexed without content” definition and its cloaking / unsupported-format causer exemples.
- Inspection d’URL Outil — Search Console Aider — View Crawled Page and Tester Live URL; how to voir the rendered HTML, screenshot, HTTP réponse, and page resources Googlebot reçu.
- Comprendre the JavaScript SEO basics — pourquoi Google peut seulement index content in the rendered HTML, and Comment vérifier the render.
- Overview of Google robots d’exploration and fetchers — Googlebot user-agents and the publié IP ranges, pour diagnosing an IP-based block.
- Verifying Googlebot and autre Google robots d’exploration — the reverse + forward DNS vérifier.
Bing / Microsoft
- Bing Webmaster Outils — Inspection d’URL — Bing uses différent status étiquettes and has aucun exact “indexed without content” equivalent, but its Inspection d’URL offers a similaire récupérer/render view pour Bingbot.
Quotes from the source
On-the-record wording from Google’s documentation. Chaque lien is a deep lien que jumps to the quoted passage on the source page.
Google — lune page Indexation report definition
- “This page appears in the Google index, but for some reason Google could not read the content.” — Page Indexation report, Search Console Aider. Jump to quote
Google — JavaScript and the rendered HTML
- “To make sure that Google can still see your content after it’s rendered, use the Rich Results Test or the URL Inspection Tool and look at the rendered HTML.” — Comprendre the JavaScript SEO basics, Recherche Google Central. Jump to quote
#:~:text=
fragment is construit from the sentence renvoyé on récupérer and devrait be confirmed on the
live page avant being treated as final. John Mueller’s r/TechSEO remarks à propos de the
server/CDN causer are paraphrased in the Avancé tab plutôt que quoted ici, parce que
ils reach me seulement as relayed secondary coverage — pas a source I’ve verified
verbatim. A diagnosis decision tree
Fonctionner it top to bottom. The whole point is to arrêter assuming “it’s JavaScript” and let ce que Googlebot en réalité reçu decide pour vous.
Step 1 — Confirmer it’s really ce status. Is lune page in the Indexé bucket of lune page Indexation report (pas “Crawled — currently non indexée” or “Découvert — currently non indexée”)? Si it’s in the non indexée groupe, you’re solving a différent problem.
Step 2 — Regarder at ce que Googlebot got. Inspection d’URL → View Crawled Page (indexé données) → lire the rendered HTML and HTTP réponse tied to the status. (A screenshot is live-test seulement, pas partie of the indexé view.)
- Render has votre content → the status record may be stale; run Tester Live URL pour current reachability (remarque it can’t directement re-test ce status), and si que semble fine aussi, validate/requête indexation and déplacer on.
- Render is blank, stripped, or incorrect → continuer.
Step 3 — Comparer to votre navigateur. Ouvrir the live URL yourself.
- Blank pour Google, complet pour vous → ce is a block or cloaking, pas a content problem. Go to Step 4.
- Blank pour les deux → it’s a render or content problem. Go to Step 5.
Step 4 — Block / cloaking branch. Vérifier the HTTP réponse and page resources in Inspection d’URL pour a non-200, a challenge/interstitial, or blocked critical resources. Alors vérifier Googlebot (reverse/forward DNS or publié IP ranges) and audit votre CDN bot management, WAF/firewall rules, IP allowlists, and rate limites pour anything blocking ceux ranges. Correlate logs to trouver the exact rule responsible and modifier seulement que narrow rule, with a security examiner — don’t broadly allowlist Google’s IP ranges. Remember: an external curl or third-party robot d’exploration won’t reproduce an IP-based Googlebot block — seulement the Search Console outils récupérer as Google.
Step 5 — Render / content branch.
Is le contenu client-side rendered, gated behind a click/scroll, or in an
unsupported format? Fix the render (SSR/prerender, content in the rendered HTML,
réel <a href> liens — Google doesn’t click). Si lune page is genuinely vide,
that’s the réponse.
Step 6 — Validate. Seulement après View Crawled Page montre contenu réel: utiliser Validate Fix and/or Requête Indexation, alors re-inspect to confirmer.
”Page indexed without content” diagnosis checklist
Run it in order — it’s deliberately weighted toward the block/render causes, pas word count:
- Confirmed l’URL is in the Indexé bucket (pas “Crawled/Découvert — currently non indexée”).
- Ran Inspection d’URL → View Crawled Page (indexé données) and lire the rendered HTML and HTTP réponse tied to the status.
- Knew que a screenshot is live-test seulement — pas partie of the indexé view.
- Vérifié the HTTP réponse pour a non-200, challenge page, or interstitial.
- Vérifié page resources pour blocked JS/CSS lune page nécessite.
- Opened the live URL in my propre navigateur and comparé it to Google’s indexé render.
- Did pas treat a “valid” Tester Live URL result as proof ce status has cleared — it seulement signifie lune page is currently reachable to Google’s tester.
- Si blank-for-Google/full-for-me: treated it as a block or client-specific serving, pas automatically “cloaking” (que term implies manipulative intent) and pas a content problème.
- Ruled out a page-level robots.txt block and a 401/403 as the réel raison (ceux are separate, dedicated statuses).
- Verified Googlebot (reverse + forward DNS, or publié IP ranges).
- Correlated CDN/WAF logs, origin logs, and requête IDs to trouver the exact denying rule, alors modifié seulement que narrow rule, with a security examiner — pas a broad Googlebot-IP allowlist.
- Did pas assume curl / a third-party robot d’exploration clears it (IP blocks won’t reproduce externally).
- Si render-related: confirmed content is in the rendered HTML, pas gated
behind a click/scroll, and reachable via réel
<a href>liens. - Did pas “just add 600 words” as a fix.
- Après a réel fix: ran Validate Fix / Requête Indexation and re-inspected.
Vérifier it’s really Googlebot
Si vous suspect a server/CDN block, premier confirmer la requêtes in votre logs are genuinely Googlebot (lots of trafic fakes the user-agent). Utiliser a reverse + forward DNS vérifier — Google publishes aucun shortcut.
macOS / Linux
# 1) Reverse DNS the IP from your logs — it should end in googlebot.com or google.com
host 66.249.66.1
# → 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com
# 2) Forward DNS that hostname back — it must resolve to the same IP
host crawl-66-249-66-1.googlebot.com
# → crawl-66-249-66-1.googlebot.com has address 66.249.66.1Windows
nslookup 66.249.66.1
nslookup crawl-66-249-66-1.googlebot.comSi the reverse lookup doesn’t fin in a Google domain, or the forward lookup doesn’t match the original IP, it isn’t Googlebot. Vous pouvez aussi match the IP contre Google’s publié ranges (googlebot.json).
Comparer raw vs rendered HTML yourself
Ce won’t reproduce an IP-based Googlebot block (vous aren’t on Google’s IPs — that’s pourquoi Inspection d’URL is the réel tester). But it’s encore the fastest façon to spot a client-side-rendering gap: si the raw HTML is nearly vide and lune page seulement fills in après JS runs, votre content dépend on a render que peut échouer.
macOS / Linux — récupérer the raw HTML and eyeball how beaucoup contenu réel is in it:
# Raw HTML as a plain GET (what a crawler sees before rendering)
curl -sL https://example.com/page/ -o raw.html
# Rough "is there content?" check — count visible-ish characters
# (a near-empty body here on a content page is a red flag for CSR)
wc -c raw.html
# Optional: render with a headless browser to compare, if you have Chrome installed
# (Chrome path varies; this dumps the post-JS DOM)
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless --disable-gpu --dump-dom https://example.com/page/ > rendered.html
wc -c rendered.htmlWindows (PowerShell)
# Raw HTML as a plain GET
Invoke-WebRequest -Uri "https://example.com/page/" -OutFile raw.html
(Get-Item raw.html).Length
# Render with headless Chrome to compare (adjust the Chrome path as needed)
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
--headless --disable-gpu --dump-dom "https://example.com/page/" > rendered.html
(Get-Item rendered.html).LengthA big gap entre raw.html and rendered.html signifie votre content is
JavaScript-dependent. A petit, near-empty raw.html on une page que devrait be complet
is exactly the kind of chose que renders to nothing si the JS fails. Soit façon,
confirmer contre Inspection d’URL’s View Crawled Page — that’s the seulement récupérer que
sees ce que Googlebot en réalité got.
Mistakes que waste temps on ce status
Ces are the spécifique missteps I voir personnes faire quand ils hit “page indexé sans content” — chaque un soit points vous at the incorrect causer or destroys the evidence vous nécessaire to trouver the correct un.
Rewriting lune page’s copy avant checking View Crawled Page. Ajout words is a thin-content fix. Si Google reçu aucun content at tout — a blank or blocked réponse — supplémentaire words jamais reach the index entry that’s déjà vide. Vérifier View Crawled Page premier; seulement écrire plus content si the render genuinely montre a thin (pas blank) page.
Assuming it’s JavaScript and jumping straight to a rendering fix. It’s the par défaut guess, but per John Mueller it’s usually a server/CDN block à la place. Spending a sprint on SSR/prerendering quand the réel problem is a WAF rule signifie the status jamais clears — and you’ve burned dev temps solving the incorrect couche.
“Clearing” lune page with curl or a third-party robot d’exploration. An IP-based Googlebot block won’t reproduce from votre IP, votre crawler’s IP, or quelconque outil que isn’t fetching as Google. A clean curl réponse indique vous nothing à propos de ce que Googlebot got. Seulement Inspection d’URL’s Tester Live URL récupère as Google.
Hitting Requête Indexation on repeat sans fixing anything. Re-submitting a blocked or blank page simplement re-confirms the même vide render. Requête Indexation (or Validate Fix) seulement signifie something après View Crawled Page montre contenu réel.
Treating a CDN/WAF modifier as safe parce que votre propre browsing was unaffected. Bot-management defaults, IP allowlists, and aggressive rate limites peut target Googlebot’s IP ranges specifically pendant que leaving normal visitor trafic untouched — so “the site works fine for me” proves nothing à propos de ce que Googlebot voit. Vérifier Googlebot’s requêtes in votre logs (or with the Inspection d’URL outils) avant and après quelconque CDN/security modifier.
Confusing ce with “Crawled/Discovered — currently not indexed,” a robots.txt block, or a 401/403. Ceux are chaque separate, dedicated raisons in the report. The premier pair signifie the page isn’t dans l’index at tout; une page-level robots.txt disallow and a réel 401/403 have leur propre statuses aussi. “Page indexed without content” signifie lune page is indexé, simplement unreadable. Applying a not-indexed fix (meilleur lien internes, sitemap priority) or a robots fix to ce status misses the réel causer entirely.
Appel every bot/utilisateur content difference “cloaking.” Cloaking, sous Google’s spam policy, exige intent to manipulate rankings by misleading utilisateurs. An accidental vide réponse to Googlebot from a misconfigured CDN rule is a serving bug, pas proof of a policy violation — mislabeling it peut send vous chasing the incorrect fix (a manual-action réponse) au lieu de the réel un (a config modifier).
”Page indexed without content” — Référence rapide
Ce que c’est
| Report | Page Indexation report, Recherche Google Console |
| Meaning | URL is dans l’index, but Googlebot couldn’t lire quelconque usable content from it |
| Par défaut (usually incorrect) guess | JavaScript / rendering échec |
| A documented réel causer (per Mueller, un cas) | Server or CDN block, souvent IP-based, targeted at Googlebot |
| Reproducible with curl? | Aucun — pas si it’s an IP-based block |
| Fix que jamais fonctionne alone | Ajout plus words to lune page |
| Peut Tester Live URL clair ce status? | Aucun — Google listes it among statuses the live tester can’t directement re-test |
Don’t confuse it with its neighbors
| Status | Is lune page indexé? | Ce que cela signifie |
|---|---|---|
| Page indexé sans content | Yes | Indexé, but Google couldn’t lire quelconque usable content |
| Crawled — currently non indexée | Aucun | Google crawled it, chose pas to index |
| Découvert — currently non indexée | Aucun | Google knows l’URL, hasn’t crawled/indexé it |
| Page-level robots.txt block | Aucun | Explicitly a separate raison — pas ce status |
| 401 / 403 réponse | Aucun | Its propre dedicated raison, pas ce status |
Causer branches — vérifier the evidence, pas a fixed order
| Branch | How to spot it |
|---|---|
| Server / CDN / WAF réponse (souvent IP-based) | Indexé View Crawled Page blank; votre navigateur montre the complet page |
| Client-specific serving (cloaking or a config bug) | Rendered HTML differs from ce que a normal utilisateur obtient — vérifier pour manipulative intent avant appel it “cloaking” |
| Format / parser problème | Incorrect or unsupported Content-Type, or a format Google doesn’t index |
| JavaScript / render échec | Raw HTML thin, rendered HTML aussi blank, aucun block evidence |
| Content gated behind interaction | Content seulement apparaît après a click/scroll Google jamais triggers |
| Genuinely vide output | View Crawled Page matches ce que everyone sees: vide |
Qui outil réponses qui question
| Question | Outil |
|---|---|
| Ce que did Googlebot en réalité recevoir? | Inspection d’URL → View Crawled Page / Tester Live URL |
| Is my rendered HTML manquant content the raw HTML doesn’t have? | Render Gap |
| Is ce URL encore indexé, and with ce que content? | Google Index Checker |
| Are la requêtes hitting my server really Googlebot? | Log Fichier Analyzer |
Ready-to-copy AI prompts
Ces are pour the diagnostic step, pas pour guessing the causer from a description — paste in ce que the outils en réalité renvoyé, and toujours confirmer the AI’s lire contre Inspection d’URL yourself avant acting on it.
Diagnose the probable causer from ce que Inspection d’URL showed vous
I'm diagnosing a "Page indexed without content" status in Google Search Console.
Here's what I have:
- Rendered HTML from View Crawled Page: [paste it, or "blank"]
- HTTP response status/headers from View Crawled Page: [paste them]
- What the live page looks like in my own browser: [describe or paste raw HTML]
- Whether Test Live URL shows the same result: [yes/no + what it showed]
Based only on this evidence, rank the most likely cause among: (1) a server/CDN/WAF
block targeting Googlebot, (2) cloaking, (3) a JavaScript rendering failure,
(4) content gated behind a click or scroll, (5) a genuinely blank page or
unsupported format. Explain which specific detail above points to your top pick,
and tell me what additional evidence would confirm or rule it out. Don't assume
JavaScript is the cause by default.Audit a CDN/WAF config description pour a Googlebot-blocking rule
Here is a description of my CDN/WAF setup: [paste your bot-management settings,
rate-limit rules, IP allowlist/denylist entries, and any custom firewall rules].
Google's crawler IP ranges are published at
https://developers.google.com/static/search/apis/ipranges/googlebot.json.
Identify any rule that could return an empty response, a challenge page, or a
non-200 status to Googlebot's IP ranges specifically, even if normal visitor
traffic is unaffected. List each suspect rule and what to check or relax first.Draft an escalation to my host/CDN provider
Draft a short, specific support ticket to my hosting/CDN provider. Context: Google
Search Console shows "Page indexed without content" for [URL]. Google's own
View Crawled Page tool shows an empty/blocked response, while the page loads fully
in a normal browser — which points at a server or CDN-level block on Googlebot's
IP ranges, not a content or JavaScript issue. Ask them to check bot-management,
WAF, and rate-limiting logs for requests from Google's published crawler IP ranges
around [date/time], and to confirm whether any rule is blocking or challenging
those requests. Prove Googlebot is en réalité getting content now
“I changed the WAF rule” or “I fixed the render” isn’t proof — the seulement result que counts is ce que Googlebot reçoit on the suivant récupérer. Ces tests vérifier que, pas simplement que vous made a modifier.
Tester 1 — Confirmer the fix in ce que Google en réalité inspects
- Tester to run — Inspection d’URL on the affected URL. Run Tester Live URL premier — it can’t directement re-test ce indexé status, but it fait confirmer si Google-InspectionTool peut currently reach lune page and montre a fresh screenshot. Alors lire the rendered HTML and HTTP réponse. Cross-check contre votre propre render with the Render Gap outil si the causer was rendu côté client.
- Attendu result — The live test’s rendered HTML and screenshot contain votre réel content, matching ce que a normal visitor sees in a navigateur, and the HTTP réponse is a clean 200.
- Échec interpretation — Encore blank, stripped, or non-200 signifie the block, serving difference, or render échec n’est pas en réalité fixed — don’t déplacer on to Validate Fix yet. Remarque ce confirms current reachability, pas que the indexé status itself has mis à jour; que seulement montre up une fois Google re-crawls and re-indexes l’URL.
- Monitoring window — The live tester result is immediate; si the indexé status has en réalité cleared seulement montre up après Google’s suivant scheduled explorer of ce URL, qui isn’t publié or predictable.
- Rollback trigger — Encore blank or non-200 après the modifier vous believed fixed it — revisit the causer branches plutôt que repeating Requête Indexation.
Tester 2 — Confirmed Googlebot requêtes now obtenir a complet 200 réponse
- Tester to run — Pull recent server/CDN logs and isolate requêtes from confirmed Googlebot IPs (reverse + forward DNS, or Google’s publié ranges), en utilisant Log Fichier Analyzer to separate réel Googlebot hits from spoofed user-agents. Comparer code d’états and réponse sizes avant and après votre fix.
- Attendu result — Confirmed Googlebot requêtes retourner
200with a full-size corps, pas a challenge page, vide corps, or non-200 status. - Échec interpretation — Confirmed Googlebot IPs encore getting blocked or vide réponses signifie the WAF/CDN rule vous modifié wasn’t the un causing ce, or wasn’t relaxed suffisant.
- Monitoring window — Watch log volume à travers Googlebot’s suivant several visits plutôt que expecting an instant result — Google doesn’t publish a fixed recrawl schedule pour a donné URL.
- Rollback trigger — Confirmed Googlebot trafic is encore blocked in logs après the fix — go back to auditing bot-management rules, don’t assume the premier modifier was sufficient.
Tester 3 — Lune page Indexation status arrête recurring
- Tester to run — Run Validate Fix in lune page Indexation report, and periodically re-check l’URL’s indexé content with the Google Index Checker.
- Attendu result — The status clears (validation passes) and subsequent checks garder showing réel, indexé content — pas a reversion to blank.
- Échec interpretation — Validation failing, or the status reappearing plus tard, usually signifie the block/render problème is intermittent (e.g. seulement some requêtes obtenir blocked) plutôt que entièrement resolved.
- Monitoring window — Google doesn’t publish a fixed re-crawl or validation timeline pour ce — don’t judge it the day vous click Validate Fix; vérifier back periodically jusqu’à the report updates.
- Rollback trigger — The status renvoie to “indexed without content” après a validation cycle completes — treat it as unresolved and restart from Tester 1.
Testez vos connaissances: Page indexé sans content
Five rapide questions on the GSC “Page indexed without content” status. Pick an réponse pour chaque, alors vérifier.
Journal des modifications
Mis à jour le 19 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.