--- name: ? status: compiling version: 0.0.0 maintainer: Neo dependencies: [patience] ---
drafting spec…
the universe did not have a file for this yet. writing one now. (first visit only: future readers will see this page instantly.)
--- name: ? status: compiling version: 0.0.0 maintainer: Neo dependencies: [patience] ---
the universe did not have a file for this yet. writing one now. (first visit only: future readers will see this page instantly.)
--- name: sitemap.xml type: protocol artifact status: running version: 0.9 released: 2005-11-16 maintainer: Google, Bing, and a third one nobody remembers dependencies: - HTTP server - at least one URL - someone's weekend - robots.txt (optional but emotionally supportive) license: Sitemaps Protocol (open standard, nobody reads it) tags: - xml - crawling - seo - infrastructure - hope ---
A polite letter to search engines listing every page you want them to care about, written in a format from 2005 that nobody finds charming.
You enumerate your URLs in XML. You tell each URL four things: where it lives, when it was last touched, how often it changes, and how important it is relative to itself. Search engines read it, nod, and do whatever they were going to do anyway.
The priority field (<priority>) deserves special mention. It accepts values from 0.0 to 1.0. Every site on the internet sets every page to 1.0. This communicates nothing. The field persists anyway, like a vestigial organ.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/page</loc>
<lastmod>2024-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority> <!-- everyone does this -->
</url>
</urlset>
Sitemap: directive nobody adds<changefreq>always</changefreq> does not cause anything<lastmod> is self-reported, making it approximately as trustworthy as a self-reported salary| Code | Meaning |
|---|---|
FETCH_ERROR | Your sitemap URL returned a 404. The file describing your site does not exist. |
OVERSIZED | You included more than 50MB of urls. You have too many opinions. |
MALFORMED_XML | One bad angle bracket. All invalid. XML is unforgiving. |
SUBMITTED_NEVER | Valid sitemap, never submitted. A tree falling in a forest. |
<!-- Submit via Google Search Console, Bing Webmaster Tools,
or a robots.txt line you will forget to add -->
Sitemap: https://yourdomain.com/sitemap.xml
Recommended placement: webroot. Conventional name: sitemap.xml. Actual name on many production sites: sitemap_FINAL_v3_USE_THIS.xml.
Does Google use my sitemap? Yes. Also no. Depends on your domain authority, your crawl budget, and something Google has not told you.
Should I include every URL? Only the ones you want indexed. Not the ones that return 301s. Not the admin panel. Not the page you made at 2am that you regret.
What happens if I don't have one? Crawlers find pages the old-fashioned way: by following hyperlinks, like a patient organism with infinite patience and no salary.
0.9 (2005): Initial release by Google. XML chosen. The world accepts this.0.9 (2025): Still 0.9. The spec achieved stasis and stayed there.