Sitemap Health Monitor: find the pages that broke since yesterday.
It checks every URL in your sitemap for 404s, redirects, noindex and canonical problems. Then it tells you what is new, what is still broken and what got fixed. Alerts fire only for new problems.
$0.001 per URL checked ($1 per 1,000 URLs), plus Apify's standard $0.00005 start event per run.
You hear about a broken page once, the day it breaks.
What's new
0.1.11, released 12 Oct 2026
Added
A sitemap that fails to load (for example HTTP 404 or 500) or contains no URLs is no longer silent. The run shows a new sitemap-error notice that names each failing sitemap with its HTTP status or reason, and the run's status message says how many sitemaps failed.
Your webhook now also fires when a sitemap starts failing, not only when new issues appear. A sitemap that stays broken alerts once, not on every run. The summary lists these sitemaps in the new newSitemapErrors field. If one of your sitemaps is already failing, you get one alert on the first run after this update.
New charge-limit notice when the run's maximum charge is reached, telling you how many URLs were checked out of how many, so you know to raise the limit.
New discovery-root notice when your website URL has a path (like https://example.com/news/): sitemaps are always found from the site's root robots.txt, so the whole site is checked. Use Sitemap URLs to check one section.
New Webhook format option: send a chat message to Slack-compatible webhooks on other hosts (Mattermost, Rocket.Chat, Discord with /slack at the end of the URL), or always send the full summary JSON.
Fixed
Slack alerts now arrive. A Slack incoming webhook (hooks.slack.com) gets a readable message with the site, the new, open and fixed counts, up to 10 new issues with their URLs and reasons, and any sitemap that started failing. Before, Slack rejected the raw summary and no message was posted. Zapier, Make and other webhooks still receive the full summary JSON.
Sitemaps that use a namespace prefix (<sm:urlset> with <sm:loc>) are now read. Before, they were treated as empty and no pages were checked.
Sitemap entries with spaces around a CDATA block, or with extra spaces or attributes in the <loc> tag, are now read instead of being skipped.
A website URL without https:// (for example python.org) now works. Before, the run failed with “Not a valid URL”.
0.1.10, released 12 Oct 2026
Fixed
Running the tool on the same site with different sitemaps (for example one task for the whole site and one for news-sitemap.xml only) no longer mixes their results. Before, the smaller run reported the other run's issues as resolved, and the next full run reported them all as new again, with a fresh “first seen” date and an extra webhook alert. Each sitemap selection now keeps its own history.
Your existing history is kept. Runs that find the sitemap automatically compare with the same baseline as before. A task with its own sitemapUrls list starts from your earlier results for the pages in those sitemaps, so known issues stay “persisting” with their original “first seen” date and no extra alert is sent.
+−0.1.9, released 11 Oct 2026
Fixed
Security: sitemap, page and redirect addresses that point to private or internal networks are now also refused when written in IPv6 form, for example http://[::ffff:127.0.0.1]/. Public sites are checked exactly as before.
+−0.1.8, released 10 Oct 2026
Added
New issue type hreflang-mismatch for multi-language sites: flags pages whose hreflang language versions don't link back, return an error (e.g. 404), redirect, or are missing from your sitemap. The issue names each broken pair, e.g. en to de (https://example.com/de/): no return link.
Like every other issue, hreflang problems are reported as new, still-broken or fixed compared with the previous run, and trigger your webhook alert when new.
No extra cost: language versions fetched to verify a pair are not charged. If a version can't be verified this run (timeout, rate limit, bot protection), the earlier result is kept instead of a false alert.
+−0.1.6, released 10 Oct 2026
Added
New issue type robots-disallow: flags sitemap URLs that your robots.txt blocks for search engines (Google rules: longest match wins, Allow wins ties, * and $ wildcards).
robots.txt is fetched once per site; if it is temporarily unavailable (5xx, 429, timeout) you get a notice instead of false issues.
Changed
Clearer name and description in Apify Store: Broken Links, 404 & Noindex Checker.
Store description and README now say plainly what the tool is: a scheduled technical SEO audit and broken link checker, with a new Use cases section and a note on how it differs from a one-off site audit.
Listed under the Automation category too, and 4 ready-to-run example tasks: quick one-off scan, scheduled monitor with Slack/Zapier alert, post-deploy / migration QA, and a gentle multi-client check for small sites.
No extra cost for the robots check: each URL is still charged once.
+−0.1.5, released 10 Oct 2026
Added
Checks every URL in your XML sitemap: broken links (4xx/5xx), redirect chains, noindex, canonical mismatch, timeouts.
Scheduled runs compare with the previous run and report issues as new, persisting or resolved.
Webhook alert when new issues appear.
Output schema for Apify Store; default input runs out of the box.
Fixed
HTTP 429 (rate limiting, e.g. Shopify) is no longer reported as a broken link. The tool respects Retry-After, slows down per host and does not charge for rate-limited URLs.
Sites behind Cloudflare / WAF protection: blocked pages are not reported as broken and not charged; one clear notice with allowlist advice.
Runs with maxUrls no longer mark unchecked URLs as “resolved”.
Relative Sitemap: lines in robots.txt are resolved correctly.
Slow sitemaps: 60 s timeout with one retry; site discovery is capped at 2 minutes (no more 10-minute hangs).
No sitemap given: common locations (/sitemap.xml, /sitemap_index.xml, /wp-sitemap.xml, ...) are probed automatically.
+−How is this different from a broken link checker?
A link checker crawls your pages once. This checks the pages your sitemap promises to Google, remembers the last run and tells you only what changed: new problems, ones still open and ones fixed.
+−Do I need an Apify account?
Yes. The tool runs in your own Apify account and Apify bills the run. A new account gets a monthly free credit, which covers many small checks.
+−How do I get alerts in Slack?
Put a Slack, Zapier or Make webhook address in the input. It is called only when there are new problems, with the run summary: how many pages were checked, how many problems are new, still open or fixed, and each new one with its page address and what is wrong, for example a page that now answers 500.
+−What counts as a new problem?
A page that was fine in the last run and is not fine now: an error status, a redirect chain, noindex, a canonical pointing elsewhere, a robots.txt block or a broken hreflang pair.
+−Does it check hreflang on multi-language sites?
Yes. It flags language versions that do not link back, return an error, redirect or are missing from your sitemap. Fetching those versions is not charged.
+−What does a daily check of my site cost?
$1 per 1,000 URLs, plus a $0.00005 start event per run. A site with 500 pages checked every day costs about $0.50 a day, about $15 a month.
+−Does it follow links that are not in the sitemap?
No. It checks exactly the URLs your sitemaps list, up to 10,000 per run.