JavaScript and AI Search: Why Server-Side Rendering Matters for GEO
- January 1, 2025
- AI Search
Most AI crawlers cannot execute JavaScript. According to Vercel's December 2024 research, this is the single most important technical factor for AI visibility. Sites using client-side rendering frameworks (React, Vue, Angular) without server-side rendering may be completely invisible to AI search tools.
AI Crawler JavaScript Rendering Support
| Crawler | JavaScript Rendering | Impact |
|---|---|---|
| GPTBot (OpenAI) | No | Client-side content invisible |
| ChatGPT-User (OpenAI) | No | Client-side content invisible |
| ClaudeBot (Anthropic) | No | Client-side content invisible |
| PerplexityBot | No | Client-side content invisible |
| Googlebot | Yes | Full content access |
| AppleBot | Yes | Full content access |
Source: Vercel: The Rise of the AI Crawler
Key finding: Only Googlebot and AppleBot among AI-related crawlers can render JavaScript. All others see only the initial HTML.
What AI Crawlers Actually See
Vercel's research confirmed that while ChatGPT and Claude crawlers do fetch JavaScript files (11.50% and 23.84% of requests respectively), they don't execute them.
ChatGPT explicitly returns this message for JavaScript-dependent pages: "I cannot read the content of the page because it relies on JavaScript-based rendering."
Example: Client-Side Rendered Page
What users see:
Welcome to Our Restaurant Menu | Reservations | Private Events Our award-winning steakhouse has been serving Chicago since 1995...
What GPTBot sees:
The AI crawler sees an empty page because the content is rendered client-side.
The Business Impact
Sites with server-side rendering have significantly higher AI citation rates compared to client-side only sites which show near-zero AI visibility regardless of Google rankings. This affects ChatGPT, Claude, Perplexity, and all AI tools except Google AI Overviews.
Solutions for JavaScript Frameworks
1. Server-Side Rendering (SSR)
Render pages on the server before sending to the client. The HTML contains all content.
| Framework | SSR Solution |
|---|---|
| React | Next.js, Remix, Gatsby (hybrid) |
| Vue | Nuxt.js |
| Angular | Angular Universal |
| Svelte | SvelteKit |
2. Static Site Generation (SSG)
Pre-render pages at build time. Best for content that doesn't change frequently:
- Content pages (blog posts, documentation)
- Marketing pages
- Product pages with infrequent updates
3. Hybrid Rendering
Use SSR or SSG for crawlable pages, client-side for interactive features:
- SSG for content pages (AI crawlers can access)
- Client-side for user dashboards, forms, interactive tools
- ISR (Incremental Static Regeneration) for frequently updated content
4. Pre-rendering Services
Services like Prerender.io or Rendertron can serve pre-rendered HTML to crawlers while users get the SPA experience.
How to Test What Crawlers See
Method 1: Disable JavaScript in Browser
- Open Chrome DevTools (F12)
- Press Ctrl+Shift+P (Command+Shift+P on Mac)
- Type "Disable JavaScript" and select it
- Refresh the page
- What you see is what AI crawlers see
Method 2: Use Curl
curl -A "GPTBot" https://yoursite.com/page
This shows the raw HTML without JavaScript execution.
Method 3: View Page Source
Right-click, then View Page Source shows the initial HTML. If your content isn't there, crawlers can't see it.
Schema Markup and JavaScript
Schema markup (JSON-LD) is typically embedded in HTML and doesn't require JavaScript execution. However, if your schema is generated client-side, AI crawlers won't see it.
Recommendation: Always embed schema markup in the initial HTML response, not generated via JavaScript.
Impact on Different Content Types
| Content Type | SSR Priority | Reason |
|---|---|---|
| Blog posts / Articles | Critical | Primary content for AI citation |
| Product pages | Critical | E-commerce visibility |
| Location pages | Critical | Local search + AI visibility |
| FAQ pages | Critical | High AI citation potential |
| User dashboards | Low | Not crawlable content |
| Checkout flows | Low | Not crawlable content |
Frequently Asked Questions
Does Google AI Overviews require SSR?
No. Googlebot can render JavaScript, so Google AI Overviews can access client-side rendered content. However, ChatGPT, Claude, and Perplexity cannot.
Is pre-rendering the same as SSR?
Pre-rendering generates static HTML at build time or on-demand. SSR generates HTML on each request. Both work for AI crawlers; choose based on how often content changes.
Will AI crawlers eventually support JavaScript?
Possibly, but JavaScript rendering is resource-intensive. For now, assume AI crawlers cannot render JavaScript and plan accordingly.
What about single-page applications (SPAs)?
Pure SPAs without SSR are largely invisible to AI crawlers. Consider migrating to a framework that supports SSR or implementing a pre-rendering solution.
Sources
Related Research
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.
Subscribe to our newsletter!
Recent Posts
- No Social Schema December 7, 2025
- Missing Social Profile Links December 7, 2025
- Social Image Wrong Size December 7, 2025
