Skip to main content
Loved by 122+ engineering teams

React SEO for Single-Page Apps That Show Google an Empty Page

For teams running a React single-page app: we get each public route's content, title, and links into the HTML Google receives, usually without a rebuild.

  • 3X

    More routes in Google's index

  • 100%

    Public routes with unique titles

How your project runs

01 · Free
your siteexample.comhttps://example.com › servicesCustom Web Development | ExampleTitleMetaCanonical
  1. 01Free Route Review
  2. 02Route-Level Audit
  3. 03Metadata and Routing
  4. 04Prerender or Server Render
  5. 05Recrawl and Report

Teams we have built for:

  • Amazon Web Services
  • HubSpot
  • Linode
  • Microsoft Azure
  • Moodle
  • Magento
  • Oracle
  • Salesforce
  • SAP
  • Squarespace
  • Weebly
  • WP Engine
  • Google Cloud
  • DigitalOcean

The Problem

Your React App Reads as One Blank Page to Google

It shows up once the app has public pages that should rank: pricing, docs, listings, or a blog. Users see everything, while search results show one title or nothing.

  1. Same title

    Every route shows the title from index.html in search.

    Same title

    Set a unique title, description, and canonical inside each route component.

  2. Empty root

    Google's first fetch gets one empty div and a script.

    Empty root

    Prerender static routes at build so each ships as finished HTML.

  3. Div links

    Blog and category links are divs with click handlers.

    Div links

    Swap them for anchor elements with real paths that crawlers can follow.

  4. Hash URLs

    HashRouter puts every page after a #, so Google sees one URL.

    Hash URLs

    Move to browser history routing so each page gets its own clean URL.

Your React app looks finished, and Google lists your pricing page as React App. View the source and the body holds one empty div and a script tag. Every route shares the title from index.html, so search results show the same snippet ten times. Blog links are divs with click handlers, so Googlebot finds the homepage and stops. A deleted listing still returns a 200 with a friendly not found message. Each sprint ships more routes that Google can't read properly.

We start route by route, not with a generic crawl. Each public route gets a choice: a prerendered HTML file, server rendering for changing data, or noindex for app-only screens. Then we add per-route titles and canonicals, real anchor links, and a 404 that returns a 404. Your developers review every change as a pull request. Search reads your routes as pages, not one script.

  • Route-by-route decisions

    Each public route gets prerendering, server rendering, or noindex, chosen by what it holds.

  • A title for every route

    Per-route titles, descriptions, and canonicals, set with React 19 metadata tags or Helmet.

  • Prerendered HTML at build

    Static routes ship as finished HTML files, so Google's first fetch already has the content.

Our React SEO Services Process

From Empty Root Div to Indexed Routes in Five Steps

You see what Google gets for each route before any code changes, choose the rendering approach route by route, and review every pull request on staging.

  1. We test 3 of your public routes with Google's URL Inspection live test and read the rendered HTML. A short written note follows: what Google sees on each route, which routes matter most, and whether a full audit pays off.

What's Included

What You Get With React SEO Best Practices in Your Codebase

The full scope: a route-level audit, per-route metadata, crawlable navigation, honest status codes, prerendering or server rendering, and a recrawl report after release.

  • Public route map

    Every public route listed with its data source and the rendering choice it needs, with reasons.

  • Per-route metadata

    Titles, descriptions, canonicals, and Open Graph tags set inside each route component.

  • Crawlable navigation

    Menus, cards, and pagination rebuilt as anchor elements with real paths instead of click handlers.

  • Real 404 responses

    Missing records send a real 404 status or a noindex tag instead of a friendly 200 page.

  • Prerendering or server rendering

    Static routes prerendered at build, and dynamic routes server-rendered when their data changes often.

  • Recrawl and handoff

    Indexing requested for key routes, a before-and-after report, and notes your developers keep.

Compare Options

DeveloperLook vs Prerender Service vs Full Rebuild

A hosted prerender service is quick to switch on, and a rebuild in a new framework fixes everything at once. Most React apps need something in between, so here is where each fits.

DeveloperLook
Prerender service
Time to first fix
DeveloperLook: 1 to 3 weeks of code changesPrerender service: Hours to switch on
What Google receives
DeveloperLook: The same HTML users getPrerender service: A separate copy for bots
Metadata per route
DeveloperLook: Set in each route componentPrerender service: Only what the app renders
Google's guidance
DeveloperLook: Prerendering and server renderingPrerender service: Called a workaround by Google
Risk to features
DeveloperLook: Routes change one at a timePrerender service: Low, the app stays as is
Upfront cost
DeveloperLook: Fixed scope from $750Prerender service: Low upfront
Ongoing cost
DeveloperLook: None after handoverPrerender service: Monthly fee by page volume
Code ownership
DeveloperLook: Every change in your repositoryPrerender service: Depends on the vendor

Projects We've Built

Two of these are React builds, the Staffic app and its marketing site. All four are build projects we designed and developed, not SEO case studies.

What Our Clients Say

What Clients Say After Launch

Feedback from teams we have built and launched websites for.

We had a pretty specific idea of what we wanted our website to become, but I wasn’t sure how easily we could explain all of it to a development team. There were quite a few moving parts, and we were working toward a deadline, so I expected a few things to get lost along the way. That never really happened. They understood what we were trying to achieve, kept us updated throughout the process, and got everything ready within the agreed timeline. The final site feels much easier to navigate, works beautifully on mobile, and is noticeably smoother for our customers. It was a huge relief seeing the original idea actually turn into the website we had in mind.

Michael BennettFounder & CEO of Northbridge Consulting01 / 03
  • 1,250+

    Projects shipped

  • 10+

    Years of experience

  • Top 3%

    Upwork Top Rated Plus

  • 5 stars

    Average review score

  • 1,250+

    Projects shipped

  • 10+

    Years of experience

  • Top 3%

    Upwork Top Rated Plus

  • 5 stars

    Average review score

Want results like these?

Tell us what you are building. You get a reply within 24 hours on business days, then a written estimate.

Work Culture

Why Product Teams Trust Us With Their React Code

We work inside your React codebase and review process, and we size every change by route, so your roadmap keeps moving while search gets fixed.

  • Changes through your reviews

    We open pull requests on your branches and follow your lint and test rules. Nothing reaches production without your team's approval.

  • Rendering chosen per route

    We don't push server rendering onto every screen. Login, settings, and dashboard routes stay client-side, because Google has no reason to index them.

  • Your versions respected

    We work with the React and router versions you run today. Upgrades happen only when a fix needs one, and we explain why first.

  • Tests that prove the fix

    Each change ships with a check, such as a Playwright test that reads the rendered title. Your team can rerun it after every release.

  • Honest about rebuild talk

    Moving to Next.js is sometimes right, but rarely the first step. If prerendering 30 routes solves the problem, we recommend that instead.

  • No proprietary layer

    Prerendering and server rendering run in your own build and hosting. There's no outside service between Google and your app to keep paying.

Overview

How does React SEO work for a single-page app?

DeveloperLook delivers React SEO for single-page apps and client-rendered sites. We audit every public route, add per-route titles and canonicals, rebuild navigation as crawlable links, and prerender or server-render the routes Google needs. Plans start at $750 with a fixed scope, most projects take 1 to 6 weeks, and every change lands in your repository.

DEVELOPERLOOK

Project facts · React SEO Services

Service
React SEO Services (route audit, per-route metadata, prerendering, server rendering)
Typical timeline
1 to 2 weeks for metadata, 3 to 6 weeks with server rendering
Platforms
React apps on Vite, Create React App, React Router, or Remix
Built with
URL Inspection, Chrome DevTools, Lighthouse, Playwright, Screaming Frog
Experience
10+ years of development experience and 1,250+ shipped projects
Post-launch support
30 days of fix support (60 days on Server Rendering Move)
Communication
Calls in US, UK, and AU business hours
Starting price
From $750 USD, fixed scope after a free route review

Reviewed 28 Oct 2026 by Saimul Islam

Good fit

  • Startups on a Vite React app

    Your marketing pages and docs live inside a Vite React app, and a URL Inspection test shows Google an empty root div.

  • Teams still on Create React App

    Your app was built on Create React App, which the React team deprecated in 2025, and you want ReactJS SEO fixed before choosing a new setup.

  • SaaS products with public app routes

    Your public profiles, templates, or listings live inside the React app, and every one shows the same title in search results.

  • Marketing leads waiting on developers

    You know SEO for React apps needs code changes, but the product team will only pick up tickets that name the route, the file, and a test.

  • Agencies with React client builds

    Your agency built a client's site in React, and its pages appear in Google with the wrong title, no description, or not at all.

Not a fit

  • App runs on Next.js already

    Your React app already runs on Next.js. Our Next.js SEO Services page covers the Metadata API, rendering modes, and Core Web Vitals inside that framework.

  • Vue, Angular, or mixed stack

    Your site runs on Vue, Angular, or several frameworks at once. Our JavaScript SEO Services page is framework-neutral and fits better.

  • Need new features built

    You need product features built rather than search fixes. Our React Development Services team builds the app, and SEO checks can join that project.

  • Few routes, under $750

    Your app has under 5 public routes and little search traffic. A static landing page outside the app may solve it for less, and we'll say so on the call.

Not sure we're the right fit?

Book a free call or message us. We'll tell you honestly whether we're the right team.

Pricing

Transparent Starting Prices for React SEO Services

These are starting points in USD. Your final price depends on your route count and whether dynamic routes need server rendering, and you get a fixed proposal after a free route review.

$500$1k$1.5k$2k$2.5k$3k$750$1,500$2,350

For React apps that need every public route titled and the main static routes prerendered.

$750one-time, USD

Get a fixed quote
  • Route-level audit, up to 15 routes
  • Unique titles and canonicals on every public route
  • Prerendering for up to 10 static routes
  • Sitemap and robots.txt from your routes
  • Developer tickets ranked by impact
  • 30 days of fix support

Recommended

For apps with up to 50 public routes that need links, 404s, and prerendering fixed.

$1,500one-time, USD

Get a fixed quote
  • Everything in Route Audit and Metadata
  • Prerendering for up to 50 public routes
  • Click-handler links rebuilt as anchors
  • Real 404s from the catch-all route
  • Hash routing moved to clean URLs
  • 30 days of fix support

For apps whose dynamic routes need server rendering through React Router's framework mode.

$2,350one-time, USD

Get a fixed quote
  • Everything in Prerendering Rollout
  • Server rendering for up to 8 dynamic route types
  • Data loaders that render content on the server
  • Structured data on 2 key templates
  • Release in stages, tested on staging first
  • 60 days of fix support and route checks

For Agencies

White-Label React SEO for Agencies and Studios

You keep the client and the strategy. We handle the React side: route audits, metadata fixes, and prerendering in the client's repository, with summaries your account managers can send as their own.

How the partnership works

White label: your client only ever sees your brand

Your clientSees only your brand
You, the agencyOwn the relationship
DeveloperLookBehind your brand
  1. Send the app details

    Share the client's URLs, React setup, repository access, and any SEO findings.

    • Client needs
    • You share the details
    • Details received
  2. We review and price

    We test key routes and send a fixed proposal you can rebrand.

    • Scope and plan
    • Proposal to resell
    • Your quoteYOUR LOGO
  3. Ship and report

    We merge the fixes, retest each route, and send you the closing report.

    • Done by our team
    • Your brand on it
    • Handed to your clientDone
  • Your client
  • You, the agency
  • DeveloperLook
  1. Send the app details

    Share the client's URLs, React setup, repository access, and any SEO findings.

    1. Client needs
    2. You share the details
    3. Details received
  2. We review and price

    We test key routes and send a fixed proposal you can rebrand.

    1. Scope and plan
    2. Proposal to resell
    3. Your quoteYOUR LOGO
  3. Ship and report

    We merge the fixes, retest each route, and send you the closing report.

    1. Done by our team
    2. Your brand on it
    3. Handed to your clientDone
  • Your brand throughout

    Reports, tickets, and call notes carry your agency's name, not ours.

  • React specialists on call

    Engineers who read the client's components and routes directly.

  • Scoped by route

    A fixed price per set of routes, agreed before work starts.

  • Capacity on demand

    Take on React search work for more clients without new hires.

The Right Technology for Your Project

Technology Stack

Tools we use to test React routes the way Google renders them, change them in your codebase, and confirm the result after each release.

    • React logoReact
    • Vite
    • React Router
    • Remix logoRemix
    • TypeScript logoTypeScript
    • Google Search Console logoGoogle Search Console
    • Google Chrome logoChrome DevTools
    • Lighthouse logoLighthouse
    • Playwright
    • Screaming Frog
    • Node.js logoNode.js
    • Vercel logoVercel
    • Netlify logoNetlify
    • Cloudflare logoCloudflare
    • AWS logoAWS
    • PageSpeed Insights logoPageSpeed Insights
    • Google Analytics logoGoogle Analytics (GA4)
    • Google Tag Manager logoGoogle Tag Manager
    • Google Sheets logoGoogle Sheets
01 / 04

FAQ

Frequently Asked Questions

Straight answers on cost, timing, rendering choices, and how SEO, React routing, and Google fit together.

  • They start at $750 for a route audit, unique titles on every public route, and prerendering on up to 10 static routes. Prerendering for up to 50 routes with link and 404 fixes costs $1,500, and server rendering for dynamic routes costs $2,350. You get a fixed quote once we have tested 3 of your routes.

  • Fixing SEO in a React app takes 1 to 2 weeks for the audit and metadata, and 2 to 4 weeks with prerendering. Server rendering for dynamic routes needs 3 to 6 weeks in total. Google then has to recrawl the changed routes before Search Console shows the difference.

  • SEO in React JS means making a React app's pages crawlable, renderable, and indexable with the right content, titles, and links. React renders in the browser by default, so the work centers on the HTML Google receives for each route and what it sees after scripts run.

  • React is good for SEO when public pages are prerendered or server-rendered, and weak when everything renders in the browser. Google can run JavaScript, but it queues pages for rendering, and many other crawlers can't run scripts at all. Where key routes ship as HTML, React sites compete like any other site.

  • Yes, React JS and SEO work well together once you add what React leaves out. That means per-route titles, real URLs, and content in the first response. A plain client-rendered app gives every route the title from index.html. React 19 can now render title and meta tags inside components, which closes one old gap.

  • React JS matches server-rendered pages for SEO only when it also sends HTML for each route. Client-only React makes every crawl depend on JavaScript, while a server-rendered page hands Google finished content. Prerendering or server rendering closes that gap, and React keeps the interactive parts.

  • No, a default client-rendered React setup isn't SEO friendly out of the box. Create React App and the standard Vite template ship one index.html with one title for every route. You add per-route metadata, crawlable links, and prerendering yourself, or choose a framework that does it.

  • React isn't SEO friendly in apps that keep content and links out of the first HTML response. Common causes are click-handler navigation, hash-based URLs, data fetched only after load, and catch-all routes that return 200 for missing pages. Each one is a code pattern we can change, not a flaw in React itself.

  • Usually not: SEO with React rarely needs a rebuild as the first step. Prerendering static routes and fixing metadata, links, and status codes covers most problems inside your current app. A move to Next.js or React Router's framework mode makes sense when many dynamic routes need server rendering, and we show the trade-off first.

  • Yes, every change lives in your repository as a reviewed pull request, with no outside service between Google and your app. You get 30 days of fix support after release, or 60 days on Server Rendering Move. If a static page outside the app already covers your case, we'll tell you before we quote.

Saimul IslamFounder & CEO, DeveloperLook

Still have questions?

Send a message or book a call with the team.

Book a free call

Free 30-min call

Book a call

Book a free 30-minute call

In 30 minutes on Google Meet we walk you through how we would build it, how long it takes and what it costs. Then you get a written estimate.

Calendar not showing? Book on cal.com or send a brief.