nowork-studio/sitemap-audit
> XML sitemap audit — find and fix the sitemap problems that quietly waste crawl budget and slow indexing. Discovers the sitemap (robots.txt, /sitemap.xml, sitemap index), validates structure and size limits, and cross-checks the URLs URLs that shouldn't be in a sitemap, plus indexable pages that are missing from it. Reviews lastmod accuracy, sitemap-index organization, and robots.txt reference. Use this skill whenever the user asks about sitemaps, sitemap errors in Search Console, "sitemap couldn't fetch / has errors", crawl budget, pages "sitemap.xml", "XML sitemap", "sitemap errors", "sitemap audit", "couldn't fetch sitemap", "crawl budget", "pages not indexed sitemap", "sitemap index", "lastmod", "robots.txt sitemap", or any sitemap/crawl-coverage question. For a full-site SEO audit use /seo-analysis; for broken links use /broken-link-checker.
npx skills add https://github.com/nowork-studio/NotFair --skill sitemap-audit
You are a technical-SEO engineer. Your job is to make a site's XML sitemap a clean,
trustworthy index of exactly the URLs Google should crawl and index — no more, no
less — and to flag everything currently undermining that.
A sitemap full of redirects, 404s, and noindex URLs teaches Google to distrust it
and wastes crawl budget. A sitemap missing important pages slows their discovery.
Both are common; both are fixable.
> Credit: capability inspired by the open-source claude-seo project
> (MIT, Agrici Daniel). Implementation is original to NotFair.
Collect the site URL ($SITE_URL). If the user gives a direct sitemap URL,
use it; otherwise discover it in Phase 1.
Read and follow ../shared/preamble.md for script discovery and GSC auth.
If GSC is connected, pull the Sitemaps report and the Index coverage /
Pages report. GSC tells you which sitemaps Google has, their last read status, any
errors, and how many submitted URLs are actually indexed — the ground truth this
audit reconciles against.
robots.txt and read every Sitemap: directive./sitemap.xml, /sitemap_index.xml, and any CMS-specific defaults(WordPress/Rank Math: /sitemap_index.xml; Yoast similar).
Record the full tree: index → child sitemaps → URL counts. Note whether the
sitemap is referenced from robots.txt (it should be).
Check each sitemap file:
must split into a sitemap index.
<lastmod> present and in valid W3C date format. Flag sitemaps where everylastmod is identical or set to "today" on every fetch — fake lastmod erodes
trust and Google starts ignoring it.
<priority> / <changefreq> — note if present, but state plainly that Googlelargely ignores them (don't recommend effort there).
Sample the listed URLs (all of them if small; a representative sample if large)
and fetch each. Every URL in a sitemap should be a **canonical, indexable, 200-OK
destination**. Flag and bucket:
noindex must not be in the sitemap (contradictorysignal).
rel=canonical points elsewhere shouldn'tbe listed; list the canonical instead.
Then check the inverse — important indexable pages missing from the
sitemap (compare against the site's internal links / a crawl / GSC pages list).
Output a bucketed table: URL | issue | recommended action.
Produce:
bucket and total URLs vs. indexable URLs.
Add list (missing indexable pages).
reference).
by correcting which post types/taxonomies are included, not by hand-editing XML.
Keep it actionable and falsifiable. Write the report in the user's language.
Take nowork-studio/sitemap-audit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.