If your marketing site was built as a client-rendered React app, a Vite bundle, or a no-code SPA, one assumption can quietly fail, Google can read it, so every crawler can read it. That is no longer true.
Googlebot executes JavaScript and indexes the rendered DOM. The crawlers behind ChatGPT, Claude, and Perplexity do not. If your pricing, comparison copy, testimonials, or feature proof only appear after client-side rendering, those answer engines may never see them.
This matters for founders because the problem is not abstract. Your site can rank on Google, yet remain absent from AI answers. The issue is usually not authority, it is visibility.
The test first
Do this before you read any farther.
- Open your homepage HTML, not the browser view.
- Search for your pricing number, your main headline, one testimonial, and one feature sentence.
- If the text is missing from the raw HTML, it is not visible to crawlers that do not execute JavaScript.
If you prefer a command line check, use this pattern:
curl -s https://yourdomain.com | grep -i "your pricing number"
Repeat it for your headline, your best customer quote, and the sentence you most want an answer engine to quote. If those strings are absent, the issue is confirmed.
What a browser shows you is not what a crawler necessarily sees.
Why the browser lies
Googlebot renders JavaScript, builds the DOM, and indexes the rendered result. That is why many client-rendered sites still appear in search.
Most AI crawlers do not work that way. In Vercel's analysis with MERJ, the company states under JavaScript rendering capabilities that none of the major AI crawlers currently render JavaScript, including OpenAI's GPTBot, OAI-SearchBot, and ChatGPT-User, Anthropic's ClaudeBot, Meta-ExternalAgent, ByteDance's Bytespider, and PerplexityBot. The same analysis notes two exceptions, Google's Gemini inherits Googlebot infrastructure, so it renders, and AppleBot renders through a browser-based crawler. That post was based on a 2024 measurement window, so it should be treated as a primary source with age.
A later June 2026 explainer from SearchOptimo still states the same core point, ChatGPT, Claude, and Perplexity crawlers do not run JavaScript. The mechanism has not changed enough to ignore.
For founders, the practical takeaway is simple, browser fidelity does not equal crawler fidelity.
Traffic scale
The scale is large enough to matter, even if the exact share is smaller than Google's. In Vercel's measured month, GPTBot generated 569 million requests across its network, and ClaudeBot generated 370 million. Googlebot generated 4.5 billion.
That is not a reason to panic. It is a reason to stop treating AI answer engines as edge cases. A fifth of Googlebot volume arriving from crawlers that cannot see your client-rendered content is not noise.
What disappears
On early-stage marketing sites, the missing content is usually not the hero headline. It is the proof.
- Pricing tables
- Feature comparison grids
- Testimonials and logo walls loaded from a CMS or API
- Tabbed or accordion content
- Anything hidden behind an interaction
- Copy inserted by an A/B testing script
These are the sentences an answer engine would need to quote. If they are not in the initial HTML, they are often absent from the corpus those systems learn from.
That is why a site can rank for a generic query and still fail to appear in a direct answer. Ranking and quoting are not the same job.
Fixes by cost
The right fix depends on your stage. For a pre-revenue startup, the answer is rarely a rebuild.
Same day
Move the sentences that matter into static HTML in the initial response. Keep the interactive version if you need it, but do not make the machine-dependent version the only version.
This is the cheapest, most reliable fix. It often covers the critical homepage, pricing page, and a few comparison pages.
One afternoon
Pre-render or statically generate only the marketing routes. Leave the app shell alone. If your product is a client app, that does not mean your website has to be.
For many founders, this is the highest-return compromise. You keep the engineering surface small and make the pages that matter readable.
One sprint
Move the marketing site to server-side rendering. This is the cleanest architecture if you already expect the site to change often, or if the marketing surface is becoming a core acquisition channel.
Do this when the page set is large, when content changes frequently, or when the team already maintains a proper web stack.
Do not do it simply because it sounds correct. If four pages are the only ones that matter, static generation is usually enough.
How to verify
After the change, repeat the same raw HTML test. Confirm the pricing number, headline, testimonial, and feature sentence now appear in the source.
Then inspect logs or edge analytics for user agents such as GPTBot, OAI-SearchBot, ClaudeBot, and PerplexityBot. If those crawlers are fetching the pages, and the pages now contain the content you want quoted, you have solved the eligibility problem.
Also check your robots.txt rules. If you block crawlers by default, or if your site returns content inconsistently, the fix will not matter.
For background on crawler behavior and infrastructure, see Vercel's analysis of the AI crawler landscape, The rise of the AI crawler.
What is JavaScript SEO?
JavaScript SEO is the practice of making sure search engines can discover, render, and index content that depends on JavaScript. In older terms, it was a technical SEO problem. In 2026, it is also an AI answer engine problem.
For founders, the definition should be narrower and more practical. Can a crawler read the page without running your app? If not, the page is not fully searchable.
Is JavaScript SEO friendly?
Yes, if you implement it carefully. No, if you assume the browser view is the same as the crawler view.
The friendliest JavaScript sites are the ones that ship essential content in HTML first, then enhance the experience in the browser. That pattern works for Google, and it reduces the chance that an AI crawler sees a blank page.
Do AI crawlers render JavaScript?
Most do not. Based on the sources above, the safest operating assumption is that GPTBot, ClaudeBot, PerplexityBot, and related crawlers fetch HTML and do not execute your app bundle.
There are exceptions in the broader ecosystem, but you should not build your visibility strategy around exceptions.
Why rank on Google?
Because Googlebot can render the page. That is the key difference.
If your site ranks on Google but is never cited in AI answers, you likely have one of three issues, the content is not in raw HTML, the page is not crawlable, or the sentence you want quoted is too vague to be useful.
The first two are engineering issues. The third is editorial.
How to make readable
The best fix is not more pages. It is clearer pages.
- Put the main claim in HTML
- Put pricing in HTML
- Put comparison language in HTML
- Put proof in HTML
- Keep interactive layers as enhancement, not source of truth
If you want an answer engine to quote you, write sentences that can be checked. Vague marketing copy rarely earns a citation, even when it is visible.
Takeaway
Googlebot and AI crawlers are not the same. Googlebot renders your React site. The crawlers behind ChatGPT, Claude, and Perplexity usually do not.
That means a site can rank and still be invisible to answer engines. The fastest test is to inspect the raw HTML for the sentences that matter. The most economical fix is to move those sentences into the initial response before you rebuild anything else.
Rendering decides eligibility. Writing decides whether you get quoted.
If you want the next step, look at how your logs, indexing rules, and page structure support crawlability across the site, not just on the homepage. Better Marketing treats this as revenue infrastructure, because in practice, it is.
