HomeHelp CenterJavaScript Rendering and AI Crawlers
    Help CenterMarch 22, 2026

    JavaScript Rendering and AI Crawlers

    Why JavaScript-heavy sites are invisible to AI crawlers and what rendering strategies (SSR, SSG, ISR) make your content accessible.

    The JavaScript problem

    Modern web development loves JavaScript frameworks — React, Next.js, Vue, Nuxt, Angular, Svelte. They create fast, interactive user experiences. But they've also created a massive blind spot: most AI crawlers cannot execute JavaScript.

    When GPTBot, ClaudeBot, or PerplexityBot request your page, they get the raw HTML response from your server. If that HTML is just a skeleton with a <script> tag, the crawler sees an empty page. Your brilliant content might as well not exist.

    Rendering strategies explained

    StrategyHow it worksAI visible?
    CSR (Client-Side Rendering)Browser downloads empty HTML + JS bundle, JS builds the DOM❌ No
    SSR (Server-Side Rendering)Server runs JS and sends fully-rendered HTML on each request✅ Yes
    SSG (Static Site Generation)HTML is pre-built at deploy time, served as static files✅ Yes
    ISR (Incremental Static Regeneration)Like SSG but pages regenerate after a set interval✅ Yes
    HybridSome pages SSR/SSG, others CSR — depends on route⚠️ Varies

    How to tell what your site uses

    1. View Page Source (not Inspect Element) — Ctrl+U or Cmd+Option+U. If you see your actual content in the HTML, you're server-rendered. If you see an empty <div> and script tags, you're client-rendered.
    2. Disable JavaScript in your browser's DevTools and reload. If the page goes blank, it's CSR.
    3. Use GenReady — our report fetches your page exactly like an AI crawler would and shows you what's visible vs. what's hidden.

    Common framework defaults

    • Create React App — CSR only (❌ invisible to AI)
    • Next.js — SSR/SSG by default (✅ but check each route)
    • Gatsby — SSG (✅ visible)
    • Nuxt — SSR by default (✅ visible)
    • Angular (standard) — CSR only (❌ invisible)
    • Angular Universal — SSR (✅ visible)
    • SvelteKit — SSR by default (✅ visible)
    • WordPress — Server-rendered PHP (✅ visible, but heavy JS themes can break it)

    💡 The fastest fix

    If you're on a CSR framework like Create React App, the fastest path to AI visibility is migrating to Next.js or Nuxt with SSR enabled. If that's not feasible, consider a pre-rendering service that generates static HTML snapshots for crawlers.

    Was this article helpful?