Does your sitemap point at real pages?
A sitemap full of dead or redirecting URLs wastes the crawl budget you want spent on products. This fetches yours, follows a sitemap index if there is one, and checks the first URLs to see what they return.
Reads /sitemap.xml, follows the first child sitemap when it is an index, and checks the first URLs with real requests. Nothing is stored.
How this check works
Shipwork fetches your /sitemap.xml from outside your network the way Google does, follows the first child sitemap when it is an index, validates the XML, then checks the first URLs inside with real requests, reporting dead pages, redirects, and blocks. A sitemap is a hint, not a guarantee: its job is to save the crawler time, and dead entries do the opposite.
What the XML sitemap checker validates
The checker fetches /sitemap.xml from outside your network. It determines whether the response contains a URL set or sitemap index, parses location entries and, for an index, follows same-host child sitemap URLs within a bounded limit. It then checks a sample of the sitemap’s page URLs using real HTTP requests and reports errors, redirects or blocked responses found in that sample.
A sitemap is a discovery hint, not a promise that every listed URL will be indexed. A successful check confirms what this request could fetch and parse; it does not show whether Google has processed the file. Search Console’s Sitemaps report provides Google-specific submitted and fetched status.
- Whether /sitemap.xml responds and contains sitemap XML.
- The parsed URL count and sitemap-index child information where applicable.
- Same-host versus off-host URL concerns and child sitemap read failures.
- HTTP outcomes for a bounded sample of listed page URLs.
How to interpret sitemap results
If no sitemap is found, first confirm the platform’s actual public sitemap URL. The checker requests the root /sitemap.xml path; it may not be the right address for every custom setup. If the file is found but contains no URLs, inspect its generator. If an index has unreadable child files, repair or remove the broken child references and rerun the check.
A dead URL in the sample is a page that returned an HTTP error. A redirect may be expected after a migration, but it is usually cleaner for the sitemap to list the final canonical destination directly. A blocked response means the checker could not access a listed page; it does not by itself prove that Google received the same response. The free result samples URLs, so it is not a complete audit of a very large sitemap.
- 404/5xx: repair or remove stale entries, depending on whether the page should exist.
- Redirect: update the sitemap source to the final URL where possible.
- 403/401: check access controls and public crawler access.
- Valid file, no Search Console status: submit the exact sitemap URL and review Google’s Sitemaps report.
Fix common sitemap problems
Sitemaps should contain absolute URLs for pages you want discovered, not arbitrary search, cart or account URLs. After a migration, regenerate the sitemap from the new site configuration so it uses the preferred host and current paths. If a child sitemap is missing, correct the index that points to it; editing the child alone will not remove a dead index entry.
The checker expects sitemap XML at the standard root path. If your site intentionally publishes a different URL, verify that file directly and use its exact address in Search Console. Keep the sitemap reference in robots.txt when appropriate so crawlers can find the file without guessing.
- Example URL:
https://example.com/sitemap.xml; its entries should be full URLs such ashttps://example.com/products/blue-shirt. - For Shopify, the platform publishes a sitemap for the store; confirm the storefront domain and redirects are correct before submitting it.
- For WordPress, use the sitemap produced by WordPress core or your SEO plugin and avoid submitting a stale alternate generator as if it were current.
- Use the sitemap freshness check for lastmod dates and the indexability check for page-level noindex and canonical signals.
When to run a sitemap check
Run it after a platform migration, sitemap plugin change, domain move, or a Search Console could-not-fetch message. It is also useful before resubmitting a sitemap: confirm the public file and a sample of its entries first. If the file is valid but Search Console reports no discovered pages, investigate the actual submitted URL, access controls, child sitemaps and Google’s report rather than assuming that a browser load proves Google fetched it.
Use this result with a page-level check. A sitemap can list a URL that returns 200 but carries noindex or a canonical to another page. Conversely, a page can be indexable and still be absent from the sitemap. These signals answer different questions.
- Sitemap checker: sitemap parsing and issue description.
- Indexability check: noindex, canonical and crawl signals for a URL.
- Site audit: broader checks across a set of pages.
How to check a sitemap
A sitemap check confirms what your public sitemap serves and spot-checks whether listed pages respond. It cannot confirm that a search engine has accepted or indexed those URLs.
- Enter your site’s public domain and run the sitemap check.
- Review whether /sitemap.xml can be fetched and contains sitemap XML with URLs. Check any sitemap index and child sitemap findings.
- Inspect the reported URL count and sampled page responses. Fix dead URLs and make sure sitemap entries use absolute URLs on your site’s preferred host.
- Check that robots.txt references the sitemap URL, then submit that exact URL in Search Console if you want Google to process it.
- Re-run after publishing changes. For Google’s fetch status and discovered URL count, use the Sitemaps report in Search Console.
Errors this check finds, and their fixes
- Couldn't fetch sitemap: Why Search Console says it could not fetch a sitemap that loads fine for you
- Sitemap not found: Why Search Console reports a sitemap that does not exist, and where it actually is
- Sitemap could not be read: What "Sitemap could not be read" and "Couldn't fetch" really mean, and when to wait