Troubleshooting guide · search-console · Published 2026-08-16 · 4 min read
Sitemap error debugging
Debug Search Console sitemap errors: common error causes, how to verify Google read your sitemap, and fixes for count and fetch problems.
- ·The reported states
- ·The common causes
- ·Verify the fix
What "success" looks like for a sitemap
The Search Console Sitemaps report shows each file you submitted and a status: Success, Has errors, or Couldn't fetch. A submitted sitemap needs three things to be healthy: the file returns HTTP 200 (not 302/404), the XML parses, and the URLs inside resolve. Google does not guarantee every listed URL gets indexed; a sitemap is a discovery hint, not an indexing promise, as the sitemap guide explains.
The reported error states, decoded
| What Google shows | What it usually means |
|---|---|
| "Couldn't fetch" | Google could not download the sitemap: 404, timeout, robots.txt block, auth wall, or SSL failure |
| "Successful" but "Found fewer URLs" | The sitemap parsed but the count dropped; a generator bug or a page vanished |
| "Sitemap contains errors" | XML validation failed (duplicate <url>, invalid date, wrong namespace) |
| "Unknown error" | Interim state that usually clears; Google retries for a few days |
| URL errors inside a sitemap | The listed URL 404s or redirects; the sitemap itself is fine |
The distinction between "sitemap itself broken" and "URLs listed are broken" is the first diagnosis, because the fixes differ entirely.
The common causes and fixes
- A 404 on the sitemap path. The submitted URL is
/sitemap.xmland the file moved (the blog/business split moved it to/sitemap-index.xmlor a robots-relative path). Fix: submit the real path, or add a redirect. Check the redirect map patterns for a moved sitemap. - robots.txt blocking it. If
Disallow: /sitemap.xmlor a blanketDisallow: /sitemapappears, Google cannot fetch it. The robots.txt guide has the exact syntax that allows the sitemap entry. <loc>URLs that don't resolve. Rerun the URL inspection on each listed URL. Very common with trailing-slash//index.htmldivergence after a migration; see the migration checklist and the canonical edge cases for the redirect requirement.- Malformed XML. A missing
</urlset>, an unescaped&, an illegal&in a URL, a date not in W3C format. Validate with a local parse before resubmission (the sitemap structure article includes the grammar). - The sitemap index pointing at sitemaps that themselves error. An index file (a sitemap of sitemaps) links child sitemaps; if one child fails, the parent shows an error for that child. Check each child individually.
- Speed/latency. A sitemap served slowly, or a huge sitemap on an under-provisioned origin, can time out the frequent fetch. Resubmit after the static CDN and web perf audit fixes.
Verify the sitemap is actually read
After any fix, verify with the same tools the checker uses:
curl -I https://example.com/sitemap.xml
Expect 200 and Content-Type: application/xml (or text/xml). Then check whether Google fetched it: the Sitemaps report's "Submitted" and "Discovered" counts, and the URL Inspection > Test live URL for one item the sitemap lists. A utility fetch that returns 200 but the report still "Couldn't fetch" for a week usually means the network is blocked at the CDN or a WAF rule is behaving for the crawler; the Cloudflare firewall block article covers that half.
When the sitemap is not the problem
The most common false flag: the sitemap is healthy but the indexing report shows pages "Not indexed". That is an indexing problem, not a sitemap problem, and belongs to the indexing analysis workflow plus the Pages report. Similarly, a Search Console "sitemap says success" with a low indexing rate means the URLs are duplicates or the crawl pipeline is blocked, not a sitemap fetch error.
Prevention
Keep the sitemap generated by the build, keep a single canonically-located URL for it, and set up a weekly crawl (or the crawl stats check) that flags "sitemap 200 but one child 404" before the Search Console report does. The sitemap is a three-part contract (path, file, listed URLs); every migration step verifies all three, which is exactly the host migration checklist discipline.