Sitemap could not be read
Where you see it: Search Console → Indexing → Sitemaps → a sitemap whose status is Couldn’t fetch
Google asked for the sitemap you submitted and did not get a file it could use, so it read none of the URLs inside. The Sitemaps list shows this as Couldn’t fetch; open the sitemap and its details say Sitemap could not be read. A failed sitemap doesn’t take pages out of Google, but Google stops learning about new and changed pages from it.
Fix it if the file is broken; give a new submission a few days.
Open the sitemap address in a private window. A 404, your homepage, a login screen or a security check means Google got the same. Clean XML means the trouble is in how Googlebot is answered, or Google hasn’t retried yet.
Check the URL Search Console listed
Enter the exact address you submitted in Search Console. The checker fetches it, follows redirects, parses the XML, reads the child sitemaps of an index, checks robots.txt and fetches a sample of listed URLs.
Sitemap report
Enter a sitemap URL to validate it and spot-check the URLs it lists.
Reading the result
- An error that the sitemap URL returned HTTP 404: the address doesn’t exist on your setup. Try the addresses listed below.
- Type: Not a sitemap: the address answered with a web page, usually the theme’s 404 page, a maintenance screen or a login form. Google can’t read a page as a sitemap.
- Sitemap has errors, with a message that the XML declaration must come first in the file: something prints a blank line or text before the XML. Google may reject the file for it.
- Sitemap looks healthy, or warnings only: the file reads fine from outside. If Google still fails, something treats Googlebot differently from this checker, or Google hasn’t retried.
The same tool with its full guide: Sitemap Checker
Why it happens on WordPress
Most WordPress cases come down to a gap between the sitemap you submitted and the one your site serves today. Installing, switching or reconfiguring an SEO plugin moves the sitemap, and the old address stops answering.
The address from the wrong plugin
Core serves /wp-sitemap.xml since WordPress 5.5. Yoast SEO and Rank Math serve /sitemap_index.xml, SEOPress /sitemaps.xml and All in One SEO /sitemap.xml. Submit the address from a tutorial written for another plugin and Google gets a 404, one of the causes its help lists.
A sitemap switched off by a settings change
Moving from Yoast SEO to Rank Math retires the old file, and so does turning a plugin’s sitemap off. Core’s sitemap goes off, and answers 404, when Settings → Reading → “Discourage search engines from indexing this site” is ticked or code returns false on the wp_sitemaps_enabled filter.
A cache or optimiser serving a bad copy
A page cache can store an error page or an old sitemap and serve it to everyone, Googlebot included, and minify settings can alter XML they weren’t built for. Yoast and Rank Math both say to exclude sitemap URLs from caching.
Output before the XML starts
An XML file must open with its declaration. A blank line in wp-config.php, functions.php or a plugin file, or a PHP warning printed to the screen, lands in front of it. Yoast documents this as “XML or text declaration not at start of entity”.
A firewall that stops Googlebot
Wordfence’s firewall rules answer with a 403, while its blocklist and rate limiting serve Wordfence’s own block page, whose status the redirect checker shows. Cloudflare’s bot and WAF rules can challenge crawlers, and Sucuri or a host firewall can refuse them, all while the sitemap opens fine in your browser. Google can’t pass a challenge, so the fetch fails.
A submission Google hasn’t retried yet
Google retries a failed fetch for a few days before it stops, and lists low crawl demand among the causes. On a new site, a perfect file can show Couldn’t fetch for a while.
How to fix it
Start with what a stranger gets from the sitemap address, then work back to the setting that produced it.
1. Open the sitemap logged out
Load the submitted address in a private window. You want XML, or your SEO plugin’s styled sitemap page, and nothing else.
2. Submit the address your setup serves
Match the sitemap to the plugin active today, and submit its final address, after any redirect, in the www and https form of your property. Rank Math’s guide to this error checks that too.
- No SEO plugin: /wp-sitemap.xml, from WordPress core.
- Yoast SEO: /sitemap_index.xml, switched on under Yoast SEO → Settings → Site features.
- Rank Math: /sitemap_index.xml, from the Sitemap module in Rank Math SEO → Dashboard.
- SEOPress: /sitemaps.xml, under SEO → XML - HTML Sitemap.
- All in One SEO: /sitemap.xml, with Enable Sitemap on under All in One SEO → Sitemaps.
3. Remove sitemaps that no longer exist
In Indexing → Sitemaps, open each entry left by a plugin you replaced and remove it. A dead entry keeps the error on screen.
4. Re-save permalinks for a 404
Go to Settings → Permalinks and click Save Changes without changing anything. That rebuilds the rewrite rules the sitemap address depends on, and Yoast lists it as the first fix for a sitemap 404.
5. Keep caches away from the sitemap
Purge the page cache, then add your sitemap paths to the exclusion list of your caching plugin, optimiser and CDN. On Rank Math, also clear its own sitemap cache: change Links Per Sitemap, save, then re-save permalinks, as its guide describes.
6. Find what prints before the XML
If the checker says the declaration isn’t first, or finds text outside the root element, PHP is writing into the file. On a staging copy, switch to a default theme and deactivate plugins one by one until it validates. On the live site, set WP_DEBUG_DISPLAY to false.
7. Let Googlebot through
Look in your security plugin’s log, your host firewall’s log or Cloudflare’s security events for blocked Googlebot requests to the sitemap URL, and allow them. Check robots.txt too: a Disallow covering the sitemap path stops Google, which reads robots.txt before fetching sitemaps.
Couldn’t fetch, Has errors, Success
The Sitemaps report gives each submitted file one of three statuses. Sitemap could not be read is the detail behind Couldn’t fetch: Google never got the file, so it couldn’t check a single URL in it.
| Status | What Google did | What to do |
|---|---|---|
| Success | Loaded and processed the file | Nothing |
| Has errors | Loaded it; queued the URLs it could parse | Fix the listed errors, such as an unescaped character |
| Couldn’t fetch | Could not retrieve the file at all | Check the address, firewall and robots.txt |
Check the fix in Search Console
Sitemaps have no Validate fix button. A clean live test and a fresh submission are how you ask Google to try again.
- Paste the sitemap address into URL Inspection and run Test live URL. Google’s help says Crawl allowed? should be Yes and Page fetch Successful.
- In Indexing → Sitemaps, enter the address under Add a new sitemap and click Submit, even if it is already listed.
- Over the next days, watch the Last read date and the status. Success means Google loaded and processed it.
- Still Couldn’t fetch after several days with a clean live test? Recheck the firewall for blocks that fire only for Googlebot.
For a temporary error, Google’s help says you generally don’t need to resubmit. The old sitemap ping URL was retired in 2023.
Can RankHive fix this?
No. RankHive reads your sitemaps but can’t generate, edit or submit them, and the fixes for this error live in your SEO plugin, cache, firewall or theme. Its part is narrow: robots.txt lines, when WordPress serves the file.
What it writes, once you approve
- A Sitemap: line in the virtual robots.txt naming the address your setup serves.
- An Allow rule in the virtual robots.txt when a Disallow there covers the sitemap path.
What it can’t do here
- Create, repair or switch on a sitemap, or change your SEO plugin’s sitemap settings.
- Submit or remove sitemaps in Search Console, where its access is read-only.
- Change cache, CDN, firewall or security plugin rules.
- Fix PHP output in your theme, plugins or wp-config.php, or edit a physical robots.txt.
Every change is drafted next to the current value and waits for your approval. Each one written is logged in the Change Log, with Revert.
Check the rest of your site while you’re here
The free site check reads your public pages for titles, meta descriptions, headings, canonical tags and schema, and shows what needs fixing. If you sign up, RankHive reads your Google Search Console data every week, drafts the fixes, and writes the ones you approve to WordPress. Nothing changes on your site until you say yes.
Related issues
- Blocked by robots.txtFix it only for URLs you want found in Google.
- Blocked due to access forbidden (403)Fix it if the page should be public; keep Google away if it never should be.
- Discovered – currently not indexedGive new posts time; act when posts you care about stay stuck.
- Page with redirectUsually leave it; tidy your own links that still use the old address.
- IndexNowSwitch it on once, through one plugin. Act only when submissions fail.
Common questions
Is “Couldn’t fetch” the same as “Sitemap could not be read”?
Yes, seen from two places. Couldn’t fetch is the status in the Sitemaps list; Sitemap could not be read is the error on that sitemap’s details page, sometimes with a reason such as General HTTP error.
Why can’t Google fetch a sitemap that opens in my browser?
Because a firewall, security plugin or robots.txt rule can treat Googlebot differently from you, or Google hasn’t retried yet. URL Inspection’s live test on the sitemap address shows what Googlebot gets.
Is “Couldn’t fetch” normal for a new sitemap?
It can be. Google lists low crawl demand among the causes and retries for a few days. If the file opens and the live test passes, wait before changing anything.
Should I submit each child sitemap separately?
No. Submit the index, such as /sitemap_index.xml or /wp-sitemap.xml, and Google reads the files it lists.
Read next
Sources
Checked against these pages on .
- Google Search Console Help: Sitemaps report
- Google Search Central Blog: Sitemaps ping endpoint is going away
- Make WordPress Core: New XML sitemaps functionality in WordPress 5.5
- WordPress Developer Reference: wp_sitemaps_enabled
- Yoast: Sitemap error, XML or text declaration not at start of entity
- Yoast: My sitemap is giving a 404 error
- Rank Math: Troubleshooting the Couldn’t Fetch error