Summary
If your key content only appears after JavaScript runs, some AI crawlers may never see it, and your brand can go missing from ChatGPT, Perplexity, Claude and Gemini answers. Test the raw HTML, move critical facts to server-side rendering, and track mentions to confirm the fix works.
Short answer
Many AI crawlers fetch the raw HTML of a page and do not reliably run JavaScript. If your pricing, product descriptions, FAQs or comparisons are injected client-side, those facts may be invisible to the systems that feed ChatGPT, Perplexity and Claude. Serve key content in the initial HTML, test it with a no-JavaScript fetch, and track your AI visibility after the change.
Why JavaScript matters for AI visibility
Modern websites are often built as single-page applications. The server sends a nearly empty HTML shell, and the browser then runs JavaScript to build the page. For a human visitor this is invisible. For a crawler that only reads the first response, the page can look almost blank.
This matters for GEO, AEO and LLM SEO because AI assistants can only recommend what they can retrieve and understand. If your category page, pricing table or customer proof is rendered by a script, a crawler that does not execute scripts will not see the words that describe your brand.
Google has long documented a rendering step for its search crawler, which is why many teams never noticed the problem in classic SEO. AI crawlers are a different set of bots with different capabilities, and you should not assume they behave like Googlebot.
The consequence is quiet. Nothing errors out. Your page simply contributes less text to the retrieval layer, so a competitor with plain server-rendered pages can be mentioned more often for the same buyer question.
How AI crawlers read your pages
There are two moments when an AI system touches your site. The first is training and indexing, where a crawler collects pages ahead of time. The second is live retrieval, where an assistant fetches a page while answering a question, often through a search index or a browsing tool.
Vendors document their crawlers differently and the behavior can change, so treat any claim about JavaScript support as something to verify rather than assume. As a working rule, many teams have reported that several AI crawlers fetch HTML without executing scripts, while search engines such as Google and Bing run a rendering step. Check the current documentation for GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Google-Extended before you decide how much risk you carry.
Even when a crawler can render JavaScript, rendering is slower and more expensive than reading HTML. Content that depends on a script may be fetched later, less often or with a timeout. A safe strategy is to make the important content available without needing a render at all.
- Raw HTML crawlers see only what the server sends in the first response.
- Rendering crawlers may see more, but with delay and limits on scripts, timeouts and blocked resources.
- Retrieval tools can read cached or indexed copies, so what the index stored matters more than what your browser shows today.
Why this is a GEO issue, not only a technical one
Share of voice in AI answers depends on whether your facts are retrievable. A hidden pricing table or a script-built comparison can quietly lower your mention rate for the exact prompts that drive buying decisions.
Test what AI crawlers actually see
You do not need a complex setup to find out. Start with a simple comparison between what a browser shows and what the server sends. If the two differ in meaningful ways, you have a rendering risk.
- Open the page, then use view-source to read the original HTML. If your headline, body text and links are missing there, they are added later by JavaScript.
- Fetch the URL with a command-line tool and read the response without a browser. Search the output for your brand name, your main claim and your price.
- Disable JavaScript in your browser developer tools and reload. Anything that disappears is at risk.
- Use a URL inspection tool in Google Search Console and Bing Webmaster Tools to compare the rendered HTML with the source.
- Search your own page text in quotes inside a search engine to see whether it has been indexed.
Test your most valuable templates first: homepage, product or service pages, pricing, comparison and alternatives pages, integrations and the FAQ. These are the pages that most often answer a buyer prompt in ChatGPT, Gemini or Perplexity.
Record the result in a simple table with one row per page and one column per critical element: main heading, description, price, FAQ, internal links, structured data. This makes the fix list obvious and gives you a baseline.
Fix client-side rendering problems
The goal is not to remove JavaScript. It is to make sure the essential content and links exist in the first HTML response. Several approaches can get you there, and the right one depends on your stack.
- Server-side rendering (SSR): the server builds the full HTML for each request. Most modern frameworks support it.
- Static generation: pages are built ahead of time and served as plain HTML. This is ideal for blog posts, glossaries, comparisons and documentation.
- Hybrid or incremental approaches: pre-render stable pages and render only dynamic parts on the client.
- Prerendering services: a fallback for older single-page apps that cannot be migrated quickly, used with care and tested regularly.
Whichever route you take, keep parity between what users see and what crawlers receive. Serving materially different content to bots can create trust and policy problems, so the aim is the same content delivered earlier, not a separate version.
Pay attention to links as well. Navigation built only with click handlers instead of real anchor links with an href can stop crawlers from discovering deeper pages. Use standard links so that every important page is reachable from the HTML.
Finally, check that performance work does not undo the fix. Lazy loading, tabs, accordions and infinite scroll are fine for users, but make sure the text inside them is present in the HTML and not fetched only after an interaction.
Content that should never depend on JavaScript
Some elements carry so much weight in AI answers that they deserve a no-JavaScript guarantee. If you only protect a few things, start with this short list.
- Your one-sentence definition of what the company does, for whom and with what outcome.
- Pricing, plans and what each plan includes, because pricing questions are common in recommendation prompts.
- Comparison tables and alternatives content that answer prompts such as best tools for a given use case.
- FAQ questions with their answers in visible text, with matching FAQPage structured data.
- Organization and product structured data in JSON-LD, delivered in the initial HTML.
- Author names, update dates and sources that signal freshness and credibility.
- Canonical tags, hreflang and a clean robots.txt, so that crawlers resolve the right version of each page.
Structured data deserves a special mention. If your schema is injected by a tag manager after load, some systems may not read it. Place JSON-LD in the server response and keep it consistent with the visible text.
Measure the impact on mentions and citations
A rendering fix is only valuable if it changes outcomes, so measure before and after. Build a set of 30 to 100 buyer prompts across discovery, comparison and decision stages, and run them on a schedule across ChatGPT, Gemini, Perplexity, Claude, Copilot and Mistral.
Record whether your brand is mentioned, in what position, with which description, and which sources are cited. Because answers vary from run to run, repeat each prompt several times and compare averages rather than single results.
Watch the pages that were previously client-rendered. If those URLs begin to appear in citations, or if descriptions of your pricing and features become more accurate, the fix is working. Server logs can also show which AI user agents request your pages and whether they receive a full response.
How Refine helps
Refine tracks your brand across ChatGPT, Gemini, Perplexity, Claude, Copilot and Mistral, showing mention rate, share of voice, sentiment and the sources cited. Use it to compare visibility before and after a technical fix. Try the free audit at getrefine.ai/audit.
A 14-day action plan
You can reduce most of the risk in two weeks with a focused plan. Here is a sequence that works for small teams.
- Days 1 to 2: list your twenty most important URLs and run the no-JavaScript test on each. Note what is missing.
- Days 3 to 4: confirm in your robots.txt and CDN rules that the AI crawlers you want are allowed, since rendering is irrelevant if access is blocked.
- Days 5 to 8: move the definition, pricing, FAQ and comparison content to server-side or static rendering.
- Days 9 to 10: switch scripted navigation to real links and place JSON-LD in the server response.
- Days 11 to 12: re-test every page and request re-indexing in Search Console and Bing Webmaster Tools.
- Days 13 to 14: re-run your prompt set, record the new mention rate and schedule a monthly check.
Keep a short changelog of what you changed and when. When a mention rate moves, you will want to know which change is the likely cause.
Frequently asked questions
Do all AI crawlers ignore JavaScript? No. Capabilities differ by vendor and change over time, and search engines that feed assistants typically do render pages. The safe approach is to assume some systems will read only raw HTML and to verify each crawler in its current documentation.
Is server-side rendering required for GEO? Not strictly, but it is the most reliable way to guarantee that essential facts are visible. Static generation works equally well for content that rarely changes.
Will fixing rendering guarantee mentions in ChatGPT? No. It removes a barrier, but recommendations also depend on clarity, third-party corroboration and relevance to the prompt. Treat rendering as a prerequisite, not a guarantee.
How often should I re-test? After every major release and at least once a month, because front-end changes can reintroduce client-side content without anyone noticing.
Quick checklist before you ship
- Main heading, intro and key facts appear in view-source.
- Pricing and plan details are in the initial HTML.
- FAQ answers are visible text with matching FAQPage JSON-LD.
- Important pages are linked with real anchor tags.
- AI crawlers are allowed in robots.txt and CDN rules.
- A prompt set and baseline mention rate are saved for comparison.
If every box is ticked, you have removed one of the most common technical reasons a brand fails to appear in AI answers. If several are not, fix the first three before anything else, because they affect almost every prompt that mentions your category.
Short on time? Have an assistant summarise this page for you.

