No fluff. A production-tested walkthrough for submitting your XML sitemap via Search Console, validating coverage, and debugging failures. Includes real error codes, filter settings, and a diagnostic table used by in-house teams.
Quick calculator. Put in the expected monthly value of a page or link batch and the natural waiting time.
Submitting a sitemap to Google Search Console is a 90-second task that often takes three hours to fix. That sounds dramatic. It is. The bottleneck is not the submit button — it is the validation layer. Google's indexer is brutally literal. One blocked URL, one wrong namespace, one 301 chain from an old domain, and the entire sitemap may show as 'Couldn't fetch.' A common situation we see: a developer generates a sitemap via a plugin, hits submit, and then checks the report a week later to find zero indexed URLs because the sitemap was blocked by robots.txt but the plugin never warned them.
In practice, when you optimize for Core Web Vitals, you also need to ensure the sitemap paths are reachable, not just fast. A fast page behind a login wall helps nobody. The real work happens before you click submit: verify ownership, confirm the sitemap URL is accessible to Googlebot, and strip any noindex or canonical mismatches. This guide walks you through that exact chain, click by click, with the failure modes we see every week.
Domain property covers all subdomains. URL-prefix covers exact protocol only.
Fetch as Googlebot via URL inspection first. If blocked, fix robots.txt.
Paste path into Sitemaps tab. Wait for status to change from Pending.
Compare Submitted vs Indexed. Use the Index Coverage API for large sites.
Expand the error types: Server error, Redirect error, Not found, Blocked by noindex.
Resubmitting the same broken file resets the timer. Fix first, then submit.
| Error Type | GSC Display | Root Cause | Immediate Fix | Failure Risk if Ignored |
|---|---|---|---|---|
| Couldn't fetch | Status: Couldn't fetch | robots.txt blocks sitemap URL or server returns 5xx | Check robots.txt, allow User-agent: * Disallow: /sitemap.xml. Test via robots.txt tester. | Entire sitemap ignored. Zero URLs submitted for crawling. |
| Redirect error | Status: Submitted but shows redirect | Sitemap URL redirects (301/302) to another URL | Serve sitemap directly at the submitted URL. No redirects. | Google follows redirect but may not index all URLs. Partial coverage. |
| Blocked by noindex | Error: Blocked by noindex tag | URLs inside sitemap have meta robots noindex or X-Robots-Tag: noindex | Run a noindex tag checker on the sitemap URLs. Remove noindex from those pages. | Those URLs are excluded from index despite being submitted. |
| Server error (5xx) | Error: Server error (5xx) | Server timeout, too many requests, or firewall blocking Googlebot | Rate-limit Googlebot via .htaccess? Remove limit. Check server logs for 503 spikes. | Google retries for 30 days, then drops the sitemap permanently. |
| Not found (404) | Error: Not found (404) | URL in sitemap points to a deleted page or typo in path | Fix the URL in the sitemap or redirect to a valid page. Remove dead URLs. | 404s waste crawl budget. Google may de-prioritize the sitemap. |
Scenario: A mid-size e-commerce site generates a sitemap with 12,847 product URLs. After submission, the GSC Sitemaps report shows 12,847 submitted but only 8,210 indexed. The gap is 4,637 URLs — roughly 36%.
Step 1: Open the Index Coverage report and filter by 'Excluded.' The breakdown shows: 2,100 URLs have 'Crawled - currently not indexed,' 1,800 have 'Blocked by noindex,' and 737 have 'Alternate page with proper canonical tag.'
Step 2: For the 1,800 noindex URLs, we run the noindex tag checker in bulk mode. It confirms all 1,800 carry a tag. These are old product variants still in the sitemap. We remove them from the XML generator filter by setting 'status = active' in the query.
Step 3: For the 2,100 'Crawled - not indexed,' we check the Core Web Vitals data. 68% of those URLs have poor LCP (above 4.5 seconds). We prioritize performance fixes for those pages.
Step 4: After cleanup, the sitemap drops to 10,847 URLs. We resubmit. After 10 days, indexed count rises to 10,200 — a 96% index rate.
Real operational failures are not in the happy path. Here are the three we see most often.
1. Multiple sitemaps with overlapping URLs. If you submit both a main sitemap and a separate image sitemap containing the same page URLs, Google may deduplicate or ignore one. Solution: use a single sitemap index file that points to both, and never submit duplicate URL entries across separate sitemaps.
2. Sitemap inside a subdirectory that is disallowed in robots.txt. Example: sitemap at /blog/sitemap.xml but robots.txt has Disallow: /blog/. Googlebot cannot fetch the sitemap even though the file exists. The sitemap itself must be in an allowed directory.
3. GSC property mismatch. You submit a sitemap for https://www.site.com to a Domain property that covers https://site.com. While Domain properties include both, the sitemap path must match the property's canonical view. If you use URL-prefix property for the naked domain, submitting a www URL fails silently. Always match the exact prefix.
Sitemap URL returns HTTP 200 and is not blocked by robots.txt
All URLs in the sitemap return 200 (no 404s or soft 404s)
No URL carries a noindex tag or X-Robots-Tag: noindex
Sitemap file is UTF-8 encoded, valid XML, and under 50MB uncompressed
Canonical tags on pages match the URLs in the sitemap
Property in GSC matches the exact protocol and subdomain of the sitemap URL
If using a sitemap index, all child sitemaps are accessible and error-free
For agency workflows, use the GSC API to submit sitemaps programmatically across multiple properties. The API accepts up to 100 sitemap submissions per day per property. Automate via a cron job that validates the sitemap locally before hitting the API endpoint. This avoids the manual click-per-client bottleneck.
Google accepts XML, RSS, Atom, and TXT sitemaps. XML is preferred. The file must be UTF-8, max 50MB uncompressed, and contain at most 50,000 URLs. Use a sitemap index file if you exceed these limits. GSC does not accept gzip-compressed files directly — decompress before submission.
This error means Googlebot could not access the sitemap URL. The three most common causes: (1) the URL is blocked by robots.txt, (2) the server returns a 5xx error or times out, (3) the sitemap path is incorrect (e.g., missing trailing slash). Use the URL inspection tool to test the sitemap URL as Googlebot — it shows the exact failure reason.
No. You must be a verified owner or have full user permission on the property. If you are a contractor, ask the client to add you as a user with 'Owner' or 'Full' role. Submitting without verification returns an error: 'You do not have permission to submit a sitemap for this property.'
Indexing time varies from 3 days to 4 weeks. For high-authority sites with clean sitemaps, URLs may appear within 48 hours. For new or low-authority domains, expect 2-3 weeks. The sitemap triggers crawling, not indexing. If URLs are not indexed within 30 days, check for noindex tags, canonical issues, or low page quality signals.
The sitemap submission is a bulk request for crawling all listed URLs. The URL inspection tool requests indexing of a single URL and shows its current index status. Use sitemaps for ongoing discovery; use URL inspection for debugging specific pages. They are complementary, not interchangeable.
Use a <a href='https://en.speedyindex.com/noindex-tag-checker/'>noindex tag checker</a> that accepts a list of URLs. Paste all sitemap URLs into the tool. It will flag any page that contains a noindex meta tag or X-Robots-Tag header. Remove those URLs from the sitemap before submission to avoid the 'Blocked by noindex' error in GSC.
Yes, but you must use the Domain property type in GSC, which covers all subdomains. If you use a URL-prefix property for just one subdomain, you must submit a separate sitemap for each subdomain under its own property. The Domain property is recommended for multi-subdomain setups.
Split the sitemap into multiple files of at most 50,000 URLs each. Create a sitemap index file that lists all child sitemaps. Submit only the index file to GSC. The index file itself must not exceed 50,000 child sitemaps. Use tools like the <a href='https://teletype.in/@speedyindex/Pragmatic-Bulk-URL-Index-Checker-for-Google'>Pragmatic Bulk URL Index Checker for Google</a> to validate all child sitemaps are accessible before submission.
This is normal. Google indexes only URLs it considers high-quality and crawlable. Common reasons for exclusion: noindex tags, canonicals pointing elsewhere, soft 404s, thin content, or duplicate content. Check the 'Excluded' tab in the Index Coverage report for the specific reasons. Aim for 80%+ index rate for well-optimized sites.