agentleFS
sitetillersitetiller/ai-visibility-skills/skills/sitemaps/SKILL.md

sitemaps

Skill0 starsChanged 2 days agoMITView on GitHub

Create, validate and submit XML sitemaps correctly: 50,000 URL and 50 MB limits, sitemap index files, accurate lastmod, absolute URLs on the same host, the robots.txt Sitemap line, and submission in Google Search Console and Bing Webmaster Tools. Use when the user asks 'make a sitemap', 'is my sitemap valid', 'submit sitemap to Google/Bing', 'sitemap has errors', 'Couldn't fetch', 'what should go in sitemap.xml', 'lastmod', or 'sitemap index'. Uses the sitetiller sitemap command on the live sitemap.

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read issues[] and sample[].

    line 26
  2. Distinctive:

    Not in robots.txt: add the line below.

    line 30
  3. Distinctive:

    Do not use the old ping URL.

    line 41
  4. Distinctive:

    If lastmod is wrong on many URLs, Google says it will stop trusting it.

    line 61
  5. Distinctive:

    No platform-specific claims are made here: they were not verified against each platform's own documentation.

    line 87
  6. Distinctive:

    Do not tell the user a sitemap improves rankings.

    line 96
  7. Very specific:

    Do not recommend priority or changefreq.

    line 97
  8. Distinctive:

    Do not recommend fake or "always today" lastmod values.

    line 98
  9. Distinctive:

    Do not list URLs that are blocked by robots.txt, noindexed, redirected or erroring.

    line 99

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Sitemaps

Goal: a sitemap that lists the URLs the user wants indexed, passes the protocol limits, is discoverable, and is submitted where it counts. A sitemap helps search engines discover URLs. Google says it is a hint and does not guarantee crawling or indexing, so never promise indexing from it.

Inputs

  • The domain, and how the sitemap is produced (CMS plugin, framework, script, hand-written).
  • A list of the URLs that should be indexable (or a way to get them from the CMS).

Do they need one?

Google's overview: a site of about 500 pages or fewer that is well linked internally might not need one; large sites, new sites with few external links, and sites with lots of video, image or news content might. Submitting one is cheap, so recommend it, but do not call a missing one the cause of a ranking problem on a small, well-linked site.

Steps

  1. Check what exists:
    npx sitetiller sitemap example.com --sample 20 --json
    Fields: found, sitemapUrl, kind (urlset or index), urlCount, inRobots, robotsSitemaps, lastmod (count of <lastmod> tags), children[] (url, status, urls), issues[], sample[] (url, status, noindex, redirectedTo). The tool reads up to 10 child sitemaps of an index and checks an evenly spread sample of listed URLs. Raise --sample for more, and mind the site's load (the tool waits between requests).
  2. Read issues[] and sample[]. Fix in this order:
    • Listed URLs that answer 404, 5xx or redirect: remove them or list the final URL.
    • Listed URLs with noindex: true: remove them (a sitemap says "index this"; noindex says the opposite).
    • Other-host or http:// URLs on an https site: use the exact canonical, fully qualified URL.
    • Not in robots.txt: add the line below.
    • No <lastmod>: add accurate values or leave them out; see rules.
  3. Build or repair the file using the rules below. For hand-made or script-made files, use the template.
  4. Publish at the site root and add to robots.txt:
    Sitemap: https://example.com/sitemap.xml
    The line may appear anywhere in robots.txt and you can list several. It must be a full URL.
  5. Submit:
    • Google: Search Console, Sitemaps report, "Add a new sitemap". Needs owner permission on the property; without it, rely on the robots.txt line. Before submitting, confirm Googlebot can fetch the file (live URL inspection, page fetch successful). Statuses: Success, Has errors (parsed URLs are still queued), Couldn't fetch. "Discovered pages" counts parsed URLs; it does not mean indexed.
    • Bing: Bing Webmaster Tools, Sitemaps, submit the URL; or rely on the robots.txt line. Bing says that once referenced either way it fetches the sitemap right away and rechecks at least daily.
    • Do not use the old ping URL. Google ended it: ping requests return 404 and do nothing.
    • For individual changed URLs on Bing, use IndexNow (indexing skill).
  6. Re-run step 1 after publishing and again after the next crawl. In Search Console, open the sitemap's detail page for errors.

Rules (protocol and Google)

RuleValueSource
Max URLs per sitemap50,000sitemaps.org, Google
Max size50 MB (52,428,800 bytes) uncompressedsitemaps.org, Google
Index fileup to 50,000 sitemaps, same size capsitemaps.org, Search Console help
EncodingUTF-8, entity-escaped (& as &amp;)sitemaps.org
URLsfully qualified and absolute, same protocol and host as the sitemapGoogle, sitemaps.org
Scopea sitemap affects only URLs at or below its own directory, unless submitted through Search ConsoleGoogle
lastmodW3C Datetime, real last significant change (main content, structured data, links), never the generation timeGoogle, sitemaps.org, Bing
priority, changefreqignored by Google and by BingGoogle, Bing
Formats Google acceptsXML, RSS/mRSS/Atom, text (one URL per line)Google
Which URLsthe ones you want shown in search; Google generally shows canonical URLsGoogle

Bing asks for ISO 8601 lastmod including date and time. The sitemap protocol accepts the date-only form. Use a full timestamp if you want both to have the precise signal.

If lastmod is wrong on many URLs, Google says it will stop trusting it. Better to omit it than to stamp every URL with the build time.

Template

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/guide/</loc>
    <lastmod>2026-10-14T09:30:00+00:00</lastmod>
  </url>
</urlset>

Index file:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap><loc>https://example.com/sitemap-pages.xml</loc></sitemap>
  <sitemap><loc>https://example.com/sitemap-blog.xml</loc></sitemap>
</sitemapindex>

Split by section (pages, blog, products). It makes the Search Console report readable: errors point at one section.

Several hosts or domains

A sitemap may only list URLs on its own protocol and host. To submit URLs for another host from a sitemap hosted elsewhere, the sitemaps.org protocol says to prove ownership with a Sitemap: line in the other host's robots.txt.

Platforms

No platform-specific claims are made here: they were not verified against each platform's own documentation. Tell the user to check their CMS or framework docs for where the generated sitemap lives, then run step 1 on the live URL, which shows what is really served.

Output to the user

  1. Verdict: found or not, size and kind, number of URLs, how many sampled URLs are clean.
  2. Problems from issues[] and sample[], each with the fix.
  3. The exact robots.txt line and where to submit in Google and Bing.
  4. What to expect: Google calls the sitemap a hint; check Search Console's Page indexing report for what was actually indexed.

Guardrails

  • Do not tell the user a sitemap improves rankings. Say it helps discovery.
  • Do not recommend priority or changefreq.
  • Do not recommend fake or "always today" lastmod values.
  • Do not list URLs that are blocked by robots.txt, noindexed, redirected or erroring.
  • Deleting a sitemap from the Search Console report does not stop Google using it; to stop crawling use robots.txt, remove the file or pages, or noindex.
  • The Search Console API submits sitemaps only with the write scope; this repo's read-only setup does not use it, so submission is a manual UI step.

References

  • examples/sitemap.json: real output of this skill's command on sitetiller.com (2026-11-13), see examples/README.md.
  • references/sources.md: Google, Bing and sitemaps.org documentation, checked 2026-11-12.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.