What this check inspects
Shipwork fetches your sitemap from outside your network, trying /sitemap.xml and /sitemap_index.xml unless you give a specific path. It checks whether the response is a urlset or a sitemapindex, extracts every loc and reports the count. For a urlset it flags more than 50,000 URLs, duplicate loc entries, loc values that are not absolute URLs, and locs pointing at a different host than the sitemap.
What a failure means
If the response is not XML with a urlset or sitemapindex element, it is reported as not a sitemap at all, which usually means a catch-all page, a login wall or an error page is answering instead. Relative locs are an error because crawlers require absolute URLs. Cross-host and duplicate entries are warnings that waste the crawl budget the file exists to protect.
How to fix it
- Serve XML, not HTML. A 404 handler that returns a styled page with status 200 is the usual cause of a sitemap that reads as a normal web page.
- Make every loc an absolute https URL on the same host as the sitemap.
- Split past 50,000 URLs into a sitemap index of child sitemaps rather than one giant file.
- Remove duplicates before publishing. They add nothing and make the file slower to read.
A typical failure, worked through
The setupA store moves to a new CDN. The origin no longer has /sitemap.xml, and the CDN answers unknown paths with its marketing 404 page, returned as 200.
What the check reportsThe check finds no urlset or sitemapindex and reports that the response is not a sitemap. Search Console reports it could not fetch the file while it still loads perfectly in your browser.
The pointThe failure is the status and content type, not the URL. Fix the route or submit the path the platform actually serves.