Blog/Fix 'Page Indexed Without Content' in Google Search Console (2026)

Fix 'Page Indexed Without Content' in Google Search Console (2026)

What 'Page indexed without content' means in Search Console: 4 causes ranked — failed rendering, blocked CSS/JS, empty HTML to Googlebot — plus fixes.

IndexBolt Team·

"Page indexed without content" means the URL is in Google's index but Google could not read its content — the page is indexed as an empty shell. The listing exists, yet with no readable text behind it the page matches almost no queries and ranks for almost nothing.

Google's documentation attaches two explanations — the page is cloaked to Google, or its content is in a format Google cannot index — and states explicitly that this is not a robots.txt block on the page: Googlebot fetched the URL; reading content out of the response is what failed. This guide covers the four causes ranked by how often they are responsible, the diagnosis workflow that identifies yours, the fix for each cause, and how to get the repaired page re-indexed with its content.

TL;DR — Quick Summary

  • "Page indexed without content" means the URL is in the index but Google read no content from it — an empty-shell entry that serves almost no queries
  • The page itself was fetchable — Google states the status is not a robots.txt-block case; the failure happened while reading the response
  • The four causes, ranked: failed JavaScript rendering, CSS/JS blocked by robots.txt, empty or placeholder HTML served to Googlebot, and interstitials or paywalls replacing the content for bots
  • Diagnosis is one comparison: the HTML and screenshot in the URL Inspection tool versus the page in your browser
  • Every fix ends with a recrawl — the state clears when Googlebot refetches the page and reads real content
  • The status is rare and always technical — treat every affected URL as a fault to repair, not a quality judgment

What Does "Page Indexed Without Content" Mean?

"Page indexed without content" is the Google Search Console page status for URLs Google added to the index without extracting any content from them. The crawl succeeded and the URL earned an index entry, but the analysis stage of search engine indexing — parsing text, headings, and entities — came back empty. Google holds a record of the URL with no document behind it.

The consequence is near-invisibility. Ranking systems match queries against indexed content; with none stored, the page surfaces only on signals that live outside it, like its URL string and the anchor text of links pointing at it. There is also nothing to build a snippet from, so even the rare impression looks broken.

The status is the technical mirror image of "Crawled - currently not indexed": there, Google read the content and declined to index it — a quality verdict. Here, Google indexed the URL and failed to read the content — a fault. Quality work fixes the first; only a technical repair fixes the second.

Find the affected URLs in Google Search Console under Indexing → Pages — click the "Page indexed without content" row and export the list. Expect a short list: this is one of the rarest states in the report, and every URL on it points at the same small set of faults.


What Causes "Page Indexed Without Content"? The 4 Causes, Ranked

Google reads no content for one of four reasons: the page needs JavaScript that failed to execute, robots.txt blocks the CSS and JavaScript the page depends on, the server hands Googlebot empty or placeholder HTML, or an interstitial or paywall replaces the content for bots.

Cause 1: JavaScript Rendering Failed

A client-side rendered page ships an app shell whose content exists only after scripts run, and Google indexes such pages from their rendering output — its Web Rendering Service executes the JavaScript in a headless Chromium. When rendering fails — a script error, an API call that times out, a bundle that never loads — Google is left with the empty shell that came over the wire, and that shell is what gets indexed.

For client-side rendered sites the outcome is binary: a successful render indexes like any static page, and a failed one indexes as nothing.

Cause 2: Robots.txt Blocks Critical CSS or JavaScript

The page URL is crawlable, but the resources that produce its content are not. When robots.txt disallows the paths serving your JavaScript bundles or stylesheets, the rendering service loads the page without them — and on a script-dependent page, no bundle means no content. The usual offenders are blanket rules like Disallow: /assets/, Disallow: /static/, or CMS defaults blocking include directories.

This is the robots.txt failure that produces the status: the page passes, its dependencies do not. A block on the page itself produces different report states entirely.

Cause 3: The Server Sends Googlebot Empty or Placeholder HTML

The response Googlebot receives is not the response users receive. Three configurations produce it: server-side rendering with a broken bot branch that returns bare markup to crawler user agents, bot-protection layers serving a JavaScript challenge or CAPTCHA page instead of the content, and accidental cloaking rules left over from A/B tests or firewalls. Google indexes what Googlebot was served — when that is an empty template or a challenge page, the index entry is empty.

Cause 4: An Interstitial or Paywall Replaces the Content

Cookie walls, age gates, geo-blocks, and paywalls that return the barrier as the entire response body leave Google nothing else to read. When the interstitial replaces the article instead of overlaying it, the crawled document contains the barrier markup and none of the content behind it — and paywalled pages configured this way lose the indexing their teaser and markup are supposed to earn.


How Do You Diagnose Which Cause You Have?

Diagnosis is one comparison: what Google received versus what a browser shows. The URL Inspection tool supplies Google's side of the comparison, read straight from the index.

  1. Inspect the crawled page. Paste the URL into the Search Console search bar and open View crawled page. This is the HTML Google stored at the last crawl — a near-empty body confirms the state and starts the trail.
  2. Run a live test. Click Test live URL, then open the rendered HTML and the screenshot. A blank screenshot over a correct raw response is a rendering failure; the Page resources list names every resource that failed to load or was blocked.
  3. Test the blocked resources. Run the blocked JavaScript and CSS URLs from the live test through the Robots.txt Tester to confirm which rule blocks them.
  4. Fetch the page as Googlebot. Request the URL with a Googlebot user-agent string and compare the HTTP status code, headers, and body length against a normal browser fetch — the HTTP Header Checker shows what your server returns for any URL. A shrunken or challenge-page response to the bot user agent exposes cause 3. One caveat: bot protection that verifies crawlers by IP triggers only for real Google fetches, so the live test remains the ground truth.
What the evidence showsYour cause
Crawled HTML is an app shell; live-test screenshot is blankCause 1 — rendering failed
Live test lists blocked JavaScript or CSS under Page resourcesCause 2 — robots.txt blocks resources
Googlebot fetch returns empty or challenge HTML; browser fetch is normalCause 3 — server serves bots differently
Crawled HTML contains only the wall or gate markupCause 4 — interstitial replaced content

How Do You Fix Each Cause?

Every fix ends the same way — Googlebot refetches the page and reads real content. What differs per cause is the repair that makes the next fetch succeed.

Rendering failures. Put the content in the initial HTML with server-side rendering, static generation, or prerendering, and eliminate load-time script errors — Google's JavaScript SEO basics documents how its rendering pipeline processes scripts. The full diagnosis-and-repair workflow, framework by framework, is in our guide to JavaScript pages not indexed.

Blocked resources. Remove the disallow rules covering your CSS and JavaScript paths, or add Allow exceptions for the specific bundles the page needs. Re-test each freed resource URL until the tester reports it crawlable.

Empty HTML to Googlebot. Repair the server branch that handles bot user agents, and configure bot protection to exempt verified Googlebot — verification by reverse DNS or Google's published IP ranges, never by user-agent string alone, since spoofed user agents are exactly what the protection exists to catch. Then re-run the Googlebot-fetch comparison until both responses match.

Interstitials and paywalls. Serve the full content in the response and present the barrier as an overlay rather than a replacement. For paywalls, use Google's sanctioned pattern — paywalled-content structured data that lets Googlebot read the full text while users hit the paywall — instead of hiding the article body from bots.

Recrawl the fixed page in hours

Repaired the render, the robots.txt, or the server response? IndexBolt submits the URL directly into Google's crawl systems so the empty index entry gets replaced now. 100 free credits, no credit card required.


How Do You Get the Page Re-Indexed With Its Content?

Recovery is a recrawl: Google replaces the empty entry the next time Googlebot fetches the page and reads content, so trigger that fetch instead of waiting for the natural schedule.

  1. Confirm the fix against the live test. Re-run URL Inspection's live test and verify the rendered HTML contains the full text and the screenshot shows the finished page.
  2. Request the recrawl. Use requesting indexing in Google Search Console for the priority URLs — it queues a fetch within hours to days, capped at about a dozen manual requests per property per day.
  3. Submit the rest in bulk. For more URLs than the daily cap covers, a direct submission service pushes the full list into Google's crawl systems with fetches landing in hours.
  4. Verify the replacement. After the recrawl, View crawled page shows the stored HTML with content in it, and the URL leaves the "Page indexed without content" row on the next report refresh.

Frequently Asked Questions

Does a page indexed without content rank at all?

Barely. With no stored content there is nothing to match queries against, so the page surfaces only on its URL string and inbound anchor text — a sliver of its potential visibility. Repairing the fault and getting the content recrawled is the only route back to normal ranking.

Is "Page indexed without content" caused by robots.txt blocking the page?

Not by a block on the page itself — Google's documentation rules that out, and a blocked page produces different report states. The robots.txt failure that does cause it is blocking the CSS and JavaScript a crawlable page depends on, which leaves the render empty while the URL stays fetchable.

How is it different from "Crawled - currently not indexed"?

They are opposites. "Crawled - currently not indexed" means Google read the full page and declined to index it — a quality judgment that content work fixes. "Page indexed without content" means Google indexed the URL and read nothing — a technical fault that only a rendering, robots.txt, or server repair fixes.

Will the status clear on its own?

Only when the cause was transient — a temporary outage that served empty responses clears after the next successful recrawl. Configuration causes persist: blocked resources, broken SSR branches, and bot-protection rules keep producing empty fetches until you change them, so every recrawl re-stores the same empty page.


Next Steps

  1. Export the affected URLs from Indexing → Pages → "Page indexed without content"
  2. Open View crawled page for each URL and confirm the stored HTML is empty
  3. Run a live test and read the screenshot and Page resources list
  4. Test blocked CSS and JavaScript URLs in the Robots.txt Tester
  5. Compare a Googlebot-user-agent fetch against a browser fetch with the HTTP Header Checker
  6. Fix the cause the evidence names — render, robots.txt, server branch, or interstitial
  7. Request recrawling for priority URLs and submit the rest through IndexBolt
  8. Verify the stored HTML after recrawl and watch the row empty out

Stop ranking an empty shell

IndexBolt gets your repaired pages refetched within hours, so Google indexes the content instead of the void. Pay per URL, 100 free credits to start — no credit card required.

Ready to get your URLs indexed?

Start with 100 free credits. No credit card required.