Sitemap is served but cannot be parsed
Your site serves a sitemap at its published location, but for example a timeout or a 404.
Why it matters
Your site serves a sitemap at its published location, but for example a timeout or a 404. Search engines and AI crawlers that fetch it get nothing usable, so the site is discovered only by following links — while everything looks correctly configured from the outside, because the URL returns 200. The common causes are a framework returning an HTML error or redirect page at this path, or a template emitting the sitemap with a stray character or unescaped ampersand in a URL.
How ShipReady detects it
Sitemap health — whether the sitemap a site publishes can actually be used. PRESENCE IS NOT CHECKED HERE. `missing-sitemap-xml` in readiness.py already reports a sitemap that does not exist, and reporting it twice would double-count one defect across two pillars. This module stays silent unless a sitemap is served, and then asks only whether it works: does it parse, does it list anything, and is it maintained. That split is deliberate. "You have no sitemap" is a launch-readiness gap — a box left unticked. "You have a sitemap and it is broken" is a discovery problem, because the site looks configured to its owner while search engines and AI crawlers get nothing from it, which is exactly the kind of silent failure this pillar exists to surface.
Detection is deterministic. ShipReady reports this only when it observes the condition directly, and prefers to miss a real problem over inventing one. Rule version 1.1.0.
How to fix it
This is the prompt ShipReady puts in your report — written to be pasted straight into Cursor, Claude Code, or whichever assistant built the app.
Your site returns 200 at /sitemap.xml but the document cannot be parsed as a sitemap, so crawlers get nothing from it while everything looks fine from the outside. Fetch the URL yourself and look at the raw body: the usual causes are your framework returning an HTML page (an error, a redirect, or an SPA catch-all) at that path instead of XML, or a generated sitemap containing an unescaped ampersand or stray character in a URL — & must be written & inside <loc>. Make sure the response is served with Content-Type: application/xml, has <urlset> (or <sitemapindex>) as its root element, and validate it with Google Search Console's sitemap report after fixing.
Frequently asked questions
- What does "Sitemap is served but cannot be parsed" mean?
- Your site serves a sitemap at its published location, but for example a timeout or a 404.
- How serious is it?
- ShipReady rates this medium. Fix soon. Meaningfully weakens a defence or degrades how the site works.
- How do I fix it?
- Paste the fix prompt on this page into Cursor, Claude Code or your AI editor. It is the same prompt ShipReady puts in your report.
- Can I check my own site?
- Yes — ShipReady scans up to ten pages of any public site for free and reports this alongside every other check. The free report lists every issue it finds and shows full evidence and a fix prompt for the critical and high-severity ones; medium and low findings are counted and unlock on Pro.
Related checks
- Sitemap is published but lists no URLsmedium
- Sitemap has not been updated in over a yearlow
- Your robots.txt tells search engines to stay out of the whole sitehigh
- Your site tells search engines not to index ithigh
- AI assistants are blocked from reading your sitemedium
- Canonical URL points to a different domainmedium
Run this check on your site
ShipReady checks this and 193 other things across up to ten pages of your site, with an AI-ready fix for each. Free, no signup.