Skip to content
Technical SEO 4 min read

A technical SEO checklist for JavaScript-heavy sites

A JavaScript SEO checklist for React, Vue, Svelte and Next.js sites: rendering, indexing, Core Web Vitals, internal links and AI crawler access, with fixes.

A

AI SEO Growth Agency

Published

JavaScript code on a developer screen during a technical SEO review

Key takeaways

  • Ship primary content, titles and meta tags in the initial HTML, not after hydration.
  • Client-side routers must return real 404s and self-referencing canonicals.
  • Measure Core Web Vitals on mobile with field data, and fix LCP and INP first.
  • Allow AI crawlers and publish llms.txt; they read HTML, not your JavaScript bundle.

JavaScript frameworks are excellent for product teams and frequently hostile to crawlers. The good news is that most SEO problems on React, Vue, Svelte and Next.js sites fall into a short list of checks: rendering, indexing, performance, links and crawler access. Work through the list below in order; each item includes the symptom, the check and the fix.

Rendering

Primary content is in the initial HTML

Check: view the raw page source, not the inspector. Titles, meta descriptions, headings and body copy should be present. Fix: enable server-side rendering or static prerendering. SvelteKit, Next.js, Nuxt and Astro all support it; the site you are reading is fully prerendered.

Google's rendered view matches the user's

Check: Search Console's URL Inspection tool, "View crawled page". Fix: remove content that depends on user interaction, scroll or client-side fetches that run after load.

No content behind hydration errors

Check: browser console on production for hydration warnings. Fix: make server and client output identical; mismatches can wipe rendered content.

Indexing

Correct status codes

Check: a missing route should return 404, not a 200 with a "not found" component. Fix: configure the framework to return real status codes; in SvelteKit use the error helper, in Next.js the notFound function.

Self-referencing canonicals

Check: every indexable page carries a canonical tag pointing to its own clean URL with a consistent trailing-slash policy. Fix: generate canonicals from the route, not from the request URL, so parameters never leak in.

Parameters and facets are controlled

Check: crawl the site and count unique URLs versus intended pages. Fix: canonicalise or block filter and sort parameters; keep faceted URLs out of the sitemap.

The XML sitemap tells the truth

Check: it lists only indexable 200 pages and lastmod reflects real changes. Fix: generate it at build time from your content source, never from a build timestamp.

Performance

Core Web Vitals on mobile

Check: field data in Search Console and PageSpeed Insights. Targets: LCP under 2.5 seconds, INP under 200 milliseconds, CLS under 0.1. Fix: preload the hero image and set explicit dimensions, self-host fonts with a fallback stack, defer third-party scripts, and split bundles so the first route ships only what it needs.

Hydration cost

Check: total JavaScript on the landing page. Fix: reduce client components, lazy-load below-the-fold interactivity, and prefer islands or partial hydration where the framework supports it.

Real anchor elements

Check: navigation and pagination use anchor tags with href attributes. Fix: replace click-handler navigation with links; crawlers do not click buttons.

Reachable within three clicks

Check: crawl depth report. Fix: add hub pages, footer links and related-content modules for important pages that sit too deep.

Consistent internal URLs

Check: internal links never point at redirecting or non-canonical variants. Fix: centralise URL generation in one helper.

Structured data

Emit JSON-LD in the server-rendered HTML for Organization, BreadcrumbList and the page type (Article, Service, FAQPage). Validate with the Rich Results Test. Our schema generator produces the blocks.

AI crawlers

Allow the crawlers you want

Check: robots.txt for GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Google-Extended. Fix: allow them explicitly unless there is a business reason not to; they read HTML only, which is another argument for server rendering.

Publish llms.txt

A plain-text file at the root summarising your key pages and what they are about helps assistants understand the site quickly.

Framework notes

Next.js

Use the App Router with server components for content pages, generateMetadata for titles and canonicals, and the notFound helper for missing routes. Avoid fetching primary content in useEffect.

SvelteKit

Set prerender to true for marketing pages, use the error helper for 404s, and keep trailingSlash consistent across the site so canonicals and sitemap entries match.

Nuxt and Vue

Prefer server-side rendering or Nuxt's static generation. Watch for content that only renders after onMounted.

Single-page apps without a meta-framework

Add a prerendering step at build time, or a rendering service in front of the app. Confirm that every route, including deep links, returns full HTML.

Monitoring

Add an automated crawl to your deployment pipeline that fails on missing titles, canonical changes, new noindex tags or status code regressions. Most technical SEO damage on JavaScript sites happens silently during a release.

If any of this is unclear on your site, our technical SEO service starts with exactly these checks, and a free audit will flag the biggest issues within 48 hours.

Frequently asked questions

Can Google render JavaScript?

Yes, but rendering is queued and resource-limited, and other search engines and AI crawlers render far less. Server-side rendering or prerendering removes the dependency.

Do AI crawlers execute JavaScript?

Most do not. GPTBot, ClaudeBot and PerplexityBot read the HTML response. Content that only exists after client-side rendering is invisible to them.

Is a single-page application bad for SEO?

Not if it is server-rendered or prerendered, returns correct status codes and uses real links. The framework is not the problem; the rendering strategy is.

Filed under Technical SEO
A

Written by

AI SEO Growth Agency

Senior SEO and AI search strategists who run growth programmes for SaaS, ecommerce and professional services brands. We publish what we learn from client work every week.

About the team

Free AI SEO audit

See exactly where you are losing search and AI visibility.

In 48 hours you get a written audit of your technical health, content gaps, authority and how often AI engines cite you, with the three fixes that would move revenue fastest.

  • No cost, no obligation
  • Reviewed by a senior strategist, not a bot
  • Delivered as a shareable report

Prefer to talk? Call (877) 806-0303

We reply within two working days. No spam, ever. Or call (877) 806-0303.