SITEMAP CHECKER

XML sitemap validator

Paste a sitemap or sitemap-index URL. We parse the XML, flag HTML bodies and unusable lastmod values, and sample child sitemaps when the file is an index.

How to validate an XML sitemap

  1. Enter the complete sitemap or sitemap-index URL.
  2. Run XML Sitemap Checker.
  3. Confirm Sitemap type: a standard URL sitemap or a sitemap index containing child sitemap locations.
  4. Fix delivery and lastmod findings before you treat the file as a discovery list.

Reading your results

The report opens with the HTTP status (for example HTTP 200), XML content type, UTF-8 encoding, and Valid XML. If the body is an HTML page, those rows fail before loc checks matter.

Sitemap root expects <urlset> or <sitemapindex>. Sitemap type then labels a Standard URL sitemap, a Sitemap index containing child sitemap locations, or a URL sitemap with image, video, or news extensions. Sitemap namespace should be the sitemaps.org namespace.

URLs found counts loc entries on a urlset; Sitemaps found counts child files on an index. Required loc values, Absolute URLs, URL length (2,048 characters), Host consistency, and Unique entries inspect those locations. Entry limit is 50,000. Uncompressed size limit is 50 MiB.

Last modified dates accepts real YYYY-MM-DD values or complete W3C datetimes. Empty lastmod is allowed. Bounded child sitemap validation fetches at most 12 children, 2 MiB per child, on a sitemap index.

Google ignores priority and changefreq; this validator does not treat them as ranking levers. A clean file is a structural check, not proof the listed URLs are indexed.

Worked example

We retrieved https://solviewer.site/sitemap.xml on 23 September 2026. HTTP 200, content type application/xml, UTF-8 encoding valid. Sitemap root was a urlset (Standard URL sitemap) with 22 <loc> entries and 1,781 bytes.

Last modified dates reported no lastmod values. lastmod is optional; this file simply omits it rather than inventing timestamps. The loc list includes every public tool URL on the origin, including a few noindex helpers that are maintained separately and are not the subject of this example.

SolViewer XML sitemap validator showing a urlset with 22 loc entries and no lastmod values
Checked on 23 September 2026.

Common problems and fixes

  • Search Console says “Sitemap is HTML” or “appears to be an HTML page”. Cause: the sitemap URL returned a webpage, a login wall, or a styled error, even if a download looks like XML on your laptop. Fix: serve XML at that URL with an XML content type, and confirm this checker’s Valid XML and Sitemap root rows.
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      <url><loc>https://example.com/</loc></url>
    </urlset>
  • Last modified dates warns on values that look like dates. Cause: the string is not a real calendar day or a complete W3C datetime. Unix timestamps, “yesterday”, and impossible days fail. Fix: emit YYYY-MM-DD or a full timestamp such as 2026-09-23T12:00:00+00:00, or omit lastmod.
    <lastmod>2026-09-23</lastmod>
  • Sitemap type is a sitemap index, but you expected URLs. Cause: the root is <sitemapindex>, so loc values must be sitemap files, not webpages. Fix: point each child loc at a urlset, then read Bounded child sitemap validation for the sample.
  • priority or changefreq changed and nothing happened in search. Cause: Google ignores those fields. Fix: spend the time on accurate loc values and real lastmod, as described in Google’s sitemap guidance.
  • Absolute URLs fails on /page paths. Cause: loc must be an absolute HTTP(S) URL. Fix: write the full address, including the scheme and host.
  • Entry limit or Uncompressed size limit fails. Cause: a single file exceeded 50,000 loc values or 50 MiB uncompressed. Fix: split into multiple urlsets and a sitemap index, following the sitemaps.org protocol.
  • Host consistency warns on another domain. Cause: loc uses a different host than the sitemap. Fix: keep entries on the sitemap host, or configure cross-site ownership before submitting foreign URLs.

Sitemap is HTML, and lastmod that is not a date

The “Sitemap is HTML” error is a delivery mismatch. Google fetched the sitemap URL and received an HTML document: a theme 404, a CDN error page, or a trailing-slash redirect into a webpage. Your CMS export can still be valid XML on disk. This checker tells you whether the live URL is a urlset, a sitemap index, or something else.

A related failure is lastmod that is not a date. The protocol allows omitting lastmod. It does not allow a placeholder. We accept only a real YYYY-MM-DD day or a complete W3C datetime. A build stamp applied to every URL on every deploy is legal XML and still poor signal; if you cannot maintain real modification times, leave the field out, as the SolViewer sitemap does.

We do not crawl every listed URL. Child indexes are sampled (at most 12 files). Status codes, canonicals, and noindex on those URLs need a page-level check such as the SEO Checker.

How this check works

XML Sitemap Checker retrieves the URL you enter, parses it as XML, and classifies the root as a urlset or a sitemap index. It then inspects loc values, uniqueness, host, length, and lastmod format with validateSitemapDate.

Size and entry caps follow the sitemaps.org protocol (50,000 URLs and 50 MB uncompressed). Google’s build-sitemap documentation is why we ignore priority and changefreq and treat lastmod as an optional, real timestamp. A sitemap index triggers Bounded child sitemap validation as a structural sample, not a crawl of every loc.

We retrieve sitemap XML using the documented public-request limits.

Frequently asked questions

What format does lastmod need?

A real calendar date as YYYY-MM-DD, or a complete W3C datetime with time and zone. Anything else is flagged. The field is optional.

Do priority and changefreq do anything?

Not for Google. You can leave them in for other consumers, but this validator will not treat them as crawl-priority controls.

How do I fix “Sitemap is HTML”?

Make the sitemap URL return XML, not a webpage. Check HTTP status, content type, and Sitemap root here, then resubmit in Search Console after the live URL is a urlset or sitemap index.

How big can a sitemap be?

50,000 loc values and 50 MB uncompressed per file. Split larger lists with a sitemap index.

Does a valid sitemap mean the URLs are indexed?

No. It means the file parsed and the loc values look well-formed. Indexation still depends on crawl access, duplicates, and the search engine.

Related tools

  • Robots.txt Checker — confirm the Sitemap line that points at this file.
  • SEO Checker — inspect a listed URL for canonical and noindex conflicts.
  • View Source — compare a loc against the HTML that URL actually returns.

Public URL requests follow the shared fetch limits on the About page.