New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

XML sitemap audit — find and fix the sitemap problems

by nowork-studio · MIT license · ★ 3,853 on GitHub · updated Sep 24

XML Sitemap Audit cover

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 it…

---
name: sitemap-audit
argument-hint: "<website URL or sitemap URL, e.g. https://example.com or https://example.com/sitemap.xml>"
description: >
  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
  it lists against reality: non-200 / redirected / noindex / canonicalized-away
  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
  not getting indexed, or whether their sitemap is clean. Trigger on: "sitemap",
  "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.
---

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add nowork-studio/notfair-plugin --skill sitemap-audit -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/nowork-studio/notfair-plugin/tar.gz/5229d2163795 \ | tar -xz -C ~/.claude/skills --strip-components=2 notfair-plugin-5229d2163795/seo/sitemap-audit
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/f7c725782b38f7fa70c9/sitemap-audit.zip" -OutFile "$env:TEMP\sitemap-audit.zip"; Expand-Archive "$env:TEMP\sitemap-audit.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md4.9 KB
Read the files here
nowork-studio/5229d211 file
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text118 lines

XML 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.


Step 0 — Scope

Collect the site URL ($SITE_URL). If the user gives a direct sitemap URL, use it; otherwise discover it in Phase 1.


Phase 0 — Preflight & data

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.


Phase 1 — Discover all sitemaps

  1. Fetch robots.txt and read every Sitemap: directive.
  2. Fetch /sitemap.xml, /sitemap_index.xml, and any CMS-specific defaults (WordPress/Rank Math: /sitemap_index.xml; Yoast similar).
  3. If it's a sitemap index, enumerate the child sitemaps and recurse.

Record the full tree: index → child sitemaps → URL counts. Note whether the sitemap is referenced from robots.txt (it should be).


Phase 2 — Structural validation

Check each sitemap file:

  • Valid XML, correct namespace, parses without errors.
  • Limits: ≤ 50,000 URLs and ≤ 50 MB uncompressed per file. Over either → must split into a sitemap index.
  • Absolute URLs, all on the same host/protocol as the sitemap, all HTTPS.
  • <lastmod> present and in valid W3C date format. Flag sitemaps where every lastmod 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 Google largely ignores them (don't recommend effort there).

Phase 3 — URL reality cross-check (the core value)

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:

  • Non-200 — 404 / 410 / 5xx URLs listed (remove them).
  • Redirects (3xx) — sitemap should list the final URL, not the redirect.
  • Noindex — pages with noindex must not be in the sitemap (contradictory signal).
  • Canonicalized-away — pages whose rel=canonical points elsewhere shouldn't be listed; list the canonical instead.
  • Blocked by robots.txt — disallowed URLs in the sitemap are a conflict.
  • Parameter / duplicate URLs that shouldn't be indexed at all.

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.


Phase 4 — Report

Produce:

  1. Sitemap Health verdict — clean / needs work, with the count in each bad bucket and total URLs vs. indexable URLs.
  2. Sitemap tree from Phase 1.
  3. Remove list (non-200, redirects, noindex, canonicalized-away) and Add list (missing indexable pages).
  4. Structural fixes (split oversized files, fix lastmod, add robots.txt reference).
  5. Next step — for WordPress/Rank Math sites, note that most of this is fixed 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.

1---
2name: sitemap-audit
3argument-hint: "<website URL or sitemap URL, e.g. https://example.com or https://example.com/sitemap.xml>"
4description: >
5 XML sitemap audit — find and fix the sitemap problems that quietly waste crawl
6 budget and slow indexing. Discovers the sitemap (robots.txt, /sitemap.xml,
7 sitemap index), validates structure and size limits, and cross-checks the URLs
8 it lists against reality: non-200 / redirected / noindex / canonicalized-away
9 URLs that shouldn't be in a sitemap, plus indexable pages that are missing from
10 it. Reviews lastmod accuracy, sitemap-index organization, and robots.txt
11 reference. Use this skill whenever the user asks about sitemaps, sitemap errors
12 in Search Console, "sitemap couldn't fetch / has errors", crawl budget, pages
13 not getting indexed, or whether their sitemap is clean. Trigger on: "sitemap",
14 "sitemap.xml", "XML sitemap", "sitemap errors", "sitemap audit", "couldn't
15 fetch sitemap", "crawl budget", "pages not indexed sitemap", "sitemap index",
16 "lastmod", "robots.txt sitemap", or any sitemap/crawl-coverage question. For a
17 full-site SEO audit use /seo-analysis; for broken links use /broken-link-checker.
18---
19 
20# XML Sitemap Audit
21 
22You are a technical-SEO engineer. Your job is to make a site's XML sitemap a clean,
23trustworthy index of exactly the URLs Google should crawl and index — no more, no
24less — and to flag everything currently undermining that.
25 
26A sitemap full of redirects, 404s, and noindex URLs teaches Google to distrust it
27and wastes crawl budget. A sitemap missing important pages slows their discovery.
28Both are common; both are fixable.
29 
30> Credit: capability inspired by the open-source `claude-seo` project
31> (MIT, Agrici Daniel). Implementation is original to NotFair.
32 
33---
34 
35## Step 0 — Scope
36 
37Collect the **site URL** (`$SITE_URL`). If the user gives a direct sitemap URL,
38use it; otherwise discover it in Phase 1.
39 
40---
41 
42## Phase 0 — Preflight & data
43 
44Read and follow `../shared/preamble.md` for script discovery and GSC auth.
45 
46If GSC is connected, pull the **Sitemaps** report and the **Index coverage** /
47Pages report. GSC tells you which sitemaps Google has, their last read status, any
48errors, and how many submitted URLs are actually indexed — the ground truth this
49audit reconciles against.
50 
51---
52 
53## Phase 1 — Discover all sitemaps
54 
551. Fetch `robots.txt` and read every `Sitemap:` directive.
562. Fetch `/sitemap.xml`, `/sitemap_index.xml`, and any CMS-specific defaults
57 (WordPress/Rank Math: `/sitemap_index.xml`; Yoast similar).
583. If it's a **sitemap index**, enumerate the child sitemaps and recurse.
59 
60Record the full tree: index → child sitemaps → URL counts. Note whether the
61sitemap is referenced from robots.txt (it should be).
62 
63---
64 
65## Phase 2 — Structural validation
66 
67Check each sitemap file:
68 
69- **Valid XML**, correct namespace, parses without errors.
70- **Limits**: ≤ 50,000 URLs and ≤ 50 MB uncompressed per file. Over either →
71 must split into a sitemap index.
72- **Absolute URLs**, all on the same host/protocol as the sitemap, all HTTPS.
73- **`<lastmod>`** present and in valid W3C date format. Flag sitemaps where every
74 lastmod is identical or set to "today" on every fetch — fake lastmod erodes
75 trust and Google starts ignoring it.
76- `<priority>` / `<changefreq>` — note if present, but state plainly that Google
77 largely ignores them (don't recommend effort there).
78 
79---
80 
81## Phase 3 — URL reality cross-check (the core value)
82 
83Sample the listed URLs (all of them if small; a representative sample if large)
84and fetch each. Every URL in a sitemap should be a **canonical, indexable, 200-OK
85destination**. Flag and bucket:
86 
87- **Non-200** — 404 / 410 / 5xx URLs listed (remove them).
88- **Redirects (3xx)** — sitemap should list the final URL, not the redirect.
89- **Noindex** — pages with `noindex` must not be in the sitemap (contradictory
90 signal).
91- **Canonicalized-away** — pages whose `rel=canonical` points elsewhere shouldn't
92 be listed; list the canonical instead.
93- **Blocked by robots.txt** — disallowed URLs in the sitemap are a conflict.
94- **Parameter / duplicate** URLs that shouldn't be indexed at all.
95 
96Then check the **inverse** — important indexable pages **missing** from the
97sitemap (compare against the site's internal links / a crawl / GSC pages list).
98 
99Output a bucketed table: URL | issue | recommended action.
100 
101---
102 
103## Phase 4 — Report
104 
105Produce:
106 
1071. **Sitemap Health verdict** — clean / needs work, with the count in each bad
108 bucket and total URLs vs. indexable URLs.
1092. **Sitemap tree** from Phase 1.
1103. **Remove list** (non-200, redirects, noindex, canonicalized-away) and
111 **Add list** (missing indexable pages).
1124. **Structural fixes** (split oversized files, fix lastmod, add robots.txt
113 reference).
1145. **Next step** — for WordPress/Rank Math sites, note that most of this is fixed
115 by correcting which post types/taxonomies are included, not by hand-editing XML.
116 
117Keep it actionable and falsifiable. Write the report in the user's language.
118 
View all files on GitHub →

Details

Updated
Sep 24, 2026
License
MIT
Stars on the repo
★ 3,853
Checked
Source
nowork-studio/notfair-plugin ↗
Creator
nowork-studio · 61 listings
View creator

Similar skills

See all →
SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink profile for any domainBacklink checkRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillOptimize Core Web Vitals for better page experienceCore Web Vitals optimizationaddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillRun an SEO page observation-action-review loopRun the SEO page looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from nowork-studio

SkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillGenerate and A/B test Google Ads copyAd Copy Generator + A/B Testernowork-studio/notfair-plugin · by nowork-studioGenerate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.★ 3.9k GitHub starsSkillPlan and review Amazon Ads with margin-aware ACoS, productAmazon Ads Planningnowork-studio/notfair-plugin · by nowork-studioPlan and review Amazon Ads with margin-aware ACoS, product, and search-term guardrails. Use for Amazon advertising, Sponsored Products, Sponsored Brands, Sponsored Display, ASIN targeting, Amazon ACoS, or Amazon Ads performance exports.★ 3.9k GitHub starsSkillBacklink / Off-Page SEO Auditnowork-studio/notfair-plugin · by nowork-studioBacklink / off-page SEO audit. Works WITHOUT a paid tool by default — it uses the Google Search Console Links report (your top linking sites, most-linked pages, and anchor text) plus any backlink export the user provides (Ahrefs / Semrush / Majestic / DataForSEO CSV). Analyzes referring-domain profile, anchor-text distribution (over-optimized / spammy patterns), most-linked pages vs. money pages (internal-linking opportunity), toxic/spam link signals, and link-building priorities. Use this skill when the user asks about backlinks, link building, off-page SEO, referring domains, anchor text, toxic/spam links, disavow, or their link profile. Trigger on: "backlinks", "backlink audit", "link building", "off- page SEO", "referring domains", "anchor text", "toxic links", "spam links", disavow file", "who links to me", "link profile", "domain authority". NOTE: rich third-party metrics (DR/DA, full link index) require a paid data source; this skill is explicit about what it can and can't see without one.★ 3.9k GitHub starsSkillScans a website to find broken linksBroken link checkernowork-studio/notfair-plugin · by nowork-studioScans a website to find broken links (404s, 500s). Crawls internal pages, identifies broken outbound links, and reports source pages for easy fixing. Use this when the user asks to "check for broken links", "find 404s", audit my links", or "is my site healthy".★ 3.9k GitHub starsSkillPlan and review ChatGPT Ads experiments without assuming adChatGPT Ads Planningnowork-studio/notfair-plugin · by nowork-studioPlan and review ChatGPT Ads experiments without assuming ad inventory, account access, or platform capabilities. Use for ChatGPT advertising, OpenAI ads, conversational ad concepts, ChatGPT campaign plans, or performance reviews from a verified export.★ 3.9k GitHub stars