JavaScript and AI Search: Why Server-Side Rendering Matters for GEO

3 Comments

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

CrawlerJavaScript RenderingImpact
GPTBot (OpenAI)NoClient-side content invisible
ChatGPT-User (OpenAI)NoClient-side content invisible
ClaudeBot (Anthropic)NoClient-side content invisible
PerplexityBotNoClient-side content invisible
GooglebotYesFull content access
AppleBotYesFull 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.

FrameworkSSR Solution
ReactNext.js, Remix, Gatsby (hybrid)
VueNuxt.js
AngularAngular Universal
SvelteSvelteKit

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

  1. Open Chrome DevTools (F12)
  2. Press Ctrl+Shift+P (Command+Shift+P on Mac)
  3. Type "Disable JavaScript" and select it
  4. Refresh the page
  5. 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 TypeSSR PriorityReason
Blog posts / ArticlesCriticalPrimary content for AI citation
Product pagesCriticalE-commerce visibility
Location pagesCriticalLocal search + AI visibility
FAQ pagesCriticalHigh AI citation potential
User dashboardsLowNot crawlable content
Checkout flowsLowNot 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!

More from our blog