Check line

Fix “Sitemap could not be read” and “Couldn’t fetch”

Enter the sitemap URL from Search Console. We check what a crawler gets back (robots.txt, redirects, status, content type and the XML itself), then explain the likely cause in plain English.

Single fetch, same host, robots.txt respected.

Just submitted? “Couldn’t fetch” on a fresh submission is often only a pending status. Give it 24–48 hours before changing anything.

The checklist fills in here. If something fails, ask the Sitemap doctor to explain it.

Cause by cause

SymptomLikely causeFix
Couldn't fetch, new sitemapNot fetched yetWait 1–2 days, then resubmit
Couldn't fetch, persistsFirewall / bot protection blocks GooglebotAllow verified Googlebot in the CDN/WAF rules
Couldn't fetch404 / 403 / 5xx on the URLCorrect the path; check that the sitemap is generated in production
Couldn't fetchDisallowed in robots.txtRemove the Disallow rule for the sitemap path
Could not be readHTML served (login, 404 template, home page)Serve the real file; exclude it from redirects and caching rules
Could not be readUnescaped & or bad charactersEntity-escape; regenerate with a proper XML writer
Could not be readWhitespace/BOM before <?xmlRemove stray output (often a PHP file with a trailing newline)
Has errorsRelative URLs, bad dates, wrong namespaceRun the validator and fix per line

Questions people ask

What does “Sitemap could not be read” mean?
Google fetched the file but could not parse it as a sitemap. The usual causes are malformed XML (often an unescaped &), an HTML page served in place of XML, whitespace before the XML declaration, a wrong namespace, or an unsupported format.
What does “Couldn’t fetch” mean?
Google did not get the file. For a brand-new submission this often shows while the fetch is still pending, so wait a day or two. If it persists: the URL returns a non-200 status, redirects, is blocked by robots.txt, or a firewall/CDN bot protection is blocking Googlebot.
My sitemap opens fine in my browser. Why can’t Google fetch it?
Your browser has cookies, a real user agent and passes bot checks. Googlebot may be challenged by Cloudflare or a WAF, geo-blocked, or served a different response by a caching plugin. Check server and CDN logs for Googlebot requests to the sitemap URL, and use URL Inspection → Test live URL on the sitemap URL.
Does this tool see what Googlebot sees?
Not exactly. It fetches from our server with its own user agent, so a firewall may treat it differently from Googlebot. If it works here but Search Console still fails, suspect bot protection or rules keyed on the user agent.
I fixed it. How do I make Google retry?
Open Search Console → Sitemaps, click the sitemap and resubmit it (or remove and re-add it). Status can take hours to days to update.