Is a React website good for SEO?
Short answerReact is good for SEO when pages are rendered to HTML before they reach the browser, through prerendering or server-side rendering. It’s weak when the site is a bare client-side app that sends an empty page and builds it with JavaScript. Google can usually cope, slowly. Many AI crawlers can’t. How you render matters more than the framework.
Wondering if crawlers can read your site?
Send me the link. I’ll check what Google and AI crawlers actually receive and tell you if rendering is holding you back.
The longer answer
The problem people are worried about
A default React app is a single-page application. The server sends a nearly empty HTML file and a bundle of JavaScript, and the browser builds the page. That’s called client-side rendering.
Google can run JavaScript, but it renders pages in a later pass, which can delay indexing. Other crawlers, including many used by AI tools, are reported to read the raw HTML and don’t run scripts at all. To them, a client-rendered page can look blank.
How React sites rank well
The fix is to produce real HTML ahead of time. With prerendering or static site generation, each page is built into a complete HTML file at build time. With server-side rendering, the server builds it on each request. Either way, a crawler gets the full text, headings, links and structured data on the first request. JavaScript then takes over in the browser for interactivity, a step known as hydration.
Visitors get the best of both: a page that appears quickly, then behaves like an app. Crawlers get a normal web page.
What else still has to be right
Rendering gets you seen. Ranking still needs the usual things: a unique title tag and meta description per page, clean URLs, real internal links rather than click handlers, a sitemap and fast loading. A badly built React site can be bloated and slow, which hurts Core Web Vitals. A well-built one can be very fast.
Watch for features that only work through scripts, like menus that load links on click or content hidden behind tabs that never appears in the HTML. If it matters for search, it should be in the page source.
What I’d do
Nick Lovett, founder of Tavro
I build in React because it gives me full control over design and interaction, and I prerender every page to static HTML. So when Google, ChatGPT’s crawler or Perplexity requests a page, they get the finished text, headings and schema in the first response, with no waiting on scripts. If you have a React site that isn’t ranking, the first thing I’d do is view the page source. If the content isn’t in it, that’s your answer, and the fix is usually in the build setup rather than a rewrite.
Follow-up questions
Usually, yes, but rendering can be delayed and things can be missed. Serving real HTML removes the uncertainty.
Next.js makes server rendering and prerendering easier to set up. Plain React can do the same with the right build setup.
View the page source, not the inspector. If your headings and text aren’t in the source, crawlers that skip JavaScript won’t see them.
Keep reading
- nick@tavro.ca
- 587-439-9994
- Calgary, Alberta