Every free sitemap validator on Google’s first page does the same thing: it parses your XML, counts your URLs, flags a missing <lastmod> here and there, and calls it a day. None of them fetch a single URL. None check whether your pages actually respond with 200 OK. None ask whether GPTBot, ClaudeBot, and PerplexityBot can even reach the URLs you’re listing.
Your sitemap is perfect for Google. But GPTBot, ClaudeBot, and PerplexityBot might not even see your URLs. That’s the gap this tool closes. Free, no signup, no watermark — a real sitemap validator that behaves like an SEO consultant with a bandwidth-heavy checklist.
Why sitemap validation looks different in 2026
For roughly a decade, “validate my sitemap” meant one thing: does the XML sitemap file parse against the sitemaps.org 0.9 protocol? That check is trivial — any competent XML parser can do it in milliseconds. But the interesting failures in 2026 have nothing to do with XML syntax:
- Your sitemap lists
/blog/old-post which now returns a 404, and Google logs a “URL is not in the sitemap” mystery in Search Console.
- Your robots.txt was updated to
Disallow: / for GPTBot last year to save on scraper bandwidth — and now nothing you publish shows up in ChatGPT search results.
- Your Yoast plugin quietly started emitting
<priority> and <changefreq> tags on every URL, adding 40% to your sitemap file size for tags that Google explicitly ignores.
- Your international site has 400 hreflang annotations, three of which use invalid ISO codes that Google silently rejects.
- Your Shopify sitemap index has 47 child sitemaps and 12,000 URLs — and your last “validator” only opened the parent file.
None of these are XML syntax problems. All of them cost you visibility. A modern sitemap validator has to catch them.
What this sitemap validator actually checks
The tool runs 50 rules across 11 categories. Here’s what each category does and why it matters — beyond what any XML syntax checker can tell you.
1. Live URL health across five different crawlers
For every URL in your sitemap (up to 500 by default, 1000 with the Expand toggle), we fire five concurrent HTTP requests — one identifying as Chrome (a real user), one as Googlebot, one as GPTBot, one as ClaudeBot, and one as PerplexityBot. For each, we record the HTTP status code, the redirect chain, any <meta name="robots" content="noindex"> tag in the returned HTML, any X-Robots-Tag: noindex response header, and the canonical URL declared on the page.
This catches: 4xx errors, 5xx errors, redirect chains, cross-domain redirects (Google usually ignores those in sitemaps), URLs that redirect to another URL also in the sitemap (redundant listing), noindex pages that shouldn’t be in a sitemap at all, and canonical mismatches (the page tells Google “the real URL is somewhere else,” which means the sitemap listing gets ignored).
2. AI Discoverability score with per-crawler breakdown
The AI Discoverability score is unique to this tool. It measures the percentage of your sitemap URLs that are simultaneously (a) returning HTTP 200 for GPTBot, ClaudeBot, and PerplexityBot, (b) not blocked by your robots.txt for those crawlers, (c) not carrying a noindex directive, and (d) self-canonical. You get an aggregate 0-100 score plus a breakdown per AI crawler.
A common failure pattern: sites unblocked ClaudeBot but forgot GPTBot, or added a User-agent: GPTBot / Disallow: / rule during a scraper-bandwidth panic in 2023 and never removed it. The per-crawler breakdown surfaces this immediately — you’ll see something like “GPTBot 12%, ClaudeBot 100%, PerplexityBot 100%” and know exactly which crawler you’re invisible to.
3. robots.txt cross-check per URL per crawler
We fetch your robots.txt, parse it with a custom implementation that matches Google’s own longest-match precedence rules (not the stdlib urllib.robotparser, which handles wildcards and $ anchors incorrectly), and cross-check every URL in your sitemap against it — separately for each of the five crawlers.
We flag two situations. ROBOTS-URL-DISALLOWED-001 means Googlebot is blocked from a URL you’ve listed — a critical error, because it’s a self-contradicting signal Google will treat as a mistake. ROBOTS-URL-DISALLOWED-AI-ONLY-001 means the URL is allowed for Google but blocked specifically for one or more AI crawlers — the AEO-era killer rule.
4. Framework attribution with platform-specific fixes
Every fix in the audit is prefixed with the exact admin path for your CMS. We detect 17 platforms from sitemap signatures: Yoast SEO, Rank Math, All in One SEO, Shopify, Webflow, Wix, Squarespace, Ghost, Drupal, Joomla, next-sitemap (Next.js), @nuxtjs/sitemap (Nuxt), @astrojs/sitemap (Astro), gatsby-plugin-sitemap, svelte-sitemap, Framer, and WooCommerce.
If you’re on Yoast, every fix starts with “In WordPress admin → SEO → General → Features …” instead of a generic XML snippet you have no idea where to paste. If you’re on Next.js, we point at your next-sitemap.config.js. If Shopify, we tell you which Shopify admin screen. This is what an SEO consultant would do — most validators leave you Googling.
5. Fuzzy duplicate detection with canonical suggestions
Exact duplicates are easy to catch — anyone can do it. The real crawl-budget killers are near-duplicates: /page vs /page/, /Page vs /page, /page vs /page?utm_source=newsletter. We cluster these fuzzily using the rapidfuzz library and suggest a canonical URL for each cluster based on Google’s own stated preferences: shorter wins, no query parameters wins, no trailing slash wins, lowercase wins.
You get one aggregate finding per cluster, not a spam of duplicates for a single problem. If /products/widget, /products/widget/, /products/Widget, and /products/widget?ref=fb all resolve to the same page, you see one DUPE-TRACKING-PARAMS-001 finding with all four variants and a “Suggested canonical: /products/widget” hint.
6. Google 2026 deprecation flags with citations
Two tags — <priority> and <changefreq> — have been ignored by Google for years. Most free validators still throw errors when they’re missing. We flag their presence as info-level findings, with a link straight to Google’s own documentation (last updated 2026-07-08) which literally states: “Google ignores <priority> and <changefreq> values.” Removing them shrinks your sitemap file, speeds up fetches, and stops sending Google signals it disregards.
7. hreflang validation for international sitemaps
Six INTL rules cover xhtml:link hreflang annotations: missing x-default, invalid ISO 639-1 codes (like xyz-INVALID), missing self-referencing hreflang, missing reciprocal links (A points to B but B doesn’t point back), conflicting hreflang directives for the same URL, and hreflang targets that return 4xx/5xx. If you run a multi-region or multi-language site, this catches issues that Google Search Console reports vaguely as “hreflang doesn’t match” without telling you which URL.
8. Sitemap index deep crawl
Most large sites use a sitemap index — a parent XML file that references multiple child sitemaps. Shopify, WooCommerce, Yoast on any large site, Rank Math, Next.js with next-sitemap, Astro, and Gatsby all default to this pattern. Most validators only open the parent file. We follow every child sitemap up to 200 deep, with breadth-first traversal and cycle detection (in case a child accidentally references the parent).
Reading your audit: what the three scores mean
Every audit produces three scores from 0 to 100. Each is calculated from the severity-weighted count of findings in specific categories, so they’re objectively comparable across runs.
Schema Health covers XML-level correctness: syntax errors, invalid schema, deprecated tags, hreflang issues, and structural limits (50k URLs, 50MB file, 200 child sitemaps in an index). A score under 90 means your sitemap has structural problems most crawlers will parse around, but which cost you clarity.
Google Compliance covers everything Google specifically flags: URL health (404s, redirect chains, noindex conflicts), robots.txt parity, duplicates, index integrity, and gzip compression on large files. A score under 75 means Google is actively wasting crawl budget on this sitemap, or dropping URLs from indexation because of contradictory signals.
AI Discoverability — the differentiator — is the percentage of your URLs that are visible to GPTBot, ClaudeBot, and PerplexityBot simultaneously. Click “Per-crawler” under the gauge to see individual crawler scores. If your Google Compliance is 95 but AI Discoverability is 40, you’re winning traditional SEO and losing AEO — a bigger and bigger gap in 2026.
Fixing the most common sitemap issues
404 URLs in your sitemap
The most common finding. Either the URL was deleted and the sitemap generator didn’t clean up, or the URL was renamed and only the old URL is in the sitemap. Fix: remove the URL from the source (delete the CMS post, or exclude it from your sitemap plugin’s rules), then regenerate. For Yoast: SEO → Search Appearance → check the post type’s visibility. For Next.js: adjust your next-sitemap.config.js exclude array.
URLs that redirect to another URL
Google explicitly recommends listing only final canonical URLs. Every redirect wastes crawl budget and dilutes ranking signals. Replace the redirecting URL with its final destination. Bonus: if the final URL is also listed separately in the sitemap, we flag that as HEALTH-REDIRECT-IN-SITEMAP-001 — you have redundant listings taking crawl budget.
Pages with noindex meta tag
A page with <meta name="robots" content="noindex"> tells Google “don’t index me.” Including such a URL in a sitemap sends the opposite signal — “please index me.” Google treats this as a mistake and picks one signal to follow (usually noindex wins). Either remove the noindex tag (if you actually want indexing) or remove the URL from your sitemap (if you don’t).
Canonical mismatches
If a page’s <link rel="canonical" href="..."> points to a different URL than the one listed in your sitemap, Google will follow the canonical and drop the sitemap URL. Common cause: your CMS auto-generates canonicals from URL structure but your sitemap plugin uses a different rule. Reconcile by either updating the canonical or removing the non-canonical URL from the sitemap.
Missing Sitemap: directive in robots.txt
Add one line to your robots.txt:
Sitemap: https://yoursite.com/sitemap.xml
This helps every search engine and AI crawler discover the sitemap without you manually submitting it. For a sitemap index, point at the index URL, not individual child sitemaps.
Duplicate URLs with tracking parameters
If your sitemap contains /product/widget, /product/widget?utm_source=email, and /product/widget?ref=partner, you’re telling Google those are three distinct URLs. They’re not. Strip tracking parameters at sitemap-generation time. In WordPress with Yoast/Rank Math: sitemap plugins typically don’t emit tracking params by default, so this usually means a theme or custom plugin is doing it — audit your <link> tag generators.
Making your sitemap AI-crawler friendly
AEO (Answer Engine Optimization) is the 2026 term for making sure your content appears when someone asks ChatGPT, Claude, Perplexity, or Gemini a question. The mechanic is simple: the AI engine runs a search, fetches the top URLs, and cites them in its answer. If your URLs aren’t fetchable by the AI’s crawler, you’re invisible in the answer — no matter how well you rank in traditional Google search.
Check your robots.txt for these user agents and make sure they’re not blocked from important content:
GPTBot — OpenAI’s crawler. Used by ChatGPT search and ChatGPT’s browse mode.
ClaudeBot — Anthropic’s crawler. Used by Claude’s web browsing.
PerplexityBot — Perplexity’s crawler. Also uses Perplexity-User for on-demand fetches.
OAI-SearchBot — OpenAI’s search-specific crawler (separate from GPTBot, which is for training). Coming to this tool in v1.1.
Google-Extended — Google’s Gemini training crawler. Separate from Googlebot. Coming to this tool in v1.1.
A common defensive robots.txt pattern from 2023-2024 blocked GPTBot to reduce scraper bandwidth. That made sense when GPT-4 was training. In 2026, GPTBot is also OpenAI’s search crawler — blocking it means you don’t appear in ChatGPT’s search results, which have real traffic. Reconsider.
Sitemap best practices by platform
WordPress (Yoast SEO, Rank Math, AIOSEO)
All three plugins auto-generate a sitemap index at /sitemap_index.xml and split child sitemaps by post type: /post-sitemap.xml, /page-sitemap.xml, /category-sitemap.xml, /product-sitemap.xml for WooCommerce, and so on. Fix common issues via the plugin admin, not by editing XML directly.
If your Yoast sitemap includes tag pages, category pages, or attachment URLs you don’t want indexed, toggle them off in SEO → Search Appearance → per-post-type visibility. Rank Math uses SEO → Sitemap Settings with per-post-type toggles. AIOSEO uses All in One SEO → Sitemaps → General Sitemap.
Shopify
Shopify auto-generates /sitemap.xml as an index with child sitemaps for products, collections, pages, and blogs. You can’t edit the XML directly. To exclude a product: set it to unavailable in Products admin. To exclude a page: page-level SEO settings. For meta tag overrides: theme templates.
Webflow, Wix, Squarespace, Framer
All four generate /sitemap.xml automatically. Excluding pages happens via page-level SEO settings (“Hide page from search results” or similar). No XML editing.
Next.js, Nuxt, Astro, Gatsby, SvelteKit
All five use plugins that generate a sitemap at build time. Next.js uses next-sitemap with next-sitemap.config.js. Nuxt uses @nuxtjs/sitemap configured in nuxt.config.ts. Astro uses @astrojs/sitemap in astro.config.mjs. Gatsby uses gatsby-plugin-sitemap in gatsby-config.js. All support filters, custom pages, and hostname configuration — check each plugin’s docs for the specific API.
Ghost
Ghost generates sitemaps automatically at /sitemap.xml (index) with children like /sitemap-posts.xml. Exclude specific posts by setting their access level to “Members only” or “Paid” (which excludes them from public sitemaps), or use routes.yaml for custom routing.
Sitemap index vs single sitemap: when to use which
The sitemaps.org protocol caps a single XML sitemap file at 50,000 URLs or 50 MB uncompressed. If you’re under both, a single sitemap is simpler. Over either, you need a sitemap index that references multiple child sitemaps.
A few reasons to use a sitemap index even when you’re under the limits:
- Logical separation — /post-sitemap for blog posts, /page-sitemap for evergreen pages, /product-sitemap for e-commerce. Makes debugging in Google Search Console easier since coverage errors are reported per child sitemap.
- Change frequency isolation — Google fetches sitemaps opportunistically; a sitemap with 10,000 rarely-changing pages doesn’t need to be re-fetched as often as a sitemap with 100 daily-updated pages.
- Multi-language separation — /en-sitemap, /fr-sitemap, /es-sitemap. Combined with hreflang, this gives you clean per-language indexation reporting.
This tool follows sitemap indexes up to 200 child sitemaps deep, with breadth-first traversal and cycle detection. For 99% of real sites that’s plenty.
Common myths debunked
Myth: “I need to set <priority> on every URL to tell Google what’s important.” False. Google has ignored <priority> for years. Set it or don’t — Google uses its own signals (internal linking, click data, freshness) to determine importance.
Myth: “<changefreq> controls how often Google crawls my pages.” False. Google uses observed change patterns and page importance to schedule crawls. <changefreq> is ignored.
Myth: “My XML sitemap must be at /sitemap.xml.” False. Any URL works, as long as you declare it in robots.txt with a Sitemap: directive or submit it in Search Console. Popular defaults: /sitemap.xml, /sitemap_index.xml, /sitemap-index.xml.
Myth: “Submitting the sitemap to Google via a ping URL forces re-crawl.” False and deprecated. Google removed the ping endpoint in June 2023. Just publish the sitemap and reference it in robots.txt — Google finds it.
Myth: “Big sitemaps hurt SEO.” False. Sitemap size is neutral. What hurts is a sitemap full of 404s, redirects, or noindex pages — Google wastes crawl budget on garbage. A clean 50,000-URL sitemap is fine.
Myth: “Sitemap validators are all the same.” Also false — that’s the whole reason this tool exists. Try any free competitor and search their output for “GPTBot,” “AI Discoverability,” or “framework-specific fix.” You won’t find them. Comparison table is in the sidebar.
Related tools
Sitemap validation is one piece of a technical SEO audit. For the rest:
- Schema Validator — validates JSON-LD, Microdata, and RDFa against schema.org v30 and Google’s 2026 structured data rules, with the same 5-crawler UA coverage.
- Meta Tag Checker — validates title, description, robots, canonical, and social meta tags across all 5 crawlers.
- Broken Link Checker — crawls your site and flags broken internal and external links with the exact page each broken link is on.
- Trailing Slash Checker — audits URL consistency across trailing-slash, www, and http/https variants.
- Open Graph Checker — validates Open Graph, Twitter Card, and other social preview tags.
All are free, no signup, and share the same underlying infrastructure — multi-crawler HTTP checks, framework attribution, and platform-specific fixes.
Get started
Paste your sitemap URL at the top of this page. Leave the five checkboxes ticked (URL health, AI crawlers, robots.txt, duplicate detection). Click Validate sitemap. Watch the URLs check in real time. Read your three scores, expand any issues you want to fix, and copy the platform-specific fix straight from the audit. Share the audit as a 48-hour link with a client or teammate if you need to.
No signup. No usage cap beyond the 1,000-URL health-check ceiling (500 by default). No paid tier planned. Just a sitemap validator that behaves the way one should in 2026 — treating your sitemap as a live thing crawled by five different agents, not a static XML file to be parsed.
Last reviewed August 2026 · this tool runs server.