DocsDiscoverabilityXML sitemap
XML sitemap
The URL inventory agents and crawlers use for discovery.
Why an agent cares
It is the one place a site states which URLs it wants found, so a broken or out-of-scope sitemap quietly costs coverage. Discovered from robots.txt Sitemap: directives, then followed through index files.
Adoption
Web baseline. Standard equipment on the web. Its absence is the exception rather than its presence.
Direction of travel: ► flat, as at .
The sitemaps.org protocol, universally consumed by crawlers since 2006.
What we check
| Check | Severity | Raises | On whose authority |
|---|---|---|---|
| Sitemap Empty Document | high | conformance, usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Required by Sitemaps XML protocol. Bad: the sitemap the site declares is served with no content in it, so it enumerates nothing an agent or crawler could follow. Distinct from malformed XML, which means a document that is there and won't parse: this one has no document at all, and the repair is different. Fix: publish the URLs at that address, or remove the Sitemap: line in robots.txt that promises them. | |||
| Sitemap Missing Namespace | high | conformance, usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Required by Sitemaps XML protocol. Bad: the <urlset>/<sitemapindex> does not declare the required sitemaps.org 0.9 namespace, so strict parsers do not recognise the file as a sitemap and reject the whole thing. It covers both faults: a root with no xmlns at all, and one declaring a near-miss such as the https:// spelling of the sitemaps.org URL, which is the common case and a one-character fix. Fix: declare xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" on the root element, with http and not https. | |||
| Sitemap Malformed XML | high | conformance, usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Required by Sitemaps XML protocol. Bad: a sitemap will not parse, so crawlers get nothing from it: either its XML isn't well-formed, or it's a .gz that doesn't decompress. A document that is simply not a sitemap is Sitemap Wrong Document Type instead, not this. Fix: repair the file (unclosed tags, unescaped & characters, or re-generate the gzip) and re-validate it. Sitemap Findings names the offending URL. | |||
| Sitemap Wrong Document Type | high | usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Related guidance in Sitemaps XML protocol. Bad: a URL declared as a sitemap (a robots.txt Sitemap: line, or a <loc> in a sitemap index) serves something that is not a sitemap in any permitted format, so an agent following the declaration gets no URLs. The file itself is often fine: a site pointing Sitemap: at its llms.txt has a valid llms.txt and an invalid declaration. Fix: point the declaration at a real sitemap, or remove it. Sitemap Findings names the URL. | |||
| Sitemap Relative Locs | medium | conformance, usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Required by Sitemaps XML protocol. Bad: <loc> entries contain relative URLs, which the sitemaps.org protocol forbids, so crawlers drop those entries. Fix: make every <loc> a full absolute URL including scheme and host. | |||
| Sitemap Lists Another Host | medium | conformance, usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Required by Sitemaps XML protocol. Bad: the sitemap lists URLs on a host it does not speak for, so crawlers drop those entries and the pages go undiscovered. Fix: serve a sitemap from that host, or have that host's robots.txt declare this one (cross-submission), e.g. Sitemap: https://shop.example.com/sitemap.xml. | |||
| Sitemap Too Large | medium | conformance, usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Required by Sitemaps XML protocol. Bad: a single sitemap exceeds the protocol cap of 50,000 URLs / 50 MB, past which crawlers truncate or reject it. Fix: split it into multiple sitemaps referenced by a <sitemapindex>. | |||
| Sitemap Lists Above Its Directory | low | conformance, usability | specification: Sitemaps XML protocol |
Supporting documents: Sitemaps XML protocol Required by Sitemaps XML protocol. Bad: the sitemap sits in a subdirectory but lists URLs above it, which the protocol scopes out (/catalog/sitemap.xml may not list /images/page). A sitemap only speaks for URLs beneath it, so those entries are ignored unless the file was submitted in Search Console. Fix: move the sitemap to the site root, or move the URLs under its directory. | |||
| Sitemap Partially Assessed | coverage note | nothing | our own coverage |
Examples
Both run through the same checks as a live scan: the first passes, the second is flagged.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-01-01</lastmod>
</url>
<url>
<loc>https://example.com/about</loc>
</url>
<url>
<loc>https://example.com/products</loc>
</url>
</urlset><?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<loc>/</loc>
</url>
<url>
<loc>/about</loc>
</url>
</urlset>Specifications
| Document | Revision | Kind |
|---|---|---|
| Sitemaps XML protocol | Version 0.9 | specification |
Last re-read against the published documents: .