Sanity
Technical SEO Checklist for Next.js Websites in 2026
Master technical SEO for Next.js in 2026. This actionable checklist covers Core Web Vitals, metadata, sitemaps, structured data, image optimization, and AI search—so your Next.js site ranks.

Next.js has become the go-to React framework for production web applications, but shipping a fast, well-structured app is only half the battle. In 2026, technical SEO for Next.js is more nuanced than ever — search engines now evaluate Core Web Vitals, AI-readable structured data, and internationalization signals alongside classic on-page factors. Whether you’re launching a new project or auditing an existing one, this comprehensive technical SEO checklist will help you cover every angle and keep your Next.js site competitive in organic search.
Core Web Vitals in Next.js
Core Web Vitals remain a confirmed Google ranking signal. Next.js ships with several built-in optimizations, but you still need to configure them correctly.
- Enable the App Router — The App Router (introduced in Next.js 13) enables React Server Components, reducing client-side JavaScript and improving LCP.
- Use
next/font— Load fonts vianext/fontto eliminate render-blocking font requests and prevent layout shift (CLS). - Minimize client components — Mark only interactive leaves as
'use client'. Keep data-fetching and layout components as server components. - Implement Streaming with Suspense — Wrap slow data-fetching components in
<Suspense>to stream HTML progressively and improve TTFB. - Audit with Lighthouse CI — Integrate Lighthouse CI into your pipeline to catch regressions before they reach production.
- Set
priorityon above-the-fold images — Add thepriorityprop to your hero<Image>component to trigger an early fetch and improve LCP. - Avoid large layout shifts — Reserve space for dynamic content (ads, embeds) with explicit
widthandheightor CSSaspect-ratio. - Monitor with
@vercel/speed-insights— Use real-user monitoring (RUM) to track field data, not just lab scores.
Metadata and Open Graph
Next.js 14+ provides a first-class Metadata API. Use it consistently across every route.
- Export a
metadataobject orgenerateMetadatafunction from everypage.tsx— never leave a page without a title and description. - Keep titles under 60 characters and descriptions between 120–160 characters for optimal SERP display.
- Use dynamic
generateMetadatafor blog posts, product pages, and any route with variable content. - Set
openGraph.typeappropriately (articlefor blog posts,websitefor landing pages). - Include
openGraph.imageswith explicitwidth,height, andalton every page. - Add
twitter:card(summary_large_image) andtwitter:siteto your base metadata. - Set a canonical URL via
alternates.canonicalin everymetadataexport to prevent duplicate-content issues. - Use
metadataBasein your root layout to ensure all relative URLs resolve correctly in Open Graph tags. - Avoid duplicate
<title>tags — confirm your custom_document.tsx(Pages Router) or root layout doesn’t inject a second title.
Sitemap and robots.txt
Search engines need a clear map of your site. Next.js makes both files easy to generate dynamically.
- Create
app/sitemap.ts— Export a default function returning aMetadataRoute.Sitemaparray. Next.js serves it at/sitemap.xmlautomatically. - Include
lastModified,changeFrequency, andpriorityfor every URL in your sitemap. - Generate dynamic sitemaps for large sites by fetching URLs from your CMS or database inside
sitemap.ts. - Split large sitemaps — If you have more than 50,000 URLs, use sitemap index files.
- Create
app/robots.ts— Export aMetadataRoute.Robotsobject to control crawl directives programmatically. - Disallow staging and internal routes (
/api/,/admin/,/_next/) inrobots.txt. - Submit your sitemap to Google Search Console and Bing Webmaster Tools after every major deployment.
- Verify sitemap URLs return 200 — Broken URLs in your sitemap waste crawl budget.
Structured Data Implementation
Structured data (JSON-LD) helps search engines understand your content and can unlock rich results.
- Inject JSON-LD via a
<script>tag in your layout or page component — useJSON.stringifywithtype="application/ld+json". - Use
Articleschema for blog posts, includingheadline,author,datePublished,dateModified, andimage. - Add
BreadcrumbListschema to all interior pages to improve sitelinks and navigation signals. - Implement
FAQPageschema on FAQ sections to target featured snippets. - Use
OrganizationandWebSiteschema in your root layout for brand entity signals. - Add
ProductandReviewschema on e-commerce pages to enable rich product results. - Validate all schemas with Google’s Rich Results Test and Schema.org validator before deploying.
- Keep JSON-LD in sync with visible content — mismatches can trigger manual actions.
Image Optimization with next/image
The next/image component is one of Next.js’s most powerful SEO tools — but only when used correctly.
- Always provide descriptive
alttext — never leavealt=""on content images; reserve empty alt only for decorative images. - Set explicit
widthandheighton every<Image>to prevent CLS. - Use
sizesprop to match your CSS breakpoints and avoid serving oversized images. - Prefer modern formats — Next.js serves WebP and AVIF automatically; ensure your
next.config.jsdoesn’t restrictformats. - Use
filllayout with a positioned parent for responsive hero images instead of fixed dimensions. - Configure
remotePatternsinnext.config.jsto allow external image domains (CDN, CMS). - Lazy-load below-the-fold images (the default) and only use
priorityfor LCP images. - Audit image file sizes — even with optimization, source images over 2 MB slow down the optimizer.
Canonical URLs
Duplicate content is one of the most common technical SEO issues in Next.js projects.
- Set
alternates.canonicalin everymetadataexport — including dynamically generated pages. - Redirect
www↔ non-wwwat the infrastructure level (Vercel, Nginx, CDN) and pick one canonical form. - Redirect trailing-slash variants — configure
trailingSlashinnext.config.jsand enforce it consistently. - Handle paginated routes — use
rel="next"/rel="prev"or self-referencing canonicals on paginated listing pages. - Avoid parameter pollution — use
rewritesor middleware to strip tracking parameters before they reach the page. - Check for accidental duplicates in Search Console’s Coverage report regularly.
Internationalization SEO
Next.js has built-in i18n routing. Configure it correctly to avoid hreflang errors.
- Define all locales in
next.config.jsunderi18n.localesand set adefaultLocale. - Add
hreflangtags viaalternates.languagesingenerateMetadatafor every localized page. - Include
x-defaultin your hreflang set to handle users whose language isn’t explicitly targeted. - Use locale-specific sitemaps — either separate sitemap files per locale or a single sitemap with
<xhtml:link>annotations. - Avoid auto-redirecting based on browser language without a user-visible toggle — Google may not be able to crawl all locale variants.
- Translate metadata — ensure
title,description, and Open Graph tags are localized, not just body content. - Use consistent URL structures — prefer subdirectories (
/fr/) over subdomains for most projects; they inherit domain authority.
AI Search Optimization
In 2026, AI-powered search (Google AI Overviews, Bing Copilot, Perplexity) is a significant traffic source. Optimize for it deliberately.
- Write clear, direct answers near the top of each section — AI engines extract concise answers for citations.
- Use structured headings that mirror natural-language questions (e.g., “How do I add structured data in Next.js?”).
- Implement
FAQPageandHowToJSON-LD — these schemas are heavily used by AI answer engines. - Ensure your content is crawlable — verify
robots.txtdoesn’t block GPTBot, ClaudeBot, or PerplexityBot if you want AI citation traffic. - Add an
llms.txtfile at your domain root — this emerging standard signals to LLMs how to represent your site. - Maintain E-E-A-T signals — author bios,
Personschema, and cited sources increase trustworthiness for AI ranking. - Monitor AI Overview appearances in Google Search Console’s new AI Overviews report.
Common Mistakes
Even experienced Next.js developers make these technical SEO errors:
- Forgetting
metadataBase— causes all Open Graph image URLs to be relative and unresolvable by social crawlers. - Over-using
'use client'— turns server-rendered pages into client-rendered SPAs, hurting initial HTML indexability. - Not handling 404s properly — missing
not-found.tsxmeans broken pages return 200 status codes. - Ignoring
generateStaticParams— dynamic routes that aren’t pre-rendered at build time may not be crawled efficiently. - Duplicate metadata across locales — copy-pasting metadata without translating it triggers duplicate-content penalties.
- Blocking
/_next/static/inrobots.txt— prevents Googlebot from loading JavaScript and CSS needed to render pages. - Missing
rel="canonical"on paginated pages — causes every page number to compete for the same keywords. - Using client-side redirects (
useRouter().push) for SEO-critical redirects instead of server-sideredirect()ornext.config.jsredirects.
Best Practices
Apply these principles across every Next.js project to build a strong technical SEO foundation:
- Adopt the App Router for all new projects — it enables RSC, streaming, and the Metadata API.
- Automate SEO audits — run Lighthouse CI, Screaming Frog, or Ahrefs Site Audit on every deployment.
- Keep a living
sitemap.tsthat reflects your actual content inventory in real time. - Co-locate structured data with the component it describes — don’t dump all JSON-LD in the root layout.
- Test with Google’s URL Inspection Tool after major structural changes to verify rendering.
- Monitor Core Web Vitals in Search Console weekly — field data lags by 28 days, so catch regressions early.
- Document your SEO architecture — canonical strategy, hreflang setup, and redirect rules should live in your project wiki.
- Treat SEO as a CI/CD concern — broken canonicals, missing metadata, and sitemap errors should fail your build pipeline.
FAQ
Does Next.js handle SEO automatically?
Next.js provides excellent SEO primitives — server-side rendering, the Metadata API, next/image, and next/font — but it doesn’t configure them for you. You still need to export metadata on every page, generate a sitemap, add structured data, and monitor Core Web Vitals.
Should I use the App Router or Pages Router for SEO?
For new projects, always use the App Router. It supports React Server Components (reducing JS bundle size), the first-class Metadata API, and streaming — all of which benefit SEO. The Pages Router is still supported but won’t receive new SEO-related features.
How do I add JSON-LD structured data in Next.js?
Inject a <script type="application/ld+json"> tag directly in your page or layout component using JSX. Pass your schema object through JSON.stringify. For dynamic pages, generate the schema inside generateMetadata or directly in the component using data fetched server-side.
Does client-side navigation hurt SEO in Next.js?
No — Next.js pre-renders pages on the server, so Googlebot sees full HTML on the initial request. Client-side navigation via <Link> is a progressive enhancement that doesn’t affect indexability. However, pages that are only rendered client-side (heavy 'use client' components with no server fallback) can be harder to index.
How often should I run a technical SEO audit on my Next.js site?
Run automated Lighthouse CI checks on every pull request, a full crawl audit monthly, and a manual review of Google Search Console weekly. After major Next.js version upgrades or architectural changes, run a full audit immediately to catch any regressions in rendering, metadata, or sitemap generation.
Conclusion
Technical SEO for Next.js in 2026 is a multi-layered discipline that spans rendering strategy, metadata management, structured data, image optimization, and emerging AI search signals. The good news: Next.js gives you world-class tools to address every item on this checklist. The key is to treat SEO as a first-class engineering concern — automate what you can, monitor continuously, and revisit your setup with every major framework upgrade. Start with the highest-impact items (Core Web Vitals, metadata, sitemap), then work through the rest systematically. Your rankings — and your users — will thank you.


