Insights · Field note · Growth and AI visibility
Why JavaScript-rendered content is invisible to most AI crawlers
A page that looks complete in a browser can be an empty shell to the system deciding whether to cite it.
Browsers execute JavaScript; most AI crawlers do not. If a page’s content is injected by scripts after the initial HTML loads, a crawler that reads only the server response receives a shell with no content to retrieve or cite. Google renders JavaScript for Search, with limits and delay, but the AI crawlers that fetch for ChatGPT, Claude and Perplexity generally read the HTML as served. The safe design is to serve every word in the HTML and treat scripts as enhancement.
In detail
What the evidence shows.
What a crawler receives
A crawler requests a URL and receives the HTML the server returns. If that HTML contains the content, the crawler has it. If the HTML contains a loading placeholder and a script that fetches the content and builds the page, a crawler that does not execute the script has a placeholder. Google documents that it can render JavaScript for Search, queued separately from crawling; other crawlers make no such commitment.
Who is affected
Sites built as single-page applications, page builders that render content client-side, tabs and accordions filled by script, translation widgets, and any section loaded from an API after page load. Also partially affected: pages where the answer block or the author information is injected by script while the rest is static.
How to check
Fetch the page as each named crawler and compare the text with the browser view. Load the page with scripts disabled and read it. If the two differ in substance, the crawlers see the lesser version. The crawler-eye test in our readiness audit does exactly this and keeps the transcripts as evidence.
The fix
Pre-render: generate the finished HTML at build time so that every word is in the response. This is how static sites work and why we build that way. Where a dynamic platform must remain, server-side rendering produces the same result. Scripts then add behavior to a page that was already complete. See static site versus WordPress and render.
Sources
Primary references.
By David Selakovic · Published 2026-10-16 · Revised 2026-10-16 · Reviewed every 180 days