Since May 2026, Google Search Console has reported "Sitemap could not be read" (list view: "Couldn't fetch", 0 discovered pages) for every sitemap on two production domains I host on Vercel: dogshow.lol (project dogshow) and www.dollarbets.lol (project dollarbets). After eliminating every response-level variable, a controlled cross-host experiment isolates the serving platform itself. Posting here because Hobby-plan support routed me to the community; I believe this is a platform-level bug worth engineering's attention.
What we ruled out (each with a deploy + fresh GSC submission)![]()
- Content - the XML validates clean against sitemaps.org (no BOM, no control chars, valid element order/values). A plain-text sitemap (one URL per line) also fails, so it is not XML parsing.
-
- Headers - set
Content-Type: application/xml; charset=utf-8andContent-Disposition: inline(removing thefilename=param Vercel adds to static files). Still fails. -
- Google-side fetch caching - submitted cache-busted, never-before-fetched URLs (
sitemap.xml?v=cd2). Read fresh, still fails. -
- Static serving path - moved
/sitemap.xmlbehind a 307 redirect to a Python serverless function returning identical bytes with explicit headers. Google read it the same day. Still fails. -
- Compression - not the discriminator; the working non-Vercel host (below) also serves brotli to br-accepting clients.
- Meanwhile, on the same domains: GSC URL Inspection live test on the sitemap URL itself returns "URL is available to Google", and regular pages crawl and index normally. Only the sitemap-processing pipeline fails, and only on the Vercel-served hosts.
- Static serving path - moved
- The decisive experiment (23 Aug): I proxied the byte-identical sitemaps through a non-Vercel host (a Node service on Render) and submitted them in the same Search Console account:
- Google-side fetch caching - submitted cache-busted, never-before-fetched URLs (
-
headshotswithabird.com/dogshow-sitemap.xml-> Success, 89 pages discovered, read within minutes-
headshotswithabird.com/dollarbets-sitemap.xml-> Success, 110 pages discovered, read within minutes
- Same bytes, same GSC account, same day. The only variable changed was the serving host. Months of failure on Vercel; instant success off it.
- Conclusion: something in the interaction between Vercel's edge and Google's sitemap fetcher specifically (which evidently behaves differently from Googlebot's page fetcher) breaks sitemap retrieval at a level below response headers, compression, and static-vs-function serving - plausibly connection/TLS/protocol-level handling of that particular client. I can't see below the response layer from my side; Vercel can.
- Headers - set
- Happy to provide project IDs, deployment IDs, and exact GSC read timestamps, and to run further controlled tests on my projects. Has anyone else seen GSC sitemap failures on Vercel-hosted sites that page-level crawling doesn't explain?