JavaScript SEO

JavaScript SEO Basics

Google processes JavaScript pages in three phases: crawl, render, index. The render phase is queued separately, so a page can be crawled today and rendered later. Content that only exists after JavaScript runs is therefore indexed on a delay.

What breaks

  • Content that requires user interaction, a click to expand, an infinite scroll with no links. Googlebot does not click or scroll.
  • Blocked resources. If the script or API endpoint is disallowed in robots.txt, rendering fails and Google indexes an empty shell.
  • Client-side routing without real URLs. Fragment-based routes (#/page) are not separate URLs to Google.
  • Timeouts. Rendering has a budget; a page waiting on slow third-party calls may be captured incomplete.
  • Errors. One uncaught exception can stop the render.

Metadata set by script

Titles, descriptions and canonical tags injected by JavaScript can work, but they are read at render time. Server-rendering these elements is far more reliable.

Alien Road recommends: server-render or pre-render anything that must be indexed, titles, canonical tags, main copy and internal links at minimum. We treat client-only rendering of primary content as a defect on client projects, because it converts a deterministic outcome into a probabilistic one for no user benefit.

, ,
Teilen

© Copyright 2026 Alien Road. All rights reserved.