Skip to content
unalisi.dev

The Next.js SEO Checklist: Metadata, Sitemaps, Schema and Speed

A practical checklist for shipping SEO-ready Next.js App Router sites — metadata, canonical and hreflang, sitemaps, structured data, Core Web Vitals and edge deployment.

Computer Engineer · Web Developer
· 2 min read

Next.js gives you excellent SEO building blocks out of the box, but they only work if you wire them up deliberately. This is the checklist I follow when shipping production sites with the App Router — including this one.

1. Use the Metadata API everywhere

Every route should export metadata or generateMetadata. Define a title template once in the root layout and give each page a unique title and description.

export const metadata = {
  title: { default: "Jane Doe — Web Developer", template: "%s | Jane Doe" },
  description: "SEO-ready websites built with Next.js.",
  metadataBase: new URL("https://example.com"),
};

Setting metadataBase lets you use relative URLs for canonical and Open Graph images.

2. Canonical URLs and hreflang

Duplicate URLs split ranking signals. Set alternates.canonical on every page. For multilingual sites, add alternates.languages so each locale points to the others — and include an x-default.

alternates: {
  canonical: "/en/blog/my-post",
  languages: { tr: "/tr/blog/yazim", en: "/en/blog/my-post", "x-default": "/tr/blog/yazim" },
}

3. A dynamic sitemap and robots.txt

Use app/sitemap.ts and app/robots.ts. When content lives in a database, generate the sitemap from it so new posts appear automatically, with accurate lastModified dates.

4. Structured data (JSON-LD)

Add JSON-LD with a <script type="application/ld+json"> tag inside your page component:

  • Person or Organization on the home page
  • WebSite for the site entity
  • BlogPosting for articles (headline, dates, author, image)
  • BreadcrumbList for nested pages

Validate with Google's Rich Results Test.

5. Render content on the server

Server Components send real HTML on the first response, which crawlers can read immediately. Keep client components for interactivity only — this also reduces JavaScript and helps INP.

6. Open Graph and social previews

Provide openGraph and twitter metadata with a 1200×630 image. Articles should use type: "article" with publishedTime and modifiedTime.

7. Core Web Vitals

  • Use next/font to self-host fonts and avoid layout shift.
  • Give every image explicit dimensions; prioritize the LCP image.
  • Avoid heavy third-party scripts or load them with next/script and a lazy strategy.
  • Aim for LCP ≤ 2.5 s, INP ≤ 200 ms and CLS ≤ 0.1 at the 75th percentile.

8. Clean, stable URLs

Keep slugs short and lowercase. When you restructure, add permanent (301/308) redirects from old URLs — never let years of accumulated links fall into 404s.

9. Deploy close to your users

Edge platforms such as Cloudflare Workers serve pages from data centers near each visitor, which noticeably reduces server response time worldwide.

10. Measure

Verify the site in Google Search Console, submit the sitemap and watch the Page Indexing and Core Web Vitals reports after every major release.

Wrapping up

SEO in Next.js is less about tricks and more about consistent fundamentals: unique metadata, clean URLs, server-rendered content, structured data and speed. If you'd like help auditing or building an SEO-ready Next.js site, get in touch.

  • #Next.js
  • #SEO
  • #App Router
  • #Structured Data

Need help with your project?

Let's map out a plan for your website's design, speed or SEO.

Get a quote

Related posts