Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

XML Sitemap Validator

Check an XML sitemap against the protocol and Google’s rules.

SEO Uses live data Free, no sign-up

Sitemap to check

A sitemap, sitemap index, .xml.gz or .txt sitemap. MySmartCoPilot’s server downloads it and your browser checks the first 2 MB; upload the file to check all of it.

Next steps

About the XML Sitemap Validator

Check a sitemap before search engines do. Enter its URL (gzip .xml.gz files work), upload the file or paste the XML: the validator reads it like a strict XML parser and then checks it against the sitemaps.org protocol and Google’s sitemap documentation — every problem with its line number and a plain-language fix.

It covers URL sets and sitemap indexes, text sitemaps and RSS/Atom feeds, and the image, video, news and hreflang (xhtml:link) extensions. You get the URL count against the 50,000 limit, the size against 50 MB, a table of every URL with CSV export, and — on request — the live HTTP status of up to 50 sample URLs, to catch redirected, missing or noindexed pages that shouldn’t be listed.

How to use it

  1. Choose URL and enter the sitemap’s full address — often /sitemap.xml or /sitemap_index.xml on your site, and robots.txt usually lists it — or choose Upload or Paste.
  2. For an upload or paste, optionally enter Where the file lives to check that every URL is inside the sitemap’s scope.
  3. Press Validate. Read the summary first: valid, valid with warnings, or errors that can make search engines reject the file.
  4. Open each problem to see the exact lines. Fix errors first — an unescaped & or a missing namespace can make the whole file unreadable.
  5. For a sitemap index, press Validate next to a child sitemap to check it. Press Check status to test sample URLs, then download the URL list as CSV or the report as text.

Examples

The most common error: an unescaped ampersand
Input
<loc>https://www.example.com/shop?category=tea&sort=price</loc>
Result
Error — Unescaped “&” characters. Write it as &amp;: ?category=tea&amp;sort=price

In XML a bare & starts an entity, so strict parsers stop reading the file there.

A lastmod that isn’t a W3C date
Input
<lastmod>2026-31-09</lastmod>
Result
Error — Invalid lastmod dates. Use 2026-09-30, or 2026-09-30T14:05:00+05:30.

Month and day are swapped. A time needs a time zone (Z or +05:30).

URLs outside the sitemap’s folder
Input
https://www.example.com/blog/sitemap.xml listing https://www.example.com/shop/item
Result
Warning — URLs outside the sitemap’s scope.

A sitemap in /blog/ only covers /blog/ and below. Move it to the site root, or submit it in Search Console.

Common uses

  • Finding out why Search Console says “Sitemap could not be read” or “Couldn’t fetch”.
  • Checking a sitemap generated by a plugin, CMS or script before submitting it.
  • Auditing a site migration: no redirected, 404 or noindex URLs left in the sitemap.
  • Validating image, video, news and hreflang annotations, including missing return links.

What is checked

  • XML: well-formed markup, the five escapes (&amp; &lt; &gt; &quot; &apos;), no HTML entities such as &nbsp;, the <?xml?> declaration at the very start, UTF-8 encoding, and declared namespace prefixes. DOCTYPEs are reported and never processed.
  • Structure: <urlset> or <sitemapindex> with the namespace http://www.sitemaps.org/schemas/sitemap/0.9; one <loc> per <url>; only loc, lastmod, changefreq and priority from that namespace.
  • URLs: absolute http(s), under 2,048 characters, percent-encoded, no #fragments, no duplicates, and inside the sitemap’s scope (same protocol, host and port; same folder or below).
  • Dates and values: lastmod in W3C Datetime (YYYY-MM-DD, or with a time and time zone), dates in the future, changefreq and priority values.
  • Limits: 50,000 URLs and 50 MB (52,428,800 bytes) uncompressed per file, also for indexes.
  • Extensions: image:image/image:loc (≤ 1,000 per URL); video required tags, durations and dates; news publication, language, date and title, and the two-day freshness rule; xhtml:link hreflang codes, self-references and return links.

What Google does with the optional tags

Google ignores <priority> and <changefreq>, and uses <lastmod> only when it is consistently and verifiably accurate — it should be the date of the last significant change to the page, not the time the sitemap was generated. A sitemap is a hint: listing a URL does not guarantee it is crawled or indexed, so also check single pages with the indexability checker.

Sources: Google Search Central, Build and submit a sitemap and Manage sitemaps with a sitemap index; sitemaps.org protocol; W3C Date and Time Formats.

How URL checks and status checks work

With a URL, MySmartCoPilot’s server downloads the file (following up to 10 redirects), unpacks gzip, checks that the bytes are valid UTF-8 and returns the first 2 MB to your browser, which does all the validation. Requests come from Cloudflare’s network as MySmartCoPilotBot/1.0; private, local and cloud-metadata addresses are refused, and every redirect is checked again.

Check status picks up to 50 URLs spread across the list and sends them to the server in at most five requests of 10 URLs from one host (when the sample spans more hosts, the hosts with the most URLs are checked). Each URL is requested once with GET — redirects are not followed and page bodies are not read — so you see exactly what a crawler gets first: 200, a redirect and its target, an error, or a noindex in the X-Robots-Tag header. For a sitemap index the child sitemaps are checked instead; a noindex on a sitemap file is normal and is not reported.

Limitations

  • In URL mode only the first 2 MB (after unpacking) is checked. Download the file and upload it here to check all of it — uploads are checked on your device up to 64 MB.
  • Status checks cover a sample of up to 50 URLs per run and only read the response headers, so a noindex in the page’s HTML is not seen — use the indexability checker for single pages.
  • Return-link checks for hreflang only see the URLs in this one file; alternates listed in other sitemaps are not followed.
  • The XML schemas are applied as described here, not by a full XSD engine; elements from unknown namespaces are reported and otherwise ignored.
  • Each visitor can run a limited number of URL checks per hour (and the whole site a limited number per day) to stay within free hosting limits.

Privacy

Uploaded and pasted sitemaps are checked in your browser and never leave your device. For a URL, MySmartCoPilot’s server downloads the sitemap and passes it to your browser without storing it. When you press “Check status”, the sampled URLs are sent to the server, which requests them; the server log records only host names, status codes and times — never full URLs or your IP address.

Frequently asked questions

What does “Sitemap could not be read” in Search Console mean?

Usually the file isn’t valid XML: an unescaped &, an HTML entity such as &nbsp;, text or a blank line before <?xml, a missing namespace, or an HTML page (often a login, error or cookie page) returned instead of the sitemap. Validate it here by URL to see what the server actually sends.

How many URLs can a sitemap have?

At most 50,000 URLs and 50 MB (52,428,800 bytes) uncompressed per file. For more, split the URLs across several sitemaps and list them in a sitemap index — which itself can list up to 50,000 sitemaps.

Should I use priority and changefreq?

They are valid, but Google ignores both. Spend the effort on accurate <lastmod> dates instead: Google uses lastmod when it is consistently accurate.

Can a sitemap list URLs from another domain or folder?

By default a sitemap only covers URLs on its own protocol, host and port, in its own folder or below — a sitemap at /blog/sitemap.xml can’t list /shop/ pages. Cross-domain sitemaps work only when you prove ownership: submit them in Search Console for each site, or reference the sitemap from the other site’s robots.txt.

Does it support .xml.gz files?

Yes. gzip files are recognised by their content (not just the name), unpacked and checked; the 50 MB limit applies to the unpacked size. Text (.txt) sitemaps and RSS/Atom feeds are supported too.

Why check the status of the URLs?

A sitemap should list only canonical URLs that return 200. Redirected, 404, 5xx or noindex URLs waste crawling and appear as errors in Search Console. The status check samples up to 50 URLs so you can spot a pattern quickly.

Is my sitemap uploaded anywhere?

Not when you upload or paste it — the file is checked in your browser. Only the URL mode and the optional status check use MySmartCoPilot’s server, and nothing is stored.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.