Live · status OK
Back to blog
SEO & AEO13 min

Technical SEO for a static Next.js site: complete 2026 checklist

TL;DR

A Next.js static export site reaches 100/100 SEO score by checking 8 points: metadataBase, generateMetadata per page, sitemap.ts + robots.ts, multi-language hreflang, unified @graph JSON-LD, BreadcrumbList, FAQPage/HowTo schemas, and llms.txt for LLMs.

Julien Daniel
ByJulien Daniel
Founder & CTO, OptionWeb
Share
Google Search Console dashboard with performance curves

Next.js App Router makes technical SEO radically simpler than in 2020. With native Metadata API, sitemap.ts and robots.ts, no more plugins or hacks needed. But reaching 100/100 on Lighthouse SEO still requires knowing the 8 points below. Checklist we apply at OptionWeb on all our projects.

1. Next.js Metadata API

The foundation. Since Next.js 13, the native Metadata API covers 100% of on-page SEO needs. Two objects: metadata (static) and generateMetadata (dynamic).

app/layout.tsxtsx
export const metadata: Metadata = {
  metadataBase: new URL('https://optionweb.dev'),
  applicationName: 'OptionWeb',
  generator: 'Next.js',
  referrer: 'origin-when-cross-origin',
};

2. Native sitemap.ts and robots.ts

No more next-sitemap plugin. Next.js App Router exposes a special route to emit a dynamic sitemap.

app/sitemap.tsts
export const dynamic = 'force-static';
export const revalidate = false;

export default function sitemap(): MetadataRoute.Sitemap {
  return SUPPORTED_LANGS.map(lang => ({
    url: `https://optionweb.dev/${lang}`,
    lastModified: new Date(),
    changeFrequency: 'weekly',
    priority: 1.0,
  }));
}

3. Multi-language hreflang

For a multilingual site, hreflang is critical. Each URL must list all its language versions AND vice versa (reciprocal clusters). Without this, Google ignores hreflang.

Verify with the Hreflang Tags Testing Tool (Merkle) that each URL points to all its variants and each variant points back.

4. Unified @graph JSON-LD

The modern approach: a single <script type="application/ld+json"> containing a @graph that gathers Organization, LocalBusiness, WebSite, WebPage, Person, Article, linked via @id. Easier to maintain than ten separate scripts.

sameAs is critical: it links your entity to Google's Knowledge Graph. Include at minimum Wikidata (create a Q-entity), LinkedIn, Crunchbase, and official social networks.

Emit BreadcrumbList on every content page. Improves SERP (visible breadcrumbs) and LLM extraction context.

6. FAQPage and HowTo for AEO

Google reduced rich display of these schemas in 2023, but LLMs consume them massively to generate responses. Keep implementing — it's capital for AEO/GEO.

Strict rule: Q&A must be visible on screen. Otherwise possible manual penalty. For HowTo, structure each step with name, text, optionally image.

7. Speakable for voice search

Schema in beta at Google but used by Siri (since iOS 18.2 integrated with ChatGPT) and Alexa. Marks site zones that voice assistants should pronounce in priority.

Add HTML data-speakable="true" attribute on TL;DR summaries, first sentences of sections, key answers.

8. llms.txt for LLMs

Emerging standard (Jeremy Howard, September 2024) adopted by Anthropic, Mintlify, Stripe, Cloudflare, Vercel. A Markdown file at public/ root that summarizes the site for LLMs.

Also create llms-full.txt with extended content for LLMs that can't crawl.

How to verify the result

  • Lighthouse SEO scoretarget 100/100 via Chrome DevTools or PageSpeed Insights.
  • Google Rich Results Testvalidates all schemas. URL: search.google.com/test/rich-results.
  • Schema.org Validatorfull JSON-LD validation with warning detection.
  • Hreflang Tags Testing Tool (Merkle)verifies multi-language cluster reciprocity.
  • Google Search Console'Coverage' for indexation, 'Rich Results' for detected schemas, 'Core Web Vitals' for CrUX metrics.
  • Bing Webmaster Toolsnot to be neglected, it's the retrieval source for ChatGPT Search via OAI-SearchBot.
Tags#seo#nextjs#json-ld#schema#aeo