AI crawler robots.txt checker for GPTBot, ClaudeBot and more
Paste a robots.txt to see which AI crawlers it blocks: GPTBot, ClaudeBot, Google-Extended, PerplexityBot and more. Free, runs in your browser.
XML sitemap validator: check sitemap XML for parse errors, namespace, loc, lastmod, changefreq, priority and URL limits. Free, runs in your browser.
Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.
Paste the raw XML of a sitemap and this validator checks it against the sitemaps.org protocol and Google’s sitemap documentation. It parses the text in your browser and never fetches a URL.
The validator runs two passes.
Syntax. The text is parsed with the browser’s DOMParser as text/xml. Malformed markup, such
as an unclosed tag or a bare &, produces a parse error, which the tool shows before anything else.
The protocol requires every data value to be entity-escaped, so & in a URL must be &.
Structure, on well-formed XML only:
urlset, declared in the sitemap 0.9 namespace. The protocol defines
urlset, url and loc as the required tags.url needs a loc holding an absolute URL. Google asks for fully qualified, absolute URLs
and says it crawls them exactly as listed.lastmod, if present, must be a W3C Datetime: a date such as 2026-09-01, or a full datetime
with seconds and a timezone.changefreq, if present, must be one of the seven protocol values: always, hourly, daily,
weekly, monthly, yearly or never.priority, if present, must be a number from 0.0 to 1.0.The syntax line reads “Well-formed XML.” or shows the parse error. Below it, three counts: URLs found, whether the count is within 50,000, and the file size.
url entries, a
missing or relative loc, or a file over a limit. Fix these first.lastmod, changefreq or priority. All three are optional,
and Google says it ignores changefreq and priority entirely. It uses lastmod only when the
value is consistently and verifiably accurate.Over 50,000 URLs, Google says to split the file into several sitemaps. You can then submit a single sitemap index file that lists them.
Inside a correct urlset root, paste these three entries:
<url><loc>https://example.com/</loc><lastmod>2026-09-01</lastmod></url>
<url><loc>/about</loc><changefreq>often</changefreq></url>
<url><loc>https://example.com/blog</loc><lastmod>01/09/2026</lastmod><priority>1.5</priority></url>
The syntax line reads “Well-formed XML.” and the root and namespace pass. The summary shows 3 URLs found, within 50,000. Then, in order:
url #2: missing or non-absolute <loc> ("/about").url #2: <changefreq> "often" is not one of the seven values.url #3: <lastmod> "01/09/2026" is not a valid W3C Datetime.url #3: <priority> "1.5" is not between 0.0 and 1.0.Write the loc as https://example.com/about, use monthly, 2026-09-01 and 0.5, and every
line turns to a pass.
/about instead of the full address. Google crawls the URL exactly as listed.often or biweekly.01/09/2026.It never fetches the URLs it finds, so it cannot confirm that a loc resolves or can be indexed.
It does not check encoding, though Google requires UTF-8. It cannot tell you which live pages are
missing from the file. Submit the sitemap in your search engine’s webmaster tools to see how it is
actually read.
No. It only parses XML you paste into the textarea, entirely in your browser. This avoids a CORS-dependent network fetch and means nothing you paste is sent anywhere, but it also means you have to copy the file's contents yourself.
The sitemap 0.9 namespace is a fixed identifier string defined by the protocol, not a link the browser visits. Sitemaps.org has never revised it, so a sitemap using any other string for that value is not a valid sitemap regardless of how the rest of the file looks.
No. It checks urlset sitemaps only. A file whose root is sitemapindex is reported as a failure because the root is not urlset. Validate each child sitemap the index lists instead.
The sitemaps.org protocol requires every data value to be entity-escaped, so an ampersand in a loc must be written as &. A bare ampersand makes the XML malformed, and this tool shows the parse error instead of running the other checks.
It means the file is well formed and structurally correct. It does not confirm that the listed URLs exist, return a 200 status, or are eligible for indexing, and it cannot check pages missing from the file entirely.
Paste a robots.txt to see which AI crawlers it blocks: GPTBot, ClaudeBot, Google-Extended, PerplexityBot and more. Free, runs in your browser.
RSS feed validator: paste feed XML to check RSS 2.0 and Atom 1.0 for parse errors, required elements, dates, guids, enclosures and URLs. Runs in-browser.
humans.txt generator: build a humans.txt file with TEAM, THANKS and SITE sections from the humanstxt.org template. Free, runs in your browser.
Image lazy loading checker: paste HTML to test every img tag for width and height, lazy loading on the likely LCP image. Free, runs in your browser.