Debugging Rendering with GSC URL Inspection

When a client-rendered page shows up as Crawled — currently not indexed or ranks for nothing, the first diagnostic is to see the page the way Googlebot saw it. URL Inspection in Search Console renders the URL in the same Web Rendering Service that builds the index, so its rendered HTML and screenshot are the authoritative answer to “did my JavaScript content make it in?” This is the ground-truth step in the SPA audit workflow.

Step-by-step fix

  1. Run a live inspection. Paste the URL into the Search Console inspection bar and choose Test Live URL to render it fresh.

  2. Read the rendered HTML, not the source. Open View Tested Page → HTML and search for your primary heading or body copy. Its presence or absence is the diagnosis.

    ❌ Rendered HTML contains only: 
    → content never rendered within budget; the route is effectively invisible. ✅ Rendered HTML contains your H1 heading, body copy, and JSON-LD → content rendered; any indexing issue is elsewhere (canonical, quality).
  3. Check the screenshot and blocked resources. The screenshot shows what the renderer painted; the More Info → Page resources list shows anything that failed to load. A blocked bundle or API explains a blank render.

    More Info → Page resources → "Couldn't load: /api/products (blocked)"
       → the data the page needs is unreachable to Googlebot; unblock it in robots.txt or CORS.
  4. Compare live vs indexed. If the live test renders correctly but the indexed version does not, the fix already works and you can request indexing; if both fail, the problem is live.

URL Inspection verification flow Inspecting a URL runs a live test, then View Tested Page exposes three artifacts to check: the rendered HTML, the screenshot, and the page resources. See the route the way Googlebot rendered it Inspect URL paste the route Test Live URL render it fresh View Tested Page what Googlebot got Rendered HTML is the H1, body, and JSON-LD present? Screenshot a painted page, not a spinner or blank? Page resources any blocked scripts or APIs to unblock?
One live test fans out into three artifacts — rendered HTML, screenshot, and page resources — that together diagnose why a client-side route indexed empty.

Validation

  • View Tested Page → HTML contains your primary content for the inspected URL.
  • Screenshot shows the real page, not a spinner or blank frame.
  • Page resources lists no blocked critical scripts or APIs.
  • Request Indexing succeeds after a confirmed fix, and the URL moves to Indexed on recrawl.

The pass and fail states are unambiguous once you know what to look for: a failing inspection pairs a blank screenshot with an empty root container, while a healthy one shows a painted page and rendered HTML that contains your heading, body, and structured data.

A failing inspection versus a healthy one Two inspection results side by side: a blank screenshot with an empty root container that indexed empty, and a painted screenshot with rendered HTML holding the heading, body, and structured data. What a broken versus a healthy inspection looks like Indexed empty fail blank screenshot <div id="root"></div> no content within budget Rendered correctly pass <h1> + body + JSON-LD content painted and present
The two outcomes are unmistakable: a blank screenshot over an empty root is a render failure; a painted page with rendered heading and body is healthy.

Reference

Turning the inspection into a repeatable diagnosis is easier as a decision tree: start from the blank screenshot and let each branch point you at the specific cause — a blocked resource, a slow data fetch, or a script error.

A decision tree from a blank inspection screenshot to its cause A decision tree that starts at whether the screenshot is blank and branches through blocked resources and render budget to reach the specific cause: unblock resources, speed up the fetch, or fix a script error. From a blank screenshot to the cause Screenshot blank? Content rendered — check canonical / quality No Resource blocked? Yes Unblock in robots.txt / CORS Yes Data in budget? No Speed up the fetch No Script error — check console Yes
The same three artifacts, read as a decision tree: a blank screenshot branches through blocked resources and render budget to the exact fix.
URL Inspection diagnostic order:
1. Live test            → render as Googlebot now
2. View Tested Page     → rendered HTML + screenshot + resources
3. HTML search          → is the H1 heading / body / JSON-LD present?
4. Page resources       → any "Couldn't load" entries?
5. Live vs Indexed      → did a recent deploy change the outcome?

Frequently Asked Questions

Why does the URL Inspection screenshot look blank? A blank screenshot usually means Googlebot could not render your content within its budget — a blocked resource, a script error, or data that resolves too slowly. Check the More Info tab for blocked resources and the rendered HTML for whether content is present at all.

What is the difference between the live test and the indexed version? The live test renders the page right now, while the indexed version reflects the last time Google crawled and rendered it. Comparing them shows whether a recent change fixed or broke rendering before the next crawl picks it up.

← Back to SEO Audit Workflows for Client-Side Apps