Modern sites often build pages with JavaScript. Search engines can render JS, but rendering costs time and can fail — so the safest approach is to serve meaningful HTML.
How rendering works
Google crawls the HTML first, then renders the page with a headless browser, then indexes the rendered result. There is a delay, and rendering is not guaranteed for every URL.
Risks of client-side rendering
- Content appears late or not at all to crawlers
- Internal links that only exist after JS runs may not be discovered
- Meta tags injected by JS might be missed
- Errors break the whole page for bots
Safer patterns
- SSR / SSG — render HTML on the server or at build time
- Dynamic rendering / prerendering — serve static HTML to bots
- Keep important content and links in the initial HTML
- Use real <a href> links for navigation
Test it
- Use the URL Inspection tool to view the rendered HTML Google sees
- Disable JavaScript in the browser and check what remains
- Fetch as a bot and inspect the raw response
Keep the basics solid
Even on a JS site, titles, canonical tags and structured data must be present in the rendered output. Validate with the canonical checker.