SEO
Technical SEO Audit for React Websites: A Checklist
The technical SEO problems React and other JavaScript sites tend to have, how to find them and how to fix them.
React makes fast, interactive websites, but a default React setup sends search engines a nearly empty HTML page and builds the content in the browser. Google can render JavaScript, with delays and limits. Many AI crawlers do not render it at all. A technical SEO audit for React websites checks whether search engines and AI tools see the same page your visitors see.
1. Check what the server actually sends
Open your page, view the source (not the inspector) and search for a sentence from the main content. If it is missing, crawlers that skip JavaScript see an empty page. You can also fetch the page with a command-line tool or use the URL Inspection tool in Google Search Console to compare the raw HTML with the rendered page.
The fix is to serve real HTML for every route. The options are server-side rendering with a framework such as Next.js or Remix, static generation at build time, or prerendering an existing single-page app. This website uses static generation: every page is prebuilt as HTML.
2. Status codes for missing pages
Single-page apps often return a 200 status for every URL and show a "not found" message in the browser. Search engines then index error pages as real content. Each missing URL should return a real 404 status, and moved pages should return a 301 redirect to their new address.
3. Titles, descriptions and canonicals per route
Check that each route has its own title tag, meta description and canonical URL in the HTML the server sends. A common bug is one canonical tag in the base HTML template that points every page to the homepage, which tells Google to ignore the rest of the site.
4. Internal links that crawlers can follow
Navigation should use real anchor tags with href attributes. Links built with click handlers on buttons or divs are invisible to crawlers. Check that every important page is reachable through links, not only through search or filters.
5. Sitemap and robots.txt
Generate the XML sitemap from your routes so it stays complete, list only canonical URLs that return 200, and reference it in robots.txt. While you are in robots.txt, confirm you are not blocking the JavaScript and CSS files Google needs to render pages, or AI crawlers you want to allow.
6. Core Web Vitals
Large JavaScript bundles slow down the first load and hurt Largest Contentful Paint and Interaction to Next Paint. Split code by route, load heavy components only when needed, serve modern image formats with set dimensions to prevent layout shift, and check field data in Search Console rather than lab scores alone.
7. Structured data in the initial HTML
Schema markup added by JavaScript after load may be missed. Put JSON-LD for Organization, Service, Article, FAQPage and BreadcrumbList in the server-rendered HTML.
8. Hash URLs and query parameters
URLs that use # for routing are treated as one page. Use normal paths. For filters and tracking parameters, set canonicals to the clean URL so variations do not compete with each other.
9. AI search readiness
Beyond Google, check access for AI crawlers and consider an llms.txt file. Our guide on getting your business mentioned in ChatGPT covers the steps.
Turning the audit into fixes
Rank the findings by impact: rendering and canonical problems first, because they can hide the whole site, then status codes and internal links, then speed and structured data. If you would like us to run the audit and make the fixes, see our SEO services and web development pages.