Sitemap could not be read or couldn't fetch: the causes and fixes
Couldn't fetch can be transient, but a sitemap that stays unread is usually blocked, redirected, not XML or over 50,000 URLs. Check each cause with curl.
LLaunchScaler·Published ·8 min read
Sitemap could not be read, or Couldn't fetch in the Sitemaps report, means Google tried to download your sitemap file and failed. Sometimes that is transient and clears on a later attempt; when it persists, the cause is usually one of a short list: the file is blocked by robots.txt, returns an error or a redirect, sits behind a login or firewall challenge, is not valid XML, or breaks the sitemap limits.
Each cause has a one-line check. Run them in order before you touch the Resubmit button.
What does "Sitemap could not be read" mean?
It means the fetch failed, so Google read no URLs from the file. The Sitemaps report shows Couldn't fetch as the status on its main table, and the sitemap's details page says Sitemap could not be read, with the specific reason in a section you can expand. Google's help: "If the details page says Sitemap could not be read, then the fetch failed for one of these reasons."
That is different from "Sitemap can be read, but has errors," where Google fetched the file and hit problems parsing some entries. Google still uses the entries it could parse in that case, and says "issues affecting individual URLs within a sitemap won't prevent Google from continuing to read the sitemap."
Google lists these fetch failure reasons:
Reason in Google's help
What it means
Check
Blocked by robots.txt
"Google respects robots.txt when fetching sitemaps"
Look for a Disallow covering the sitemap path
Wrong URL (HTTP 404)
No sitemap at the submitted address
on the exact submitted URL
Questions, answered
What people ask about this
01
What does sitemap could not be read mean?
Google tried to fetch your sitemap and failed, so it could not process the file. The details page in the Sitemaps report names the reason, such as an HTTP error, a robots.txt block or a general HTTP error.
02
Why does Search Console say couldn't fetch for my sitemap?
The server failed the request; "some of these errors can be transient"
Retry the fetch; check server logs
Manual action
"Sitemaps are not read when a site has an unresolved manual action"
Open the Manual actions report
Low crawl demand
Google has not prioritised fetching the file
Nothing technical to fix; see below
Is "Couldn't fetch" sometimes harmless?
It can be, which is why testing comes before resubmitting. Google names "low crawl demand for the sitemap" as a cause and says some fetch errors "can be transient: wait a bit and see if Google continues to encounter this error in later crawl attempts." A status on a newly submitted sitemap is not proof the file is broken.
So test the file the way Google fetches it:
Copy the sitemap URL from the report's details page.
Paste it into the URL Inspection bar and click Test live URL.
Expand the availability section. Google's help says you want "Crawl allowed? = 'Yes', Page fetch = 'Successful.'"
If both pass and the checks below come back clean, the file is fine and repeated resubmission does nothing useful. Google says it "will retry for a few days, and then stop if the sitemap continues to be unavailable or has critical errors," and that after a real fix you should "resubmit your sitemap with a new request." Resubmit once, after a change, not daily.
How do you check the sitemap returns 200 as XML?
Request it with curl and read two headers: the status and the content type. The sitemap must answer 200 at the exact URL you submitted, without a redirect, and it should be served as XML. RFC 7303, which registers the XML media types, says XML documents should use application/xml or text/xml.
curl -sI https://example.com/sitemap.xml
What to look for:
HTTP/2 200 on the first line. A 301 or 302 means the submitted URL redirects; submit the final URL instead. The report shows "the exact URL specified when the sitemap was submitted" and "redirects are not followed" there.
content-type: application/xml or text/xml. A text/html response usually means a framework route, error page or login page is answering instead of the file.
No x-robots-tag: noindex you did not intend. Google's help notes a noindex response header is one way to stop Google visiting a sitemap, so a stray one belongs to the same family of mistakes.
Then read the first bytes of the body:
curl -s https://example.com/sitemap.xml | head -c 300
It should start with <?xml version="1.0" encoding="UTF-8"?> and a <urlset or <sitemapindex element. An HTML page, a JSON error or a challenge page here explains the failure immediately.
Is the sitemap blocked by robots.txt, a login or a firewall?
Any of the three stops the fetch. Google respects robots.txt for sitemaps, the report's help says the sitemap "must not be blocked by any login requirements," and a firewall challenge answers Googlebot with a page that is not your file. The URL Inspection live test shows which, because it fetches as Googlebot from Google's own addresses.
Open https://example.com/robots.txt and look for a Disallow rule matching the sitemap path in the group Googlebot follows. A broad Disallow: /*.xml$ or Disallow: /sitemap blocks it. The blocked by robots.txt guide explains which rule wins.
Load the sitemap in a private browser window. A login prompt or password page means a deployment or folder protection covers it.
In the live test, open View tested page. A challenge page or CDN error in the HTML means bot protection is answering Googlebot; allow verified crawlers for the sitemap path.
If you find and fix a block, the robots.txt report in Search Console has a Request a recrawl option, since Google caches robots.txt for up to 24 hours.
Is the XML valid and inside the limits?
Check that it parses, that it uses the right namespace, and that it stays under the size limits. Google's help lists a "Parsing error," often "caused by an unescaped character in the URL," and an "Incorrect namespace" error; the sitemaps protocol caps each file at 50,000 URLs and 50 MB uncompressed.
The first line prints nothing if the XML is well-formed. The second counts <loc> entries, which must stay at or below 50,000. The third prints the size in bytes, which must stay at or below 52,428,800 uncompressed.
Problem
Rule
Fix
Unescaped & in a URL
"Any data values (including URLs) must use entity escape codes" for &, ', ", <, >
Write & in the file
Wrong namespace
Must be exactly http://www.sitemaps.org/schemas/sitemap/0.9; Google's help warns against writing ".9"
Fix the xmlns on <urlset> or <sitemapindex>
Over 50,000 URLs or 50 MB
"All formats limit a single sitemap to 50MB (uncompressed) or 50,000 URLs"
Split into several files listed in a sitemap index
Index listing another index
"A sitemap index file can't list other sitemap index files"
List only sitemap files in the index
Curly quotes in attributes
Quotes "must be straight, not curly"
Regenerate the file with a proper XML library
Not UTF-8
"The sitemap file must be UTF-8 encoded"
Save or emit the file as UTF-8
A sitemap index file follows the same limits: at most 50,000 sitemaps and 50 MB. Google says the http:// in the namespace is intentional: it is "a reference for parsers," not a link to fetch.
How do you split a sitemap that is too big?
Break the URLs into several sitemap files, each under both limits, and list those files in one sitemap index. Google says you "must break your sitemap into multiple sitemaps" above 50 MB or 50,000 URLs, and that you "can optionally create a sitemap index file and submit that single index file to Google."
Split by type or by a stable range, such as posts and products, so each file changes for one reason.
Give every child sitemap an absolute URL in the index. Google reports "Invalid URL in sitemap index file: incomplete URL" when the index lists a bare file name.
Submit the index in the Sitemaps report. Its Discovered pages count covers "all URLs in all child sitemaps."
Keep a margin below 50,000 URLs per file, so growth does not tip one file over the limit between deploys.
Do the URLs match the sitemap's host and protocol?
They must. The sitemaps protocol says "all URLs listed in the Sitemap must use the same protocol ... and reside on the same host as the Sitemap," and Google asks for "fully-qualified, absolute URLs." A sitemap at https://www.example.com/sitemap.xml listing https://example.com/page breaks that rule, and Google reports it as a path mismatch or URL not allowed.
Use absolute URLs: https://www.example.com/pricing, never /pricing. Google says it "will attempt to crawl your URLs exactly as listed."
Match the protocol and host of the sitemap location, including www or its absence.
Keep the sitemap at the root. A sitemap at /blog/sitemap.xml can only list URLs under /blog/, unless you submit it in Search Console.
List only canonical URLs that return 200. The sitemap submission guide covers what belongs in the file, and the sitemap lastmod guide covers the date field that Search Console also validates.
Once the sitemap reads correctly, filter the Page indexing report by that sitemap to see how many of its URLs are indexed; the page indexing report guide explains each status you will see there.
Check your sitemap and robots.txt together
To check the sitemap the way a crawler finds it, run the free scan on LaunchScaler. It needs only the URL, no account, and runs 156 checks across 6 of its 7 categories at no cost. Its sitemap checks flag a sitemap that is missing from /sitemap.xml and from robots.txt, a file over the 50,000-URL or 50 MB limit, entries that redirect, return 404, are noindexed or are not canonical, and a sitemap with missing or unchanging lastmod dates. It also flags robots.txt rules that block pages you want crawled, so fix what it reports, confirm the live test passes, then resubmit once.
Google lists several causes: the sitemap is blocked by robots.txt, the URL is wrong and returns 404, a general error such as server unavailability, an unresolved manual action, or low crawl demand for the sitemap. Some fetch errors are transient.
03
Should I resubmit my sitemap if it says couldn't fetch?
Only after you have confirmed or fixed the cause. Test the sitemap URL in URL Inspection's live test; if Page fetch is Successful and the file is valid XML, resubmitting repeatedly will not speed anything up.
04
What is the maximum size of a sitemap?
50,000 URLs or 50 MB uncompressed per file. Above either limit, split the URLs into several sitemaps and list them in a sitemap index file, which can itself list up to 50,000 sitemaps.
05
What does general HTTP error mean for a sitemap?
Google hit an HTTP error not covered by a more specific message, and its help notes this can also be caused by a 404. Expand the details in the report and request the sitemap URL with curl to see the real status.
Sitemap lastmod uses W3C Datetime, such as 2026-09-28T09:00:00+00:00. Google trusts it only when it is consistently accurate, so set it from real edits.