Technical readiness resource

Why does a crawler find only one page on my React site?

Find out why a React SPA can look complete in your browser while a scanner discovers only its homepage. Fix the links, sitemap, and HTML behind it.

Your other pages may be there even when a scan finds only the homepage. On some React sites, JavaScript adds the menu after the page loads, so a scanner reading the first HTML response never sees those links. Check the sitemap and delivered HTML before blaming the framework.

Compare what the browser sees with what the server sends

Pick a public page you know exists, such as /services. Open it directly in a private browser window, then inspect View Page Source. Search for its main heading and a link to another page. A working browser view alongside an almost empty source response is a useful clue about client rendering.

curl -L https://your-site.example/services
# Look for the page heading and links such as:
# <a href="/contact">Contact</a>

Give the crawler an explicit route list

Publish /sitemap.xml containing real public URLs, including concrete product or article addresses. A router pattern such as /product/:id is not a page URL. Export the actual published IDs or slugs from your content source. Remove login-only routes and deleted pages.

  1. Start with the homepage and important service or product URLs.
  2. Check that each URL opens directly and returns the intended page.
  3. Publish the sitemap and rerun page discovery before starting a new audit.

Make important navigation available in HTML

Use links with real href destinations for public navigation. If these links and the main page content only appear after JavaScript, consider server rendering or prerendering those public routes. Keep the visible information consistent for visitors and crawlers. Test a nested URL after deployment as well as navigating to it from the homepage.

Does that mean Google cannot read the site?

No. Google can render JavaScript, while SiteReadyFor.SI checks the HTML it receives without running a browser. A one-page discovery result tells you what this scanner found. Use Search Console’s URL Inspection tool when you need to check how Google handled a particular page.

How SiteReadyFor.SI helps you verify the change

SiteReadyFor.SI checks a sitemap, homepage links, and selected same-origin scripts when a sparse app shell yields only one page. Script inspection is a limited fallback: it can miss lazy-loaded, nested, or data-driven routes. The report explains the evidence and suggests fixes. It does not run a browser on the target site or automatically change your React application.

References

Check your own website next.

Run an on-demand audit across crawler access, content retrieval, JSON-LD, sitemaps, and llms.txt.

Start a scan