My Search / Visibility

SEO / Technical · 06 min read · Updated Sep 2026

JavaScript SEO: when the answer exists only after the script runs

Client-rendered pages can be indexed, but only after a render. If the HTML shell is empty, every crawler that does not wait sees a blank document.

Indexable routes should ship the answer in the HTML, not only in the bundle that runs afterwards.

View the response, not the finished screen

Fetch the URL and read the HTML before scripts run. If the title, main heading, and answer are missing, the server has published a shell. Search may render it later. Other crawlers, previews, and some audits will not.

A single index.html for every route also copies one canonical and one description onto pages that should be distinct. That is how a guide gets the homepage’s identity until JavaScript replaces it.

Put the document in the first response

Server-render or prerender the routes you want indexed, with the correct title, canonical, and body. Hydration can enhance the page after that. The first response should already be worth keeping.

Do not hide the only copy of the text behind a click that fetches it from an API with no fallback. If the text matters, it belongs in the document.

  • Unique title and canonical per route in the raw HTML.
  • Main content present without executing the bundle.
  • Internal links as real anchors, not click handlers alone.

Test with a render check, then with a fetch

URL inspection shows whether Google’s renderer saw the content. Also curl the page. Both should contain the answer. Depending on a renderer alone leaves the site fragile when rendering is delayed or skipped.

Watch for soft 404s: unknown paths that return the shell with a 200 status look like empty documents, not missing ones.

Questions

Can Google index a React app?

Often, yes, after rendering. It is still safer to send complete HTML for every URL you want indexed, because render queues delay updates and other tools never render at all.

Are links built only in JavaScript crawlable?

Some crawlers execute them and some do not. Use ordinary anchor tags with hrefs for any link that should be followed.

Continue reading

This note is part of the Hong Kong field library from My Search / Visibility, built with Itehk.