You submitted your sitemap, waited, and Search Console is showing a red Couldn’t fetch next to it. No explanation, no detail, and a sitemap that loads perfectly when you open it in a browser.

That last part is the frustrating bit, and it is also the clue. Google is not using your browser. It is fetching as Googlebot, from outside your network, with no cookies and no session — and in that situation several very ordinary things look like failures.

Start here. “Couldn’t fetch” almost always means Google could not retrieve the file at all, not that the XML inside it is wrong. Check the URL is exactly right, that it returns a 200 rather than a redirect, and that robots.txt is not blocking it.

Run the sitemap URL through the Sitemap Validator to confirm it is reachable and well formed from outside your own browser, then resubmit.

What each Search Console message actually means

The messages are terse and several of them sound alike. They are not.

MessageWhat it meansUsual cause
Couldn’t fetchGoogle could not retrieve the file at allWrong URL, redirect, 404, blocked, or a timeout
Sitemap could not be readThe file was fetched but could not be parsedBroken XML, wrong content type, HTML error page
General HTTP errorThe server returned an error code403, 404 or a 5xx at the time Google tried
Sitemap is HTMLThe URL returned a web page, not XMLA 404 page served with a 200 status
0 discovered URLsValid file, but Google found nothing in itEmpty sitemap, or an index pointing at nothing
Success, but pages not indexedNothing wrong with the sitemap at allA separate indexing question, not a sitemap fault

That last row matters more than people expect. A sitemap is a suggestion, not an instruction. “Success” means Google read your list. It has never meant Google agreed to index everything on it.

Working through "Couldn’t fetch"

1. Check the exact URL you submitted

Search Console is unforgiving about this. https://example.com/sitemap.xml and https://www.example.com/sitemap.xml are different properties, and submitting one to the other produces a fetch failure. So does a stray space, or a capital letter in a path that is case sensitive.

Open the exact URL from the Search Console row in a private window. Not from memory — copy it from the field.

2. Check it returns 200, not a redirect

If /sitemap.xml redirects to /sitemap_index.xml, or from http to https, or from non-www to www, Google may report a fetch failure rather than following it. Submit the final URL — the one that answers directly with a 200.

3. Check robots.txt is not blocking it

A Disallow rule that happens to cover your sitemap path will stop Googlebot reading it, and nothing in Search Console says so plainly. While you are there, confirm your robots.txt names the sitemap:

Sitemap: https://example.com/sitemap.xml

Our Robots.txt Checker will tell you whether a given path is reachable by Googlebot.

4. Rule out the firewall or CDN

Security plugins, Cloudflare rules and host-level firewalls sometimes serve a challenge page to anything that does not look like a browser. You see the sitemap because you are a browser; Googlebot sees a block page. If everything else checks out, this is the most likely remaining cause, and your host can confirm it from the access logs.

5. Consider that it may have been temporary

If the server was briefly down or slow when Google tried, the error sticks in the interface until the next fetch. Resubmit and give it a day before troubleshooting further.

Check your sitemap from outside your browser

Confirm the file is reachable, valid XML, and well formed — the same way a crawler sees it. Free, instant, no sign-up.

Validate My Sitemap

When the file is fetched but will not parse

“Sitemap could not be read” is a different animal. Google got the file; the contents are the problem.

  • Invalid XML. An unescaped ampersand in a URL is the classic. In XML, & must be written &, and a single raw one invalidates the whole document.
  • Wrong content type. The file should be served as application/xml or text/xml. Some servers send text/html, which confuses the parser.
  • A BOM or blank line before the declaration. The <?xml declaration must be the very first thing in the file. Anything before it, including an invisible byte order mark, breaks parsing.
  • Mixed domains. Every URL in a sitemap must be on the same host as the sitemap itself.
  • Over the limits. A single sitemap may hold 50,000 URLs and must stay under 50 MB uncompressed. Past that, split it and use a sitemap index.

Where your sitemap lives, by platform

A surprising share of “couldn’t fetch” errors are simply the wrong address submitted. Different platforms put it in different places, and several generate more than one.

PlatformUsual URLWorth knowing
WordPress + Yoast/sitemap_index.xmlAn index pointing at sub-sitemaps. Submit the index, not each child.
WordPress + RankMath/sitemap_index.xmlSame pattern. Both plugins disable the WordPress core sitemap.
WordPress core/wp-sitemap.xmlOnly active when no SEO plugin has taken over.
Shopify/sitemap.xmlGenerated automatically and cannot be edited.
Wix / Squarespace/sitemap.xmlAutomatic. Submitting a child file is a common mistake.
Static or custom/sitemap.xmlWhatever you built. Confirm your build step actually deploys it.

If you are not sure which applies, open yoursite.com/robots.txt — most platforms declare the sitemap there, and that line is the authoritative answer for your particular setup.

Sitemap index files

Once a site passes a few thousand URLs, the usual arrangement is an index file that lists other sitemaps rather than listing pages directly. Submit the index on its own; Google follows the children automatically, and submitting all of them separately clutters the report without helping.

The error that catches people here is a child sitemap listed in the index at a URL that no longer resolves — for example a product sitemap that is only generated when products exist. The index fetches fine, one of its children 404s, and the report shows a failure that looks unrelated to anything you changed.

Resubmitting, and how long to wait

Once you have fixed the cause, go to the Sitemaps report, delete the failing entry, and submit the URL again. Deleting first matters: Search Console sometimes keeps showing the old status against the old entry even after the underlying problem is gone, which sends people chasing a fault they already fixed.

Then wait. A fetch usually happens within a day or two, sometimes within hours, and the report updates when it does rather than in real time. Resubmitting repeatedly does not speed it up. If it still fails after two or three days with everything above checking out, the next place to look is your server access log for requests from Googlebot — that tells you whether the request is arriving at all, which separates a Google-side problem from a firewall silently refusing it.

What belongs in a sitemap, and what does not

Most sitemap problems that are not technical are editorial. A sitemap should list the canonical, indexable pages you actually want in search — nothing else.

Leave out: pages that redirect, pages that return 404, anything with a noindex tag, pages canonicalised to a different URL, tag and filter pages that generate near-duplicates, and anything behind a login. Including them does not get them indexed; it just makes Google trust the file less.

lastmod is worth getting right because Google does use it as a hint — but only if it is honest. Setting every page to today’s date on every build teaches Google to ignore the field entirely.

You can safely ignore priority and changefreq. Google has said for years that it does not use them.

Submitted successfully but pages still not indexed

This is the most common follow-up, and it is not a sitemap problem. A sitemap helps Google discover URLs. Whether it indexes them depends on whether the pages look worth indexing.

In the Pages report you will see two phrases a lot. Discovered — currently not indexed means Google knows the URL but has not got round to crawling it, which is normal on newer sites with little authority. Crawled — currently not indexed means it looked and decided not to keep it, which usually points at thin or near-duplicate content.

Neither is fixed by resubmitting the sitemap. The first needs internal links and patience; the second needs better pages. A full page audit will show you which of your pages look thin before Google does.

Do you even need a sitemap?

Worth asking, because a lot of effort goes into files that change very little.

Google has been explicit that a small, well-linked site does not strictly need one. If every page is reachable in a couple of clicks from your home page, the crawler will find everything with or without a sitemap. The cases where it genuinely helps are: a site larger than a few hundred pages, a new site with almost no inbound links, pages that are poorly linked internally, and sites with a lot of media or news content where freshness matters.

What a sitemap never does is improve rankings. It is a discovery aid, not a quality signal, and no amount of tuning priority values changes where a page sits in results. If your pages are discovered and indexed already, time spent perfecting the sitemap is time not spent on the thing that would move the needle.

The one argument for having one regardless of size is diagnostic. The Sitemaps report gives you a clean count of submitted versus indexed URLs, which is a genuinely useful health signal over time — a gap that widens month after month tells you something is wrong well before traffic drops.

A quick checklist

  • Open the exact submitted URL in a private window. Does it return XML with a 200?
  • Is it the same host and protocol as the Search Console property?
  • Does robots.txt allow it, and does it name the sitemap?
  • Is the content type XML rather than HTML?
  • Any unescaped ampersands, or anything before the <?xml line?
  • Under 50,000 URLs and 50 MB?
  • Does it list only canonical, indexable pages?

Validate before you resubmit

Check your sitemap is reachable and valid from outside your network, so you are not waiting days to find out it was a redirect all along.

Open the Sitemap Validator