Missing or invalid sitemap.xml in React
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 for React
A Vite SPA has no server, so generate the sitemap at build time (a script or a plugin like vite-plugin-sitemap) and emit it into the static output.
npm i -D vite-plugin-sitemap
# configure it in vite.config.ts with your route listSteps
- 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
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.