squirrelscan
GitHub

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-exists reports info when no sitemap data is available. Message: Sitemap data not available.
  • sitemap-exists reports 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, with Not all candidate locations were reached as the value. A truncated walk that did find a sitemap reports the pass below instead.
  • sitemap-exists reports 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)), with refused as the value. A refusal says nothing about whether a sitemap exists.
  • sitemap-exists is 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-exists fails when discovery finished and found nothing. Message: No XML sitemap found, with Checked common locations and robots.txt as 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-exists passes when sitemaps were found. Message: 2 sitemap(s) found, listing each with its URL count.
  • sitemap-in-robots runs only when robots.txt exists. It passes when a Sitemap line was one of the discovery sources, and otherwise reports info with Sitemap not referenced in robots.txt.
  • sitemap-urls reports 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 IDcrawl/sitemap-exists
CategoryCrawlability
ScopeSite-wide
Severityerror
Weight10/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.

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.

Type to search…

↑↓ navigate↵ openesc close