The Sitemaps report: what Success, Has errors and Couldn’t fetch mean
You will add a sitemap URL in Search Console, then watch the Sitemaps report. This guide shows what Success, Has errors and Couldn’t fetch mean, why Discovered differs from Indexed, and how to fix each cause. It is written for a founder who runs their own site.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
Where to find and submit your sitemap
Open Search Console, pick the property that matches your site. Use a Domain property if you can, it covers all subdomains and both http and https. A URL prefix property only covers that exact prefix, such as https://www.yourproduct.com/.
Find your sitemap URL
Common paths are /sitemap.xml, /sitemap_index.xml or /sitemap.txt. Many CMSs show the path in their settings. If unsure, load /robots.txt and look for a Sitemap: line.
Check it in your browser first
Open the URL. It must load over https without a login, 200 status, XML, and list your site’s URLs or child sitemap files.
Submit in Search Console
Go to Indexing, Sitemaps. Paste the full sitemap URL and press Submit.
Wait for the read
You will see Status, the date last read and the number of URLs discovered when Google fetches it.
If you have more than one sitemap, submit each, or submit a sitemap index that lists them. For programmatic sites, a sitemap index keeps files under the 50,000 URL or 50 MB per file limits.
What the Sitemaps report shows
- Status: Success, Has errors, or Couldn’t fetch
- Last read: when Google last fetched the file
- Discovered URLs: how many URLs or child sitemaps were found
This report is about fetching and reading sitemaps. It is not a guarantee of indexation. Use the Performance and Pages reports to see which URLs get impressions and which are indexed.
What Success, Has errors and Couldn’t fetch mean
Success means Google fetched and parsed the sitemap or index. It does not mean all URLs are indexed. It only says the file was valid and readable.
Has errors means the file was fetched but contains at least one problem. Typical cases include invalid XML, URLs outside the allowed host, or a sitemap index pointing at missing or invalid child sitemaps.
Couldn’t fetch means Google could not retrieve the file. Common causes are a 404, a 5xx, a timeout, a robots.txt block of the sitemap path, or an auth wall.
Diagnose and fix a Couldn’t fetch sitemap
Fetch it like Google
Open the sitemap URL in a private window. Use curl -I https://yourproduct.com/sitemap.xml to see the HTTP status and headers. You want 200 OK over https.
Remove access blocks
The sitemap URL must not require a login or IP allowlist. In robots.txt, do not Disallow the sitemap path. The Sitemap: line can sit anywhere, but the file itself must be allowed.
Fix broken links and redirects
A sitemap must not redirect. Serve the file at the submitted URL, 200 OK. If you have moved it, update the submitted URL and any Sitemap: line in robots.txt.
Serve valid XML with the right content-type
Return application/xml or text/xml. If your framework returns HTML or JSON, adjust the controller or static file mapping.
A working example: https://yourproduct.com/sitemap.xml loads fast, returns 200, shows urlset with https URLs on yourproduct.com, no redirects. The Sitemaps report moves from Couldn’t fetch to Success at the next read.
Diagnose and fix a Has errors sitemap
- Invalid XML: unclosed tags, wrong namespace, bad encoding
- Cross host URLs: URLs on another domain are not allowed
- Missing child files: a sitemap index lists files that 404 or are invalid
- Wrong protocol or host: http URLs when the site is https, or www vs non-www mismatch
- Illegal values: lastmod in the wrong format, or dates in the future
Validate the XML
Use a local XML linter, then open the file in a browser. The root must be urlset or sitemapindex with the correct xmlns.
Keep all URLs on the same host
A sitemap can only list URLs on its own host. For app.yourproduct.com and www.yourproduct.com, host a sitemap on each subdomain, or use an approved cross-host setup.
Fix a broken sitemap index
Every child sitemap in a sitemapindex must exist, return 200 and be valid XML. Remove entries that 404 or point to dev domains.
Use canonical https URLs
List the exact canonical URL you want indexed, such as https://www.yourproduct.com/pricing. Do not list http if you redirect to https.
Repair dates and encoding
Format lastmod as an ISO 8601 date or datetime. Do not include out-of-range values. Serve UTF-8 and escape special characters.
A fixed file looks like this: /sitemap_index.xml lists /sitemaps/pages-1.xml and /sitemaps/blog-1.xml, both on the same host, both 200, both valid urlset files with https URLs.
Why Discovered URLs and Indexed differ
Discovered is a count of URLs Google found in the sitemap. Indexed is a decision made after crawling and evaluation. They rarely match for a small site.
- New pages need a crawl before indexation
- Noindex, 404, 410 and soft 404 will be excluded
- Duplicate or canonicalised pages consolidate into one indexable URL
- Low-value or thin content may be crawled but not indexed
- Blocked by robots.txt cannot be crawled for content so may not be indexed
Check a sample with the URL Inspection tool. If many are Crawled, currently not indexed, improve the content and internal links. If many are Discovered, currently not indexed, make sure the pages are linked and the server is fast.
lastmod, changefreq and priority: what Google uses
Google reads lastmod when it is consistently accurate. It may use it to schedule crawls. If you lie, Google learns to ignore it. Be honest and stable.
Google ignores changefreq and priority. Do not spend time tuning them. Spend that time making your lastmod correct and your pages better linked.
What belongs in your sitemap
- Only pages you want to rank and keep indexed
- Canonical URLs, not duplicates or UTM variants
- Live 200 pages, not redirects or 404s
- https URLs if you serve https
- One language or variant per URL
Do not list admin pages, staging paths or feature flags. Do not include tag pages if they are thin. Keep parameters and session IDs out of the file.
A clean example: /sitemaps/pages-1.xml lists /, /pricing, /guides/getting-started and /blog/how-we-built-x. It does not list /cart, /login, /search?q=, or /tag/engineering.
Working with large and changing sites
- Split sitemaps by type: pages, blog, docs, products
- Use a sitemap index to group files and stay within 50,000 URLs or 50 MB per file, uncompressed
- Gzip large sitemaps to save bandwidth, still under 50 MB uncompressed
- Keep a stable URL for each sitemap file, do not rotate names daily
- Update lastmod on changed pages only, not the whole file on deploy
If you publish many pages a day, keep a fresh file for new content and roll them into stable archives after a week. Your sitemap index lists both. This keeps lastmod honest and reduces churn.
Troubleshooting odd cases
- Sitemap index on www, child files on non-www: host them all on the same host, or mirror correctly
- International sites: one sitemap per host or subdomain, then list them in a cross-host index only if you use an approved setup
- Mixed protocols: do not list http if you redirect to https
- CMS-generated HTML at /sitemap.xml: configure a proper XML sitemap or host a static file
- Blocked paths in robots.txt: you can list a URL in a sitemap even if blocked, but Google cannot fetch content, so indexation may lag
After a fix, use Resubmit in the Sitemaps report. You do not need to resubmit after every normal update. Google will reread sitemaps over time.
Questions
It is a URL you submit so Google can fetch a list of your canonical pages. The Sitemaps report shows if Google could fetch and parse it, when it last read it, and how many URLs it discovered. It is a discovery hint, not a guarantee of indexation.
Open Indexing, Sitemaps in your property. Paste the full sitemap URL such as https://www.yourproduct.com/sitemap_index.xml and submit. Check the file in your browser first to confirm it returns 200 OK over https and valid XML.
Serve the file at the exact submitted URL, 200 OK, over https, without login. Remove robots.txt blocks on the sitemap path. Avoid redirects. Fix server timeouts or 5xx. Return XML with the correct content-type. When the file is stable, press Resubmit.
Google fetched the file but found problems such as invalid XML, URLs from another host, wrong protocols, or an index pointing to missing child sitemaps. Validate the XML, keep all URLs on the same host, and ensure each child sitemap exists and returns 200 with valid XML.
No. Keep the file stable and update lastmod only for pages whose main content changed. Google rereads sitemaps on its own. Use Resubmit after major fixes like switching hosts, changing paths, or repairing a broken sitemap index.
Discovered counts URLs in the file. Indexed is a separate decision. New, duplicate, noindex, 404 or thin pages may not be indexed yet. Use URL Inspection and your Pages report to see status and fix content, canonicals and internal links.
Sources
Check my site, free
Paste your homepage URL and get a free check that reads your site, the searches around it and the rivals on them in about thirty seconds, with three findings shown whole.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideHow to use Google Search Console in ten minutes a week
- GlossaryXML sitemap
- GuideHow to use the URL Inspection tool in Search Console
- GuideTechnical SEO checklist for a small site
- GuideOrphan pages: finding the pages nothing links to
- GuideBlocked by robots.txt: what Google can still do with the URL
- GuideThe Crawl stats report: how much Google fetches and where it struggles
- GuideSoft 404: when a page says 200 and Google reads not found