Do AI assistants read JavaScript-rendered content?
Short answer: Mostly not. Googlebot renders JavaScript; GPTBot, ClaudeBot and PerplexityBot read raw HTML only, so client-side-only content is invisible to them.
Mostly not. Googlebot renders JavaScript and will eventually see content that loads client-side. The AI crawlers run by OpenAI, Anthropic and Perplexity generally fetch the raw HTML and move on. If your service descriptions, prices or FAQ answers are injected by JavaScript after page load, those bots see an empty shell.
This is one of the most common gaps between "we rank fine on Google" and "ChatGPT never mentions us". The site is technically healthy by search standards and nearly blank by AI standards.
How to check in under a minute:
curl -A "GPTBot" -s https://www.example.co.uk/services/ | grep -c "Boiler repair"
If the count is zero but the phrase is visible in your browser, the content is client-rendered. Alternatively, view the page source (not the inspector) and search for a sentence from the page.
How to fix it, in order of preference:
- Server-side rendering or static generation. Most modern frameworks support it; it also improves Core Web Vitals.
- Pre-rendering for frameworks that cannot do it natively.
- At minimum, put the critical facts (what, where, who for, price) in plain HTML, even if the interactive parts remain client-side.
The same applies to content behind tabs, accordions and "read more" buttons when those are populated by API calls rather than hidden with CSS. CSS-hidden content is in the HTML and is read; API-loaded content is not.
Seoptist's audit fetches each page with and without JavaScript rendering and reports the difference in word count and key facts, so you can see exactly which pages lose their substance for AI crawlers.