vibecheck0.3.0
Search visibilityseositemap-missingwarning

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.

Symptoms

  • /sitemap.xml returns a 404 or your SPA’s index.html
  • New pages take a long time to appear in search
  • Search Console reports no submitted sitemap
  • Orphaned pages (no inbound links) never get indexed

How VibeCheck catches it

In your widget · Problems

warningseoMissing 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

  • No sitemap is generated at build or request time
  • The SPA dev server returns index.html for /sitemap.xml, so it is not real XML
  • The sitemap exists but is not referenced from robots.txt

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.

  1. Generate an XML sitemap of your indexable URLs at build or request time
  2. Serve it at /sitemap.xml with an application/xml content type
  3. Add a Sitemap: line to robots.txt and submit it in Search Console
sitemap.xmlxml
<?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.xml as missing unless it responds 2xx with an XML content type. A SPA dev server returning index.html for 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 to robots.txt so crawlers find it even before you submit it in Search Console.