NEXT.JS SEO AUDIT · APP ROUTER · METADATA · AI VISIBILITY

Free Next.js SEO Audit

Next.js makes many SEO tasks straightforward — but generateMetadata gaps, dynamic routes falling back to SSR, and missing priority on the LCP image are pervasive issues that a generic audit won't detect. DeepSEOAnalysis audits Next.js sites with framework-specific context.

Audit my Next.js site →How we score

WHAT WE CHECK

6 Next.js-specific SEO checks

Beyond the 80+ general checks, the engine applies Next.js App Router-aware analysis when it detects a Next.js site.

📝

generateMetadata coverage

Next.js App Router uses `generateMetadata` (or a static `metadata` export) to set title, description, and canonical for each route. Pages that fall through to the root layout's default metadata without their own override produce duplicate or generic titles and descriptions across the site. The audit checks every crawled page for unique, non-duplicate title tags and present meta descriptions — and flags pages that appear to be using the layout default.

⚙️

Static vs. server-rendered routes

Dynamic routes (`[slug]`, `[id]`) that export `generateStaticParams` are statically generated at build time — fast, CDN-cacheable, and crawlable immediately. Dynamic routes without `generateStaticParams` fall back to SSR (or throw at build time in `output: 'export'` mode). The audit identifies which of your key content pages are server-rendered on every request vs. statically generated, and flags SSR routes where static generation would improve both crawlability and performance.

🖼️

next/image and LCP

Next.js's `<Image>` component automatically generates width, height, srcset, and WebP variants — but requires the `priority` prop on the LCP image to preload it. Without `priority`, the LCP image is lazy-loaded (the default), which adds 200–800ms to LCP. The audit identifies the LCP element on each page, checks whether it is a `next/image` component or a raw `<img>`, and flags LCP images missing the `priority` prop.

🔤

next/font vs. render-blocking fonts

Next.js's `next/font` self-hosts fonts and injects the optimal `font-display` strategy — eliminating render-blocking Google Fonts `<link>` requests. Sites that import fonts via a `<link rel="stylesheet" href="fonts.googleapis.com/...">` in the layout incur a render-blocking network request that delays LCP and FCP. The audit checks whether fonts are loaded via `next/font` or via external stylesheet links.

🗺️

sitemap.ts and robots.ts coverage

Next.js App Router supports `app/sitemap.ts` (auto-generates sitemap XML) and `app/robots.ts` (auto-generates robots.txt). Sites still using static `public/sitemap.xml` or `public/robots.txt` files miss the ability to dynamically include all generated routes. The audit checks: whether the sitemap includes all crawled pages, whether any key pages are absent, and whether robots.txt correctly allows AI crawlers (GPTBot, ClaudeBot, PerplexityBot).

🧠

AI visibility for Next.js apps

Next.js makes several AI visibility tasks straightforward: `llms.txt` can be served as a static file from `/public/`, `FAQPage` JSON-LD via a Server Component, and `opengraph-image.tsx` co-located with each route for rich link previews. The audit checks all five AI visibility signals and shows exactly which Next.js patterns to use for each — including the `app/opengraph-image.tsx` pattern and the `FaqSchema` component approach.

HOW IT WORKS

Audit your Next.js site in 60 seconds

  1. Enter your deployed Next.js URL. Works with Vercel, Netlify, Cloudflare Pages, self-hosted — anywhere the app is publicly accessible. No source code access needed.
  2. We crawl and analyse. The engine crawls up to 50 pages (free) or 1,000 pages (paid), checks metadata coverage across all routes, validates all JSON-LD, measures CrUX Core Web Vitals, and evaluates all five AI visibility signals.
  3. You get a prioritised report. Framework-specific issues first — missing metadata, SSR routes that should be static, LCP image misconfiguration — then general SEO, each with a specific Next.js fix.

FAQ

Questions about the Next.js SEO audit

Does DeepSEOAnalysis detect Next.js-specific SEO issues?

Yes. The engine detects Next.js signals — App Router metadata exports, next/image output, next/font configuration, and static generation patterns — and surfaces framework-specific guidance alongside the 80+ general checks.

Does Next.js App Router handle SEO automatically?

Next.js App Router makes many things easier — `generateMetadata`, co-located `opengraph-image.tsx`, `robots.ts`, `sitemap.ts` — but gaps are common: pages missing `generateMetadata`, dynamic routes without `generateStaticParams` falling back to SSR when they should be static, and `next/image` used incorrectly (wrong `priority` prop on the LCP image). The audit finds these gaps across all crawled pages.

How does the audit handle dynamic Next.js routes?

The engine crawls the deployed site the same way Googlebot does — it follows links and checks what HTML is returned at each URL. It does not require access to your Next.js source code or build output. If a dynamic route returns full HTML in the initial response, it passes crawlability checks. If it requires client-side JavaScript to render content, it flags the gap.

Is the Next.js SEO audit free?

Yes. The full audit is free with no signup and no email gate. Paid plans add saved history, scheduled monitoring, larger crawls (up to 1,000 pages), and agency workflows.