JavaScript SEO: How Google Renders Your Single-Page App

Googlebot renders JavaScript using a recent version of Chromium, but rendering happens in a second wave that can lag the initial crawl by hours to weeks. For competitive queries, that lag costs you rankings.

Server-side rendering wins for SEO

SSR returns fully rendered HTML on the first request. Googlebot indexes it immediately on the first crawl — no rendering wait. Frameworks: Next.js, Nuxt, SvelteKit, TanStack Start, Remix.

Client-side rendering needs patience

If your app is pure React/Vue with no SSR, Googlebot has to render in the second wave. Expect indexing delays of days for new pages and update lag for changes.

Hash-based routing breaks SEO

Routes like /#/about are never crawled — Google ignores the fragment. Use the History API (clean URLs) or your SPA is invisible.

Test with URL Inspection's 'Test live URL'

It shows the rendered HTML Google sees. If your main content is missing from that HTML, you have a rendering problem.

Free tools to apply this

FAQ

Does Google render every JavaScript page?

Eventually yes, but with a queue. Sites with low crawl budget can see rendering delays of weeks.

Is Next.js better than Create React App for SEO?

Significantly. Next.js SSR/SSG returns indexable HTML on first response; CRA returns an empty shell.

More SEO guides