Why a page cannot be read · js_shell
The content is assembled by JavaScript
The page arrived, but the facts on it are built in the browser after load. A crawler that does not run scripts sees an empty frame.
The page arrived, but its content is assembled by JavaScript. A crawler that does not run scripts sees an empty frame.
§01 · what is actually happening
What is actually happening.
The HTML came back successfully and contained almost no readable text: markup, script tags and a mount point, with the content fetched and rendered afterwards by the application.
A browser does the remaining work and a person sees a complete page. A crawler that does not execute JavaScript sees what the server actually sent, which is close to nothing.
This is the most common finding on modern commerce sites, and it is nearly always an accident of the framework rather than a decision anyone made.
§02 · what it costs
What it costs.
An assistant reading your product page finds no product. It will still answer the question it was asked, from whichever source it could read, which is usually a retailer carrying your item or a competitor carrying something close to it.
The cost scales with how much of your catalogue is affected, which for a client-rendered site is normally all of it at once.
It is also invisible in the usual places: nothing bounces, nothing times out, and no session is recorded, because the reader was never a session.
§03 · what would change it
The fix.
Serve the facts in the initial HTML response rather than assembling them after load. Server-side rendering, static generation, or a prerender layer for crawlers all achieve it. The test is simple: fetch your own page with curl and read what comes back.
Who does it. A frontend or platform engineer. Server-side rendering, static generation, or a prerender layer for crawlers all solve it. The test is one command: fetch your own page with curl and read what comes back.
Check your own site.
One request, one verdict, no account. If this is the finding you get back, the page above is the one that applies.
See what a machine seesThe other findings
