sfw/fix
Indexed without content high

Page indexed without content (Google Search Console)

The URL is indexed but Googlebot pulled no readable content, almost always a delivery or rendering problem.

What you see

Page indexing > Why pages aren't indexed
Indexed, though Googlebot retrieved no content
(older label: "Page indexed without content")

What’s actually happening

Google indexed the URL but reports it retrieved nothing readable from it. The page looks completely normal when you open it in Chrome, so the instinct is that Google is wrong. It usually isn't — Googlebot received a different response than you do, or the page never rendered for the crawler. Affected URLs rank for nothing because there's no content attached to them in the index.

Common causes

  • Client-side rendering: a React/Vue/Angular app ships an empty <div id="root"> and Googlebot's render either times out or fails, leaving a blank document.
  • A CDN or WAF (Cloudflare, Akamai, sucuri) serving Googlebot a challenge page, 403, or empty body based on its IP or user-agent.
  • Cloaking by accident — geo/IP logic that returns a stripped or blank page to the datacenter IPs Googlebot crawls from.
  • robots.txt blocking the CSS/JS bundles the page needs to render, so Google fetches the HTML shell but can't paint content.
  • The HTML body genuinely contains no text — content lives only inside images, an iframe, or a canvas element.

How to fix it

  1. Run a live test in URL InspectionIn Search Console, paste the URL, click Test Live URL, then View Crawled Page > More info > HTML. If that HTML is an empty shell or a challenge page, you've reproduced the problem. Compare it against curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/page.
  2. Check whether it's the WAF/CDN blocking GooglebotIf curl with a normal UA returns content but the Googlebot UA gets a 403/challenge/empty response, your firewall is the culprit. Allowlist verified Googlebot (reverse-DNS to googlebot.com / verify by IP ranges Google publishes) in Cloudflare's bot rules or your WAF. Don't allowlist by UA string alone — spoofers abuse it.
  3. Unblock CSS and JS in robots.txtLook for Disallow: /assets/, /static/, *.js, or /wp-includes/ in robots.txt. Remove anything blocking render-critical resources. Confirm in URL Inspection that no "Page resources couldn't be loaded" warnings remain.
  4. Fix client-side renderingIf the rendered HTML is empty because the SPA hydrates only in-browser, move to server-side rendering, static generation, or a prerender service that serves crawlers fully-rendered HTML. Verify the rendered output contains your headings and body copy, not just <div id="root"></div>.
  5. RevalidateOnce the live test shows real content, click Validate Fix on the issue. Recrawling and reprocessing takes days to weeks for the whole batch.

Stop it recurring

After any CDN/WAF or framework change, fetch a few key URLs with the Googlebot user-agent and confirm the body still contains your actual text.

Related errors