Missing or invalid sitemap.xml
A sitemap hands search engines a machine-readable list of your URLs plus last-modified dates, so they index new and updated pages faster and more completely. Without one, crawlers have to discover every page by following links, which misses orphaned pages and slows indexing. Client-rendered SPAs are hit hardest because there are few crawlable links to follow.
Framework fixes
Symptoms
How VibeCheck catches it
In your widget · Problems
Missing or invalid sitemap.xml
To your coding agent · MCP
agent › get_detected_issues
→ { detector: "seo", issue: "Missing or invalid sitemap.xml", threshold: "/sitemap.xml is not a 2xx XML response" }
The same string in your widget and in your agent’s context — no screenshot, no copy-paste.
Root causes
The fix
Generate a /sitemap.xml that lists every indexable URL with a <loc> and ideally a <lastmod>. Serve it with an XML content type, keep it under 50,000 URLs / 50MB per file (split with a sitemap index if larger), and reference it from robots.txt.
- Generate an XML sitemap of your indexable URLs at build or request time
- Serve it at
/sitemap.xmlwith anapplication/xmlcontent type - Add a
Sitemap:line torobots.txtand submit it in Search Console
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://acme.com/</loc>
<lastmod>2026-01-15</lastmod>
</url>
<url>
<loc>https://acme.com/pricing</loc>
</url>
</urlset>FAQ
- Do small sites need a sitemap?
- A well-linked small site can be crawled without one, but a sitemap still speeds up discovery of new and updated pages and is essential for SPAs with few crawlable links.
- Why does VibeCheck flag my sitemap as invalid?
- The probe treats
/sitemap.xmlas missing unless it responds 2xx with an XML content type. A SPA dev server returningindex.htmlfor unknown paths reads as “not a real sitemap”. - Should I reference the sitemap in
robots.txt? - Yes. Add a “
Sitemap: https://acme.com/sitemap.xml” line torobots.txtso crawlers find it even before you submit it in Search Console.