What it is
A browser fetches your HTML, runs your JavaScript, and paints a page. Most automated clients stop after the first step. What they keep is whatever text was already in the document the server sent.
A single-page app that ships an empty <div id="root"> and renders everything client-side sends an effectively blank document to anything that doesn't execute scripts.
Why an agent cares
The major AI crawlers do not reliably run JavaScript, and the HTTP clients inside agent runtimes almost never do. To them, a client-rendered marketing site is a blank page with a title.
This is the single most expensive failure on the list, because everything else depends on it. Perfect schema markup on a page with no text is still nothing to read.
How to fix it
Server-render or pre-render the pages that carry meaning — home, product, pricing, docs, and anything you'd want quoted back to a buyer.
- In Next.js, keep those routes as server components; move
use clientdown to the interactive leaves. - In a pure SPA, add static pre-rendering at build time for the marketing routes.
- Verify by disabling JavaScript, or with
curl https://yoursite.com | wc -c— read what actually came back.
How we test it
We fetch your homepage with a plain HTTP client, strip scripts, styles and markup, and count the readable characters left. Under 400 characters, or an empty app-shell root element, fails.