Scanverra
SPA-aware audit

React Website Audit

Scanverra loads your React app the way a browser does and checks what's actually in the page before and after JavaScript runs - because for a client-rendered SPA, that gap is where most SEO problems live.

What we check for React

Five checks specific to how single-page apps render and ship content.

Content visible before JavaScript runs

Whether the initial HTML response is an empty <div id="root"></div> and a script tag, or has real content that a crawler without a JS engine can still read.

Bundle size and code splitting

A single large JavaScript bundle shipped on every route versus route-based splitting - unnecessarily heavy first-load JS delays the point where the page becomes interactive.

Meta tags that only update client-side

Title and description set via document.title or a client-side head manager after mount are invisible to anything that doesn't execute your JavaScript first.

Console errors and error boundaries

Unhandled render errors that take down an entire view instead of being caught and contained by a boundary around the section that failed.

Layout stability on client-side navigation

Route changes that swap content without reserving space for it, causing a layout shift after the page already looked settled.

How it works

Three steps from URL to SPA-specific fixes.

Paste your app's URL

Any public React app - a Vite build, Create React App, or a hand-rolled setup all work the same way.

We compare raw HTML to the rendered page

The initial response is checked against what's on screen after React mounts, which is exactly where SPA-specific SEO problems live.

Get SPA-specific fixes

Suggestions written for a client-rendered app - not generic advice that assumes a server is doing the rendering for you.

FAQ

Frequently asked questions

My React app is a pure client-rendered SPA with no server framework - can Scanverra still audit it?

Yes. The audit loads the page in a real browser environment and lets your JavaScript run before scoring it, the same way a visitor would experience it - it doesn't require server rendering to work.

Does it flag an empty <div id="root"> as a problem?

If nothing meaningful is present in the HTML before JavaScript executes, that shows up as a content-visibility and SEO issue - not because an empty root div is inherently wrong, but because anything that can't or won't run your JS sees nothing there.

Can Scanverra tell if I'm using Create React App or Vite?

It detects React itself through a wide set of signals - the id="root" mount point, known bundle filename patterns, and dev-tooling hooks - regardless of which build tool produced them. It doesn't report a specific toolchain label in your results.

Does the audit actually run my JavaScript, or just fetch the HTML?

It runs a full browser render, not a static HTML fetch, so it sees your fully mounted and hydrated page - then separately checks what existed before that JavaScript ran.

Will React console warnings or errors affect my score?

Yes. Console errors are part of the Best Practices score, and an uncaught render error in a component without an error boundary is one of the more common ways they show up.

Free - no sign-up required

Find out what's missing before your JS runs

Bundle weight, meta tags, error boundaries, and layout stability - scored the way a crawler actually sees your app.

Run free audit