Sitemap Validator (sitemaps.org rules + optional URL status) avatar

Sitemap Validator (sitemaps.org rules + optional URL status)

Pricing

from $0.20 / 1,000 url entry validateds

Go to Apify Store
Sitemap Validator (sitemaps.org rules + optional URL status)

Sitemap Validator (sitemaps.org rules + optional URL status)

Validates XML sitemaps and sitemap indexes against the sitemaps.org protocol: namespace, 50,000-URL and 50 MB limits, absolute same-host locs, lastmod dates, changefreq and priority. Optionally checks each URL's HTTP status and redirects. Obeys robots.txt.

Pricing

from $0.20 / 1,000 url entry validateds

Rating

0.0

(0)

Developer

WrenTools

WrenTools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

36 minutes ago

Last modified

Share

Find out whether your XML sitemaps are actually valid before a search engine tells you they are not. Give it a sitemap, a sitemap index, or just your site (it reads the Sitemap: lines in robots.txt), and it checks every file and every <url> entry against the sitemaps.org protocol. Optionally it requests each listed URL once and reports the ones that are broken or redirect.

Broken links in a scheduled job: our Python and Node example checks every page your sitemap lists, writes the problems to a CSV, and exits with 1 when there is any.

For the pages themselves (titles, meta descriptions, headings, image alt text), run Own-Site SEO Audit.

What it checks

Each sitemap file

  • Well-formed XML with a urlset or sitemapindex root in the http://www.sitemaps.org/schemas/sitemap/0.9 namespace
  • At most 50,000 entries and 50 MB uncompressed; .gz sitemaps are decompressed with a size guard
  • An index that lists another index (not allowed by the protocol)
  • Fetch failures, and files that robots.txt blocks

Each <url> entry

  • <loc> present, absolute http(s), at most 2,048 characters, properly escaped, not duplicated
  • <loc> on the same host as the sitemap (cross-host entries are ignored by search engines)
  • <lastmod> in W3C datetime format, and not in the future
  • <changefreq> one of the seven allowed values; <priority> between 0.0 and 1.0
  • With status checking on: 4xx/5xx answers, network errors and redirects (a sitemap should list final URLs)

Robots.txt is obeyed for every request, and requests are spaced (500 ms by default). Only public internet addresses are fetched: a URL or redirect into a private, loopback or link-local network is refused.

Input

FieldTypeDefaultNotes
sitemapUrlsarray-Sitemap or index URLs.
siteUrlstring-Used when sitemapUrls is empty: robots.txt Sitemap: lines, else /sitemap.xml.
checkUrlStatusbooleanfalseRequest each listed URL once.
maxUrlsinteger5000Across all files.
maxSitemapFilesinteger50Including children of an index.
requestDelayMsinteger500Pause between requests.

Output

Dataset items of two types.

{"type": "sitemap-file", "url": "https://www.example.com/sitemap-pages.xml", "kind": "urlset",
"httpStatus": 200, "gzipped": false, "sizeBytes": 18234, "entryCount": 120, "entriesWithIssues": 3,
"errors": [], "warnings": [], "valid": false}
{"type": "url-entry", "sitemap": "https://www.example.com/sitemap-pages.xml",
"loc": "https://www.example.com/old", "lastmod": "2026-13-01", "changefreq": null, "priority": null,
"httpStatus": 301, "redirectedTo": "https://www.example.com/new", "statusChecked": true,
"issues": ["invalid-lastmod", "url-redirects"]}

A file's valid and entriesWithIssues count the sitemaps.org rules only: they are decided when the file is read, before any page is requested. A broken or redirecting page is reported in its own url-entry item and counted in SUMMARY.urlEntriesWithIssues.

Key-value store record SUMMARY: sitemaps checked, how many are valid, URL entries and how many have issues.

Pricing

Pay per event, no start fee:

EventPricePer 1,000
sitemap-file-validated$0.002$2.00
url-validated (rules only)$0.0002$0.20
url-validated-with-status (rules + one HTTP request)$0.0006$0.60

Limits

  • Image, video and news sitemap extensions are read as ordinary entries; their extra tags are not validated yet.
  • Sitemaps with a DOCTYPE or XML entities are rejected (sitemaps never need them, and they are a parser risk).
  • Memory: 1,024 MB by default (enough for 200,000 entries), 2,048 MB at most. Status checks wait on your server, so for a status-check run of a small sitemap 256 MB is enough.
  • A run stops early, with the entries checked so far saved and the reason in SUMMARY.stoppedReason, when its timeout is near or when status checks answer very slowly (on average over about 4 s per URL at 1,024 MB, 17 s at 256 MB). Every entry it returns from a status-check run was checked.

Support

Report problems in the Issues tab. We aim to respond within a few days.