XML Sitemap Health Validator avatar

XML Sitemap Health Validator

Pricing

$0.90 / 1,000 checked urls

Go to Apify Store
XML Sitemap Health Validator

XML Sitemap Health Validator

Validate XML sitemaps and sitemap indexes. Check listed URLs for HTTP status, redirects, response time, errors, and sitemap metadata.

Pricing

$0.90 / 1,000 checked urls

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

🗺️ Check sitemap URLs and find errors

Sitemap Validator is for SEO teams, developers, and site owners. It reads public sitemaps, checks each listed URL, and returns HTTP status, redirects, response time, sitemap metadata, and clear issue details.

📊 Returned data

Each saved row is one checked sitemap-listed URL. It includes the page and source sitemap, HTTP health, redirects, response time, sitemap metadata, and issue details. The Actor also saves a JSON report with totals for sitemap health and page issues.

The Actor saves the first eligible occurrence of a listed URL. If the same URL appears again, it is ignored.

🚀 Running the Actor

  1. Open the Input tab.
  2. Add one or more public sitemap URLs, sitemap-index URLs, website roots, bare domains, or robots.txt URLs.
  3. Set Maximum URLs to check to limit checks across all targets, or leave it empty to return all available results until the source is exhausted.
  4. Set Maximum index depth to control how many sitemap-index levels are followed. Use 0 to stay at the submitted or directly found sitemap.
  5. Run the Actor and open the dataset or JSON report.

The Actor reads XML URL sets, XML sitemap indexes, plain-text sitemaps, and gzip-compressed sitemap responses. It does not crawl unlisted pages, inspect page content, generate or submit sitemaps, or check search-engine indexation.

✍️ Input

FieldTypeWhat it does
targetsarray of stringsAdds 1–100 public sitemap, sitemap-index, website, domain, or robots.txt targets. Each value must use HTTP or HTTPS.
maxCheckedUrlsintegerStops after this many sitemap-listed URLs across all targets. Leave it empty to return all available results until the source is exhausted.
maxIndexDepthintegerSets how many nested sitemap-index levels to follow, from 0 to 10. Use 0 to check only the submitted sitemap.

This example is the default input from a successful Actor run:

{
"targets": [
"https://apify.com/sitemap.xml"
],
"maxCheckedUrls": 5,
"maxIndexDepth": 2
}

Targets must be public. No source-site login or API key is needed.

📦 Output

The dataset has one row for each sitemap-listed URL checked by the run.

FieldTypeWhat it does
pageUrlstringURL listed in the sitemap.
hoststringHost from the listed page URL.
sourceSitemapUrlstringSitemap file that listed the page URL.
parentSitemapIndexUrlstring or nullParent sitemap index, or null when the source sitemap was added or found directly.
indexDepthintegerDepth below the added or found sitemap target.
sitemapLastmodstring or nullListed last-modified value, when set.
changefreqstring or nullListed change frequency, when set.
prioritynumber or nullListed priority, when set.
urlStatusstringok, redirect, broken, timeout, unreachable, or malformed.
httpStatusinteger or nullHTTP response status, when a response was received.
finalUrlstring or nullFinal URL after redirects, when reached.
redirectCountintegerNumber of redirects followed.
responseTimeMsinteger or nullCheck time in milliseconds, when a request finished.
issueobject or nullIssue details, or null for a healthy URL.
issue.categorystringredirect, client_error, server_error, timeout, malformed_url, or network_error.
issue.messagestringShort reason for the issue.

Here is a full row from a successful run:

{
"pageUrl": "https://apify.com/",
"host": "apify.com",
"sourceSitemapUrl": "https://apify.com/sitemap/pages.xml",
"parentSitemapIndexUrl": "https://apify.com/sitemap.xml",
"indexDepth": 1,
"sitemapLastmod": null,
"changefreq": null,
"priority": null,
"urlStatus": "ok",
"httpStatus": 200,
"finalUrl": "https://apify.com/",
"redirectCount": 0,
"responseTimeMs": 631,
"issue": null
}

The Validation report link opens a JSON report with sitemap checks and totals for sitemap health and page issues. HTTP facts show what the Actor saw during the run and may change later.

💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each sitemap-listed URL checked and saved to the dataset. Invalid targets, unreachable sitemap files, empty sitemaps, and runs with no saved rows do not create this charge.

🔌 Integrations

Use the dataset with the Apify API, schedules, webhooks, and available Apify integrations. You can also export it as JSON, CSV, Excel, XML, RSS, or HTML.

❓ FAQ

Why did my run save no rows?

The target may not have a public sitemap, the sitemap may be empty, or the file may not have been reachable during the run. These cases are logged and skipped.

What happens when the same listed URL appears more than once?

The first eligible occurrence is saved. Later copies are ignored, so one row does not gather every sitemap or target that also contained the URL.

Can it validate a sitemap index?

Yes. It follows child sitemap files up to Maximum index depth.

Does it validate XML online?

It validates supported public sitemap XML. It is not a general XML validator for other XML document types.

Can it crawl my whole website?

No. It checks URLs found in supported sitemap files. Use Website URL Crawler when you need a rendered link crawl.

Does it show whether Google indexed a URL?

No. It reports sitemap and HTTP facts, not search-engine indexation.

📝 Changelog

  • 0.1: Added a JSON validation report with sitemap health, format, size, entry, and issue totals.
  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré