No XML sitemap found: where squirrel looks and what to add
Without a sitemap, discovery depends entirely on internal links. squirrel checks the common locations and robots.txt, and counts the URLs it found.
What an XML sitemap is
An XML sitemap is a file listing the URLs on a site that you want search engines to know about, each in a <loc> element with optional <lastmod>. It supplements link discovery rather than replacing it: a URL in a sitemap is a suggestion to crawl, not an instruction to index.
It matters most where link discovery is weak. New sites with few inbound links, large archives where old pages are many clicks deep, and sections reachable only through search or filters all benefit. A single sitemap file holds at most 50,000 URLs and 50 MB uncompressed; beyond that you use a sitemap index that points at several files.
What squirrel checks
The rule is site-wide and reads what sitemap discovery found. It emits up to three checks:
sitemap-existsreports info when no sitemap data is available. Message:Sitemap data not available.sitemap-existsreports info when discovery was truncated before every candidate location was tried and found nothing at all, so nothing was established. Message:Sitemap discovery did not complete, so no sitemap check was made, withNot all candidate locations were reachedas the value. A truncated walk that did find a sitemap reports the pass below instead.sitemap-existsreports info when the site refused the sitemap requests (a 401, 403 or 429, or a bot challenge) and no sitemap was found. Message:XML sitemap not checked: the site refused the request (HTTP 403 (Cloudflare)), withrefusedas the value. A refusal says nothing about whether a sitemap exists.sitemap-existsis skipped when the crawl fetched no page and a root request was refused or failed, because a site that never answered cannot be judged on its root files. A crawl that fetched no page for another reason (a start URL excluded by config or robots.txt, or a page limit of 0) still reports a missing sitemap.sitemap-existsfails when discovery finished and found nothing. Message:No XML sitemap found, withChecked common locations and robots.txtas the value. Severity error, weight 10, the highest in the Crawlability category. A common location that neither robots.txt nor a sitemap index names, and that answers with an HTML page or with a body that is not XML, does not count as a sitemap, so a server that answers every path with a page still gets this finding.sitemap-existspasses when sitemaps were found. Message:2 sitemap(s) found, listing each with its URL count.sitemap-in-robotsruns only when robots.txt exists. It passes when aSitemapline was one of the discovery sources, and otherwise reports info withSitemap not referenced in robots.txt.sitemap-urlsreports info with the total. Message:Sitemap contains 412 URL(s).
How to fix it
Sitemap: https://example.com/sitemap.xml
Generate the sitemap from the same source of truth your routes come from, serve it at a stable URL, and add the Sitemap line to robots.txt so discovery does not depend on guessing filenames.
List only canonical, indexable URLs that return 200. A sitemap full of redirects and noindexed pages is worse than a smaller accurate one.
| Rule ID | crawl/sitemap-exists |
| Category | Crawlability |
| Scope | Site-wide |
| Severity | error |
| Weight | 10/10 |
Enable / disable
Disable this rule
[rules]
disable = ["crawl/sitemap-exists"]Disable all Crawlability rules
[rules]
disable = ["crawl/*"]Enable only this rule
[rules]
enable = ["crawl/sitemap-exists"]enable replaces the default ["*"], so this is the only rule selected. Leave disable out: a rule that matches any disable pattern is skipped even when enable names it. Only an enabled setting under a rule’s own [rule_options] table overrides both lists.
Related rules
- crawl/sitemap-valid: whether the sitemap that exists parses and respects the protocol limits.
- crawl/sitemap-coverage: indexable pages the sitemap leaves out.
- crawl/sitemap-4xx: sitemap URLs that no longer resolve.
- crawl/robots-txt: the file that should carry the
Sitemapline.
Crawlability findings ship in every audit next to the SEO, performance and agent experience rules. See The Screaming Frog alternative for agents for how an agent works through a report.
References
Check your site
Run squirrel audit https://example.com and open the Crawlability section of the report. Each discovered sitemap is listed with its URL count. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.