Raw HTML may omit the main content

main_content_requires_js · Review item

Short answer

This appears when an indexable page's original HTML is classified as a shell: little readable text, with script or app-root markers that suggest the content is added by JavaScript. Crawlers that do not run JavaScript may then see an almost empty page, while Google and some others, such as Applebot, can render it. If important content appears only after scripts run, put it in the initial HTML.

Severity: Medium. A review item of medium importance with low confidence: the original HTML suggests missing content, but nothing is rendered to confirm it.

Why it matters

Vercel's analysis of AI crawler traffic reports that the major AI crawlers it studied fetched JavaScript files without executing them, while Googlebot and Applebot render pages, so content that appears only after JavaScript runs may be missing for some crawlers.

What to do

  1. Open the finding: it shows the classification and the word count, title and H1 captured from the original HTML, with the script or app-root markers found.
  2. Compare the page's source (view source, not the live elements view) with the rendered page and note the important content that appears only after JavaScript runs.
  3. Deliver that content in the initial HTML response with server-side or static rendering. Adding only a title or H1, or removing a script, does not fix the page.

When to leave it as it is: If the page is an app screen that is not meant to be read by search engines or AI answers, you can leave it.

What we read

We use the audit's existing classification of each indexable page that returned 200, made from its original HTML: a page classified as a shell is reported with the captured word count, title, H1 and the script or app-root markers that support it. Internal links and Search Console data are optional context; no Search Console request is made.

The same original HTML is read for the page's one unique explicit main region (a main element, role="main" or an article). At least 80 known-visible words there show that the content is present, also on pages rendered on the server and then hydrated. Content hidden with hidden, inert or an inline style does not count, text split into inline pieces cannot add words, and external CSS is not measured. An unsupported writing system cannot supply the positive 80-word proof; it is never guessed to be a clean page. Navigation, aside, footer and form content is skipped; a header within the main region is read.

Example & evidence

Illustrative example — schematic HTML, not a live audit.

<body><div id="app"></div><script src="/app.js"></script></body>

The original HTML has an empty app root and a script, so the page is reported.

<body><div id="app"><main><h1>Sourdough starter guide</h1><p>Feed the starter twice a day…</p></main></div><script src="/app.js"></script></body>

A possible correction: the server sends the main content in the HTML, and the script then makes it interactive.

Confirm & check again

Check for yourself: open the page's source in the browser (view source, not the developer tools' live elements view) and check that the main text is there.

Check again: Full audit — run a new full audit of the site. The finding closes when the page's original HTML has at least 80 known-visible words in one complete unique explicit main region. A changed classification alone, a new title or H1, or a removed script does not close it, and a page that becomes noindex, points its canonical elsewhere or cannot be read completely does not prove a fix.

Limits & sources

Nothing is rendered: the check cannot confirm what a browser or a particular crawler sees, and it does not claim that every crawler misses the content. The 80-word floor is a fixed rule of this check; a known 80-word count stands even if other parts of the page have unclear visibility.

Confidence: Low because a sparse original HTML suggests, but does not prove, that the main content depends on JavaScript.

Sources

  • Vercel, The rise of the AI crawler — reports that the major AI crawlers in its analysis fetched JavaScript files without executing them, while Googlebot and Applebot render JavaScript. Checked 7 October 2026.

Editorial review: 2 November 2026