Technical

JavaScript SEO

Also known as: JS SEO, JS rendering for search

JavaScript SEO is the discipline of ensuring that JavaScript-rendered content (React, Vue, Angular, Next.js, Svelte) is discoverable, crawlable, and indexable by search engines. Google can render JavaScript but does so in a second-wave crawl that's slower and less reliable than initial HTML crawls; AI engines vary widely in JS rendering support. The fix is usually server-side rendering (SSR), static generation (SSG), or hybrid approaches.

Why JS rendering matters

  • Googlebot can render JS but in a delayed second wave — content may take days/weeks to be indexed vs hours for HTML
  • Other crawlers (Bingbot, AI crawlers like GPTBot, PerplexityBot, ClaudeBot) have weaker JS support — often see only initial HTML
  • AI search engines preferentially cite content visible in initial HTML
  • Core Web Vitals suffers when critical content depends on client-side JS

Rendering strategies (best to worst for SEO)

  1. Static Site Generation (SSG) — pre-rendered HTML at build time. Best for content sites, marketing pages, blogs. Astro, Next.js Static, Gatsby.
  2. Server-Side Rendering (SSR) — HTML generated on each request. Best for dynamic content (e-commerce, user-specific data). Next.js SSR, Remix.
  3. Incremental Static Regeneration (ISR) — pre-render + revalidate. Good hybrid.
  4. Client-Side Rendering (CSR) with prerendering — CSR + pre-rendered HTML snapshots for bots. Acceptable.
  5. Pure CSR (no fallback) — content only visible after JS execution. Worst for SEO/AI search.

Diagnostic signals

  • Google Search Console URL Inspection → “Test live URL” → “View tested page” → check if content appears in rendered HTML
  • view-source: in browser shows raw HTML — if your content isn’t there, crawlers may miss it
  • Screaming Frog rendering mode set to “JavaScript” — compare crawl with content vs without

Common patterns to avoid

  • Critical content (h1, primary copy, internal links) loaded via fetch after page render
  • Lazy-loaded content that depends on scroll/interaction
  • Infinite-scroll feeds without ?page=N URLs
  • Single-page apps (SPAs) without prerendering for bot user-agents

Looking for hands-on help with this?

Free SEO audit

60+ dimensions, 48-hour turnaround.

Get a Free SEO Audit

Enterprise RFP

Tailored proposal in 5 business days.

Submit an Enterprise RFP