← Clarigital·Clarity in Digital Marketing
Technical SEO · Session 2, Guide 8

SSR vs CSR · Rendering Strategies for SEO and Performance

The rendering strategy you choose — server-side rendering, client-side rendering, static site generation, or incremental static regeneration — determines how quickly your pages load, how well they are indexed, and how easily they can be maintained. This guide compares every approach across SEO impact, Core Web Vitals, and architectural complexity.

Technical SEO2,800 wordsUpdated Apr 2026

What You Will Learn

  • The six main web rendering patterns and what each delivers to the browser
  • Why CSR is the worst pattern for SEO and which CWV metrics it harms most
  • How SSR eliminates the JavaScript SEO two-wave problem
  • When static site generation (SSG) is the optimal choice over SSR
  • How incremental static regeneration (ISR) bridges the gap between SSG and SSR
  • Partial hydration and islands architecture — the emerging performance-first patterns
  • A decision framework for choosing the right rendering strategy for your site type

The Six Rendering Strategies

StrategyWhere HTML is GeneratedWhen GeneratedJS Needed for Content
CSR — Client-Side RenderingBrowserOn each page visit (runtime)Yes — all content
SSR — Server-Side RenderingServerOn each page request (runtime)No — content in HTML
SSG — Static Site GenerationBuild serverAt build timeNo — content in HTML
ISR — Incremental Static Regen.Server/CDNOn first request, then cachedNo — content in HTML
Streaming SSRServerOn each request, progressivelyNo — content in HTML
Islands ArchitectureServer (shell) + Browser (islands)Shell at build; islands on visitOnly for interactive islands

CSR and SEO — The Problems

Pure client-side rendering sends a nearly empty HTML shell to the browser. All meaningful content — text, headings, meta tags, links — is generated by JavaScript running in the browser after the initial HTML loads. For regular users with fast devices and connections this is often acceptable. For search engine crawlers and for Core Web Vitals, it creates significant problems.

SEO problems specific to CSR

  • Two-wave indexing delay. Content only exists after JavaScript executes — this is always Wave 2 for Googlebot, meaning days or weeks of indexing delay (see JavaScript SEO guide).
  • Empty pages on crawl failure. If JavaScript fails to execute (network error, browser incompatibility, resource blocked), Googlebot may index a blank or near-empty page.
  • Soft 404s. CSR applications that render "page not found" states via JavaScript while returning a 200 HTTP status are indexed as normal pages.

Core Web Vitals problems specific to CSR

  • LCP is always delayed. The LCP element cannot paint until the JavaScript bundle downloads, parses, executes, and renders the DOM. This is inherently slower than receiving the element in HTML.
  • High INP risk. Large JavaScript bundles create long tasks during initial execution, blocking interaction for seconds after the page visually loads.
  • FCP (First Contentful Paint) is delayed. The browser shows a white screen until the JavaScript renders the first content — users see nothing meaningful during the entire JS execution period.

Server-Side Rendering — Benefits and Trade-offs

Server-side rendering generates the full HTML page on the server for every request and sends it directly to the browser. The browser receives complete, indexable, renderable HTML immediately — no JavaScript required to see the content. JavaScript is then loaded to "hydrate" the HTML and add interactivity.

SEO benefits of SSR

  • Content is in the HTML that Googlebot receives in Wave 1 — no rendering queue delay
  • All meta tags, canonical, hreflang, and structured data are present in the initial HTML
  • Correct HTTP status codes are served server-side (404, 301, 200)
  • All URLs are accessible as distinct HTML documents with their own content

CWV benefits of SSR

  • LCP can begin as soon as TTFB completes — the LCP element is in the HTML, no JS wait
  • FCP is faster — browser can begin painting immediately from the HTML response
  • Overall Lighthouse/PageSpeed scores significantly higher than equivalent CSR

Trade-offs

  • Higher server cost. Every page request generates HTML on the server, requiring more CPU than serving a static file or cached response.
  • Higher TTFB than static files. Server processing time is always greater than zero — SSR pages have higher TTFB than CDN-cached static HTML (though caching SSR output at the CDN mitigates this).
  • Hydration complexity. Ensuring the server-rendered HTML matches what the client-side JavaScript would have rendered (hydration mismatch) is a common source of bugs in SSR applications.

Static Site Generation

Static site generation builds all pages at deploy time — generating complete HTML files from your content and storing them as static files. These files are served directly from a CDN with zero server processing, giving TTFB values under 50ms and perfect scalability.

SSG is the optimal choice for content that does not change frequently and does not require per-request personalisation. SEO performance is excellent — complete HTML served instantly from CDN edge, no JavaScript dependency for content. CWV scores are typically highest of all rendering strategies because TTFB is minimal and there is no render-blocking JavaScript.

SSG limitations: build time grows with the number of pages (a 100,000-page e-commerce site can take 30+ minutes to build); content updates require a rebuild and redeploy cycle; real-time or personalised content cannot be statically generated.

Incremental Static Regeneration

Incremental Static Regeneration (ISR), introduced by Next.js and now available in other frameworks, generates pages on first request like SSR, then caches and serves the generated HTML as a static file — like SSG. After a configurable revalidation period, the next request triggers a background rebuild of that specific page, updating the cached static HTML without requiring a full site rebuild.

ISR provides the performance characteristics of SSG (CDN-cached static HTML, minimal TTFB) with the flexibility of SSR (content can be updated without a full rebuild). It is particularly well-suited for large content sites where SSG build times become prohibitive and SSR cost is a concern.

// Next.js ISR configuration (App Router)
export const revalidate = 3600; // Regenerate every 1 hour

// Or with on-demand revalidation
import { revalidatePath } from 'next/cache';
revalidatePath('/blog/[slug]', 'page');

Hydration, Partial Hydration, and Islands

Hydration is the process of attaching JavaScript event handlers to server-rendered HTML after the page loads. Full hydration (the React and Vue default) downloads the entire JavaScript bundle and re-runs the component tree to attach interactivity — even for components that are purely static.

The hydration INP problem

Full hydration creates long tasks during the hydration phase — the browser parses and executes potentially megabytes of JavaScript immediately after the page becomes visible. This is a primary source of poor INP on SSR React applications — the page looks loaded but is unresponsive during hydration.

Partial hydration and islands architecture

Partial hydration (React Server Components, Astro islands, Qwik's resumability) only hydrates interactive components — static content receives no JavaScript overhead. A blog post with a comment form only hydrates the comment form component, not the post content, header, or footer. This can reduce JavaScript execution by 60–90% and dramatically improves INP on content-heavy pages.

Decision Framework

Site TypeRecommended StrategyRationale
Blog / documentation / marketingSSG or ISRContent changes infrequently; static HTML gives best CWV and fastest TTFB
News / high-update content siteISR with short revalidationFrequent content updates; ISR provides static performance with manageable rebuild cost
E-commerce (inventory changes)SSR + CDN caching, or ISRProduct pages need fresh data; SSR with CDN caching of rendered output balances performance and freshness
Dashboard / authenticated appCSR acceptableBehind login — SEO indexing not required; personalised data cannot be statically generated
Large catalogue (>100K pages)SSR + ISR for popular pagesSSG build time prohibitive; ISR only generates requested pages on demand
Existing CSR SPA needing SEO fixDynamic rendering (interim), SSR migration (long-term)Dynamic rendering solves indexing immediately; SSR migration improves CWV

Authentic Sources

OfficialGoogle web.dev — Rendering on the Web

Comprehensive comparison of all rendering strategies and their performance implications.

OfficialGoogle Search Central — JavaScript SEO Basics

How different rendering approaches affect Googlebot crawling and indexing.

OfficialGoogle web.dev — Core Web Vitals for SPAs

How single-page application architecture affects LCP, INP, and CLS measurement.

600 guides. All authentic sources.

Official documentation and academic research only.