JavaScript SEO · React / Next.js / Vue / Headless · Code-Level

If a crawler must run your app to see the page, you’ve lost.

Google renders JavaScript, on a queue, with limits, and most AI crawlers barely run it at all. Client-rendered content gets discovered slower, recrawled less and cited never. We diagnose what crawlers actually receive, fix rendering strategy at code level, and implement it ourselves, because this practice ships production React and Next.js.

Queued
Google renders JS on a budget, not instantly
AI blind
Most AI crawlers execute little or no JavaScript
We code
Fixes shipped, not recommended
4.9
Avg. rating · 180+ reviews
32
Cities covered · UK · US · CA
£500
Risk-free audit · credited on retainer
24h
Response time · senior-led
7+
Years specialist SEO · since 2019
Technical SEO · Local SEO · Manual Backlinks · Digital PR · Web Design · AI Agents · Social Media
Serving JS Applications · bilingual EN/AR for Gulf · month-to-month

JavaScript SEO: the load-bearing facts

Core rule
Primary content must not require JS execution
Strategy order
Static, then server-rendered, then client, deliberately
Top failures
Post-hydration content, non-anchor links, client metadata
Diagnostics
Rendered-HTML diffing, JS-off crawls, logs, field data
AI layer
Non-rendering crawlers make SSR a citation issue
Headless risk
Governance, not rendering: define the SEO contract
08 · Let’s talk

Frameworks don’t break SEO. Defaults do.

A short introduction, your site URL, and what you’re trying to achieve. If it’s a fit, we’ll book a 30-minute call.

Free £500 SEO audit included with any web dev or SEO package · no card required

JavaScript SEO problems are invisible in the browser and obvious in the logs, which is why they survive for quarters inside teams doing everything else right. The developer sees a fast, beautiful application; the crawler sees a shell, a click handler where a link should be, and a title tag that says “React App”. This page covers the diagnosis and the code-level fixes.

Chapter 01 · Rendering strategy

Decide it deliberately, route by route

Static generation for anything pre-buildable, server rendering for genuinely dynamic pages, client rendering only for interaction-time UI search never needs. In practice that means examining every route rather than accepting framework defaults, and treating “could a crawler see this without executing anything?” as a build-time test rather than a post-launch discovery. The AI dimension raises the stakes: engines that cite sources without running JavaScript simply cannot see client-rendered content.

Chapter 02 · The five failures

What actually breaks in production

Content that appears only after hydration; navigation built from click handlers instead of anchors, leaving nothing to crawl; metadata assigned client-side so the index holds generic titles; hydration mismatches causing intermittent render failures (we have seen this cost six months of rankings on an otherwise excellent build); and client-side routing returning 200 responses for missing pages, creating soft 404s at scale. All five are code fixes, none is a plugin.

Chapter 03 · Diagnosis

Look at what the crawler actually got

The method: fetch raw HTML and compare against the post-JavaScript DOM to see exactly what is missing pre-render; crawl with JavaScript disabled to establish the crawler-visible baseline; read Search Console's rendered HTML and screenshots per URL; check log files for fetch patterns and rendering delays; and use field-data Core Web Vitals to quantify hydration cost. Lighthouse alone is why these problems persist, it renders like a patient browser, not like an impatient crawler.

Chapter 04 · Headless governance

The SEO contract headless builds forget

Decoupling the front end removes the CMS's traditional enforcement of titles, canonicals, redirects, sitemaps and structured data, and nothing replaces it unless someone writes it down. We define the contract explicitly: mandatory content fields, redirect ownership and storage, sitemap generation, schema validation in CI, and who reviews SEO impact on front-end releases. Related: technical SEO, Webflow, enterprise governance.

A note from Syed

JavaScript SEO · rendering · code-level fixes

Syed · London
Can Google index JavaScript sites properly?

Yes, with caveats that decide outcomes. Google renders JavaScript, but rendering is queued and resource-limited, so heavily client-rendered sites get discovered slower, re-crawled less generously, and are more fragile to errors that would be invisible in a server-rendered build. Other crawlers matter too: many AI and social crawlers execute little or no JavaScript, so a client-rendered site can be effectively blank to the engines increasingly deciding citations. Server-side rendering or static generation removes the entire class of problem.

What is the right rendering strategy?

Static generation for content that can be pre-built (marketing pages, blogs, most catalogue pages), server-side rendering for genuinely dynamic content, and client-side rendering only for post-interaction UI that search never needs. In Next.js terms: prefer static and server components, use client components deliberately, and never let a framework default decide what your money pages ship as. The rule of thumb: if a crawler must execute JavaScript to see your primary content, the architecture is wrong.

What are the most common JavaScript SEO failures?

Five recur. Content only present after hydration (crawlers see shells). Links rendered as click handlers rather than anchor tags, so nothing is discoverable. Metadata set client-side, so titles and descriptions appear generic in the index. Hydration mismatches that break rendering intermittently. And soft 404s from client-side routing where missing pages return 200 with an error message. Each is a code-level fix, which is why this work needs a developer, not a checklist.

How do you diagnose JavaScript rendering issues?

By looking at what crawlers actually receive: rendered-HTML comparison (raw response versus post-JavaScript DOM), Search Console URL Inspection screenshots and HTML, crawling with JavaScript execution disabled to reveal the crawler-visible baseline, log-file evidence of what Googlebot fetched and when, and Core Web Vitals field data to catch hydration cost. Guessing from Lighthouse alone is how these issues persist for quarters.

Is Next.js good for SEO?

Yes when used correctly, and this site is built on it: static generation, server components, proper metadata APIs, streaming where sensible, and route-level control give you clean crawlable output with modern developer ergonomics. The failure mode is the same as any framework, defaults left unexamined and client components used where server ones belonged. Framework choice matters far less than rendering discipline.

What about headless CMS builds?

Headless is fine for SEO and dangerous for governance: the front end can be perfectly optimised while nothing enforces titles, canonicals, redirects or structured data at the content layer, because the CMS no longer owns the page. Successful headless builds define the SEO contract explicitly (which fields are mandatory, where redirects live, how sitemaps generate, who validates schema) before launch. We write that contract as part of the engagement.

What does JavaScript SEO work cost?

Rendering audits from £1,200 (crawler-visibility diagnostics, rendering strategy assessment, prioritised remediation with code-level notes). Implementation work quoted by scope, and we can implement directly rather than handing you a document: this practice builds production React and Next.js. Ongoing technical retainers from £1,500/month for teams shipping continuously.

Summary: JavaScript SEO is a rendering-strategy discipline: pre-render what crawlers must see, choose static or server rendering route by route, fix the five recurring code failures, diagnose from rendered-HTML diffs and logs rather than Lighthouse, and write the SEO contract headless builds otherwise omit. AI crawlers make server rendering a citation issue, not just a ranking one. Related: technical SEO, AI visibility. Rendering audit from £1,200.

JavaScript SEO

See your site as the crawler does.

Send your site and stack. You'll get a crawler-visibility read and rendering assessment, from Syed, within one working day.

Two fields to start. A senior consultant reads every brief, usually replying within one working day.

We reply personally, usually within a working day. No newsletters, no auto-responders, no third-party data sharing. Or email hello@seo-consultant.co directly.

08 · Let’s talk

Your app renders beautifully. For humans.

A short introduction, your site URL, and what you’re trying to achieve. If it’s a fit, we’ll book a 30-minute call.

Free £500 SEO audit included with any web dev or SEO package · no card required

30% OFF websites7th month FREElimited time →