Skill

Fix Next.js SEO indexing and crawl budget issues

Skill for fixing Next.js SEO indexing: Search Console coverage states, canonicals, noindex, sitemaps, static rendering and redirects.

Works with nextjsgoogle search console

91
Spark score
out of 100
Updated 17 days ago
Source checked Oct 22, 2026
Version 19.13.0

Add to Favorites

Why it matters

Diagnose and resolve Google Search Console coverage problems in Next.js applications by auditing canonicals, noindex tags, sitemaps, redirects, static rendering, and internal linking to ensure important pages are crawlable and indexable.

Outcomes

What it gets done

01

Audit canonical URLs and fix relative paths, missing trailing slashes, or subdomain inconsistencies in Next.js metadata

02

Detect accidental noindex tags in layouts or pages that prevent Google from indexing important content

03

Verify sitemap routes return valid XML and generate static or dynamic sitemaps using Next.js App Router patterns

04

Check static rendering output, add generateStaticParams for dynamic routes, and eliminate redirect chains

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-nextjs-seo-indexing | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

A seven-step audit skill for Next.js indexing problems, with a coverage-state table, App Router code patterns and a final indexing checklist. Use for coverage errors or pre-release SEO audits. It cannot guarantee indexing, and URL or canonical changes need review.

What it does

Next.js SEO Indexing & Crawl Budget Skill helps fix Google Search Console coverage issues, canonical problems, sitemap errors and crawl budget waste in Next.js apps. It covers canonical tags, noindex audits, sitemap health, static rendering and internal linking, with framework-specific examples for the App Router such as the metadata export, generateMetadata, a robots route and sitemap routes.

It opens with a table that translates Search Console coverage states into fixes:

  • Crawled but not indexed: Google chose not to index it, so improve content quality, the canonical and internal links.
  • Duplicate without canonical: add an explicit canonical to the preferred URL.
  • Excluded by noindex: remove the tag if the page should be indexed.
  • Duplicate where Google chose a different canonical: align your canonical with the URL Google naturally picks.
  • Alternative page with proper canonical: expected behavior and not a problem.
  • Not found (404): add a redirect or restore the page.
  • Discovered but not indexed: improve internal linking and crawl budget.
  • Page with redirect: shorten the chain and verify the destination.

When to use - and when NOT to

Use it when a Next.js site shows duplicate canonicals, accidental noindex, crawl waste or discovered-but-not-indexed URLs, when you audit sitemap, robots.txt, redirect, internal-linking or static-rendering problems before an SEO release, or when you need Next.js App Router examples.

Its Limitations section is clear: it does not guarantee Google will index a page, because indexing decisions remain with the search engine. It needs access to the codebase and deployed URLs, and ideally Search Console data, for a confident diagnosis. Recommendations that change URL structure, redirects or canonical policy are production-impacting and should be reviewed before deployment.

Inputs and outputs

The skill walks through seven audits.

Step 1, canonicals. Set them through the metadata export or generateMetadata using absolute URLs with a consistent scheme and subdomain. Relative canonicals are wrong, and trailing-slash style should be picked once and used sitewide.

Step 2, noindex. Search the source for noindex and check the root layout, because a robots setting there applies to every page. Set it only if you want the entire site affected.

Step 3, sitemap health. Verify the sitemap returns 200 with valid XML, and use an App Router sitemap function that returns static entries plus dynamic entries from your data source, each with a last modified date, change frequency and priority. Multiple sitemaps can be split by section.

Step 4, static rendering. Pages must be statically generated, or server-rendered with metadata in the HTML, for Google to see the tags. Check the build output for static and SSG markers versus dynamic ones, and add generateStaticParams for dynamic routes with known slugs.

Step 5, internal linking. Pages with zero internal links are rarely indexed, so every important page should be reachable from the homepage or navigation, a sitemap and at least one other content page. Find orphans by searching for the slug across files.

Step 6, redirects. Find redirects in the config, test suspected chains, and keep them flat so A goes to C directly rather than through B. Use permanent redirects, which return 308.

Step 7, robots.txt. Fetch it and confirm it allows important content and lists the sitemap. A robots route can generate it.

curl -s https://www.yourdomain.com/robots.txt

The final indexing checklist restates the goals: absolute canonicals on important pages, no accidental noindex, valid sitemap submitted to Search Console, static generation, no redirect chains, a permissive robots.txt, at least one inbound internal link per important page, and generateStaticParams for known dynamic routes.

Integrations

It works with Next.js App Router, Google Search Console, and command-line tools such as ripgrep, grep, curl and npm for audits. The metadata lists compatibility with Claude, Cursor, Gemini and Claude Code.

Who it's for

Next.js developers, technical SEO specialists and site owners troubleshooting indexing problems or preparing an SEO release.

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.