Guide
Content that survives without JavaScript
The most common and most expensive failure on the agentic web. Why an empty shell defeats the crawlers behind AI answers, how to tell whether you have one, and what to do when a rewrite is not on the table.
Last reviewed 27 August 2026
Open your site, view source, and read what is actually there. Not the rendered DOM in DevTools — the bytes the server sent. If what you find is a <div id="root"> and a script tag, that is what most agents get.
Why this is worse than it was for SEO
Googlebot renders JavaScript. It has for years, which is why client-rendered sites can rank and why so many teams concluded the problem was solved.
The crawlers behind AI answers largely do not. They fetch, they parse, they move on — because rendering a page costs orders of magnitude more than fetching one, and they are fetching at a volume where that difference decides the budget. An assistant asked about your product does not wait for hydration.
Benchmarks of the highest-traffic sites through 2026 put average agent readiness a little over half, with content negotiation and non-JavaScript content the most widely failed category. Several of the largest social platforms score at or near zero, because they block scanners or require authentication before anything is served.
Testing it in ten seconds
# What an agent actually receives curl -sL https://example.com | wc -c # The visible text, stripped of markup curl -sL https://example.com | sed 's/<[^>]*>//g' | tr -s ' \n' ' ' | wc -c # Is there a heading to anchor it? curl -sL https://example.com | grep -o '<h1[^>]*>[^<]*' | head -3
Under a few hundred characters of visible text, or no <h1> at all, and the page has nothing to say to anything that does not run scripts. Our check grades exactly this and weights it at 6 points — the single heaviest check in the rule set.
The fixes, in order of how much they cost
1. Static generation, where the content is stable
Marketing pages, documentation, blog posts, product pages that change daily rather than per request — prerender them at build time. Fastest to serve, cheapest to run, nothing to go wrong at request time.
2. Server rendering, where it is personal or live
Render on the server and send HTML. Every major framework supports this; the friction is almost never the framework and almost always code that assumes window exists.
3. The pragmatic middle, when a rewrite is not happening
You do not have to server-render the application to fix this. You have to server-render the content. A client-only dashboard behind a login is fine — nobody is citing it. The pages that need to survive without scripts are the public ones, and those are usually a minority of the routes.
- Move public marketing and product pages to a prerendered route group and leave the app alone.
- Render the article body, price, availability and headings server-side; hydrate the interactive parts on top.
- If a genuine rewrite is out of reach, serve a meaningful
<noscript>block with the core content and links. It is a workaround rather than a fix, and it is far better than an empty div.
What good looks like in the raw response
- A
<title>and meta description that describe this page. - Exactly one
<h1>carrying the page's actual subject. - Several hundred words of the real content, not a loading state.
- The primary action present as a real
<form>or<a href>. - Prices, availability and dates as text, not only as chart data.
- A self-referencing
<link rel="canonical">.
Registering tools on a page that arrives empty is putting a door on a building with no walls. The tools are in a bundle the crawler did not execute, on a page it recorded as blank. Fix the rendering, then add tools — and see what WebMCP does not replace.
Sources
Primary documents, checked on 27 August 2026
- web.dev — rendering on the web
- Google — JavaScript SEO basics
- agentgrade.com — agent readiness benchmarks — Published top-100 measurements referenced above
- OpenAI — bots and user agents — Fetch behaviour of GPTBot and ChatGPT-User
Keep reading
Check your own site against this
The Agent Readiness Score measures exactly what this article describes, and shows the evidence behind every finding.
Run the check →