LaunchRanked

GlossarySEO

What is client-side rendering, and is it bad for SEO?

Also called: CSR, single-page app, SPA

Definition

Client-side rendering (CSR) means the browser builds the page with JavaScript after downloading a mostly empty HTML shell. Google can usually render it, but it's slower and riskier for SEO than server-rendered HTML.

Client-side rendering (CSR), explained

Classic single-page apps built with Create React App, Vite or Angular serve the same index.html for every route. It contains a root element and script tags. The browser downloads the JavaScript, fetches data and builds the page. Until that finishes, there's nothing to read.

Google's JavaScript SEO guide says Google renders JavaScript with an evergreen Chromium, so CSR pages can be indexed. The risks are in the details. Rendering happens after crawling, and pages can wait in the render queue. Links and content that depend on user actions are missed. Every route returns 200, so missing pages become soft 404s unless you handle them. Metadata set in the browser may be missed by link-preview bots and other crawlers. And crawlers that don't run JavaScript, which includes many AI crawlers, see an empty page.

Performance suffers too. The browser has to download, parse and execute JavaScript before it can show the main content, which pushes Largest Contentful Paint later, especially on mid-range phones.

CSR is fine for logged-in app screens that shouldn't be indexed anyway. For public pages that you want found, like the homepage, pricing, blog, docs and comparisons, render the HTML on the server or at build time. Many teams split the two: a static or server-rendered marketing site and a client-rendered app on a subdomain or path.

Why it matters for founders

If your landing pages are part of your SPA, you're asking crawlers to do extra work to see your pitch. Moving public pages to server or static rendering is one of the most useful technical fixes for a young product.

Example

curl https://yourapp.com/pricing returns only <div id="root"></div>. You move marketing pages to a statically generated site and keep the SPA under /app, where it's noindexed.

Common mistakes

  • Public marketing pages rendered only in the browser.
  • No 404 handling for unknown routes.
  • Titles and descriptions set with client-side code.
  • Judging crawlability by what you see in Chrome.

Sources

Checked

← All 274 glossary terms