source/skills/sitemap/SKILL.md
Audit an existing sitemap.xml / robots.txt or generate new ones following sitemaps.org protocol and Google Search Central guidance, with a growth-first default that allows every crawler including AI search and AI training bots. Use this skill whenever the user asks to "build a sitemap", "generate sitemap.xml", "audit the sitemap", "refresh sitemap", "write robots.txt", "check robots", "allow AI crawlers", "block AI crawlers", "fix crawl budget", "submit to Google", or any other discovery / indexing configuration task. Output is a valid sitemap.xml (or sitemap index) and/or robots.txt, plus a written audit when auditing.
npx skillsauth add zhizdev/overgrow sitemapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill is the deterministic pipeline for producing and auditing sitemap.xml, sitemap indexes, and robots.txt. It is tuned for growth — by default it invites every compliant crawler, including AI search and AI training bots, unless the user explicitly opts out per user-agent.
Read knowledge/sitemap.md from the plugin root before doing anything. That file is the canonical, rule-by-rule pipeline this skill implements. Follow it exactly. This SKILL.md is the entry-point summary; knowledge/sitemap.md is the source of truth.
Also consult knowledge/geo.md sections on technical SEO and indexability for AI visibility considerations that affect sitemap/robots decisions.
Parse $ARGUMENTS:
audit (or no args, existing sitemap present) → run the audit flow.build (or no args, no sitemap present) → run the generation flow.https://example.com → use as the canonical origin.If mode is ambiguous, {{ask_instruction}}
.overgrow/inventory.md for the authoritative page list. If missing, run init first.public/sitemap.xml, static/sitemap.xml, sitemap.xml.ts, Next.js app/sitemap.ts, framework-generated routes. If none found, switch to build mode.robots.txt: public/robots.txt, static/robots.txt, app/robots.ts, or config-driven.knowledge/sitemap.md. Report findings:
<loc>, bad encoding, over 50k URLs in one file, over 50MB uncompressed).lastmod hygiene (missing, future-dated, identical across all entries)..overgrow/sitemap-audit.md with severity (critical / high / medium / low) and specific fixes..overgrow/inventory.md for the list of indexable pages. Exclude utility and anything the user flags.knowledge/sitemap.md § "Inputs to collect"). If any input is missing, ask once in a single message.sitemap.xml following the rules in knowledge/sitemap.md. For > 50k URLs, emit a sitemap index plus shard files.robots.txt. Default posture: open (allow all user-agents, disallow explicit exclusion paths, reference the sitemap). Only switch to restricted or closed when the user says so — typically for staging, internal, or compliance-locked sites.public/, static/, framework-specific path). Do not overwrite existing files without asking; produce .next/.proposed variants if there's an existing file.Unless the user says otherwise, robots.txt explicitly allows:
GPTBot (OpenAI)ChatGPT-UserOAI-SearchBotClaudeBot / anthropic-ai / Claude-WebPerplexityBotGoogle-ExtendedApplebot-ExtendedBingbot (always)CCBot (Common Crawl)Explicit allow lines beat silence — spell them out so the posture is auditable. If the user wants to restrict one or more, ask for the list and write Disallow: / blocks per user-agent.
knowledge/sitemap.md for encoding, escaping, lastmod formatting, and sharding rules. Do not improvise.hreflang beyond noting issues in the audit — i18n link generation lives in a dedicated sitemap that this skill will build if the inventory declares locales.tools
Pull the open Bonemeal action queue (landing pages and blog posts the user has not built yet) via the bonemeal MCP server, let the user pick which ones to build, dispatch each to the spawn-pages or spawn-blogs skill with the action's brief, and mark each completed in Bonemeal once the file is written. Use this whenever the user says "grow", "/grow", "build my Bonemeal queue", "what's in my Bonemeal queue", "build the suggested pages", or wants to act on Bonemeal's content suggestions. Stop and ask the user before marking actions complete the first time, then remember their preference.
development
Given the product offering and existing page inventory, create new core landing and resource pages (homepage refresh, features, solutions, pricing, comparison, resource hubs, about) that capture core product intent using the query-fanout pattern. Use this skill whenever the user asks to "spawn pages", "generate landing pages", "create marketing pages", "build a pricing page", "add a solutions page", "build out the site", "fill in missing pages", or wants new top-level marketing/product pages. Output is one new page per route in the project's native file format (component or markdown), matching the existing page style and framework idiom.
development
Examine every existing page on the site, build a semantic map across pillars, and add missing internal links so the site becomes a semantic graph anchored on clear topical pillars. Use this skill whenever the user asks to "add internal links", "build internal linking", "build a semantic graph", "link related pages", "strengthen topical authority", "fix orphan pages", "add pillar linking", or wants hub-and-spoke linking between pillars, hubs, and supporting content. Output is an edit list (proposed link insertions) plus optionally direct edits to page source files.
development
Given the product and the existing page inventory, identify missing blog topics and generate new blog posts that capture search/AI intent using the query-fanout pattern. Use this skill whenever the user asks to "spawn blogs", "generate blog posts", "expand the blog", "build out a content cluster", "write blog ideas", "cover more search intents", "query fanout for blogs", or wants new long-form content that supports existing pillars. Output is one new post per topic in the project's existing post format (markdown, MDX, component, or CMS migration note), with frontmatter shape mirrored from an existing post.