# sitemap.xml valid and current

> sitemap.xml valid and current: The primary URL discovery source for agent crawlers. The fix: publish a sitemap with lastmod.

- Source: /checks/sitemap-xml
- Site: AgenticWebScore
- Language: English

---
The primary URL discovery source for agent crawlers.

| Property | Value |
| --- | --- |
| Check id | `sitemap-xml` |
| Dimension | Discoverability (20%) |
| Tier | Essential — pool 80 pts |
| Weight inside tier | 2 |
| Impact | High |
| Maturity | Adopted — A ratified standard with real deployment. |
| Conditional | No |
| Publishing skill | `sitemap` |
| Standards | — |

## What is measured

The scanner fetches https://<domain>/sitemap.xml ($sitemap in the probe map) and parses it as XML. Pass = a urlset (or a sitemapindex) whose entries carry absolute loc URLs and a lastmod timestamp. Partial = valid XML with loc entries but no lastmod anywhere, or a sitemapindex that only points at child sitemaps. Fail = 404, an HTML page returned with a 200 by a catch-all route, or XML that does not parse.

## Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

```bash
DOMAIN=example.com
curl -sS "https://$DOMAIN/sitemap.xml" | grep -E '<loc>|<lastmod>' | head -20
```

## The fix

This is the artifact to ship. It is the complete change, not a description of one.

```xml
<?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-10-08</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/docs/quickstart</loc>
    <lastmod>2026-10-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://example.com/pricing</loc>
    <lastmod>2026-09-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>
```

> lastmod must be a real modification date in W3C datetime form and must actually change when the page changes, otherwise the whole file reads as stale.

## Related checks

| Check | Tier | Impact | Same skill |
| --- | --- | --- | --- |
| `reachable` — Homepage open to agent access | Essential | Critical | — |
| `robots-txt` — robots.txt with agent directives | Essential | High | — |
| `llms-txt` — /llms.txt published and well-structured | Essential | Critical | — |
| `link-headers` — Discovery via Link response headers | Emerging | Medium | — |
| `dns-aid` — DNS-AID discovery record | Emerging | Medium | — |
| `canonical` — Canonical and hreflang discipline | Recommended | Medium | — |
| `llms-full` — /llms-full.txt expanded context | Recommended | Low | — |
| `agents-md` — AGENTS.md with the required sections | Recommended | High | — |
