Skip to content

Technical SEO for Next.js

Crawlability, canonicals, hreflang and structured data built into the render path — generated from one source of truth instead of maintained by hand.

Technical SEO in a Next.js application is not a plugin. It is a property of how the application renders, and it fails in ways that are invisible from the browser: a canonical tag that points at the wrong locale, an hreflang cluster that advertises translations that do not exist, a sitemap generated from a different list of routes than the router actually serves.

What we audit

  • Crawl and render. What the crawler receives in the initial HTML versus what appears after hydration, and which of your content only exists in the second one.
  • Canonicalisation. Trailing slashes, query parameter handling, pagination, and whether every route agrees with itself about its own address.
  • International routing. The full hreflang cluster, including x-default, validated against the translations that actually exist rather than the ones that were planned.
  • Structured data. A connected @graph with stable @id references, not four disconnected blobs that each re-declare the organisation.
  • Sitemaps and robots. Generated from the same route source the application renders from, so the two cannot drift.

How we fix it

By making it impossible to get wrong. Canonicals, alternates and structured data get generated from a single typed helper that every route must call. A page cannot ship without a canonical, because the metadata function will not compile without one.

This site is built that way, and the implementation is public — the buildMetadata helper and the JSON-LD graph in this repository are the same pattern we deploy for clients.

The measurable outcome

Correct indexation of the routes you want indexed, and nothing else. Rich results where the schema supports them. An hreflang cluster that Search Console validates without warnings. These are not growth hacks; they are the floor a content strategy stands on.

Frequently asked questions

Is this content marketing?
No. This is the engineering half of SEO — what the crawler receives, how routes resolve, whether your canonicals agree with your sitemap, whether your structured data validates. We work alongside your content team, not instead of it.
Our pages render client-side. Is that a problem?
Usually yes, though rarely fatally. Google renders JavaScript, but on a delay and with a budget, and other crawlers are far less capable. Moving critical content and metadata into the server render is typically the highest-leverage change available.
Do you handle multilingual sites?
Yes, and it is where most Next.js implementations break. Partial translations pointed at by hreflang, x-default omitted, canonical URLs disagreeing with the locale prefix — we fix the generation rather than the symptoms.