CSR (Client‑Side Rendering)

Rendering a web page in the browser using JavaScript. Bad for SEO without pre‑rendering or SSR, as search crawlers may not see the content.

In brief

Client‑Side Rendering (CSR) is an approach where the server sends an almost empty HTML and all content rendering happens in the browser via JavaScript. For SEO, additional handling like dynamic rendering, pre‑rendering, or hybrid SSR is required.

What is CSR

Rendering in the browser. Bad for SEO unless pre‑rendering is configured. In CSR the HTML arrives almost empty; content is assembled in the browser via JavaScript.

SEO Problems

Crawlers execute JS but with delays and limits. Without extra measures, important content may not render in time — indexing suffers.

Solutions

  • SSR or SSG — deliver pre‑built HTML (Next.js, Nuxt, Astro)
  • Prerendering (Prerender) — serve static HTML to bots, SPA to users
  • Dynamic rendering — detect bot by User‑Agent and serve a simplified HTML

When CSR is Acceptable

For transactional and commercial pages, CSR without pre‑rendering/SSR risks under‑indexation. CSR makes sense for logged‑in applications (dashboard, CRM) that don't need indexing.

Google can execute JavaScript but does it in a second wave, with delays of days or weeks. If your content is critical for search, use SSR or at least pre‑rendering.

Common questions

Yes, but with caveats. Googlebot executes JS, but its resources are limited and rendering happens in a deferred mode. Simple HTML visible in curl guarantees faster and more reliable indexing.
A technique where the server identifies a search crawler by User‑Agent and serves a pre‑generated static version to the bot while delivering the normal CSR version to regular users. Use carefully because Google may change its User‑Agent.
If important text and links are generated by JS and Google cannot access them — rankings will drop. If indexing occurs but with a delay, pages will take longer to appear in search results.
Use the URL Inspection tool in Google Search Console, select 'Test live URL' and 'View rendered HTML' — you'll see what the crawler received. Also, you can use the old Fetch as Google tool.
Yes, it's a common practice for SPAs built with React/Vue. Services like Prerender.io or Rendertron transparently generate HTML for bots.
Direct contacts

Discuss your project?

Share your goals and website context — I will suggest a practical next step.