Sitemap & Feed Freshness Monitor avatar

Sitemap & Feed Freshness Monitor

Pricing

Pay per usage

Go to Apify Store
Sitemap & Feed Freshness Monitor

Sitemap & Feed Freshness Monitor

Monitor public sitemaps and RSS/Atom feeds for new, stale, changed, and unreachable URLs.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

X L

X L

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Monitor public sitemap.xml, sitemap index, RSS, and Atom URLs for new, seen, changed, stale, dead, and error rows.

This Actor is built for SEO teams, AI/RAG ingestion workflows, agencies, founders, and content teams that need scheduled freshness checks without maintaining a custom crawler.

What It Does

Paste one or more public sitemap or feed URLs and get a structured dataset plus a Markdown report. Scheduled runs automatically compare against the previous saved URL snapshot, so users do not need to manually pass yesterday's URL list. Saved snapshots include URL fingerprints, so changes to title, date, or source metadata are reported as CHANGED.

Typical workflows:

  • monitor new blog, docs, changelog, or product URLs
  • watch competitor feeds
  • validate sitemap freshness before SEO indexing or AI ingestion
  • schedule lightweight content freshness checks
  • catch stale or unreachable URLs before they break downstream pipelines

The Actor reads public URLs only. It does not log in, does not use residential proxies, and is designed for low-cost scheduled runs.

Input

{
"sourceUrls": [
"https://blog.apify.com/rss/"
],
"previousUrls": [],
"maxSources": 10,
"maxItems": 25,
"staleAfterDays": 90,
"checkHttpStatus": false,
"snapshotKey": "URL_SNAPSHOT",
"saveSnapshot": true
}

Fields:

  • sourceUrls: public sitemap, sitemap index, RSS, or Atom URLs.
  • previousUrls: optional URL list from a previous run. URLs not in this list are marked NEW.
  • maxSources: maximum source URLs to process in one run. Default is 10; hard cap is 25.
  • maxItems: maximum entries to process across all sources. Default is 500; hard cap is 1000. Keep first remote tests around 25.
  • staleAfterDays: entries older than this threshold are marked STALE when a date is available.
  • checkHttpStatus: checks discovered URLs and marks unreachable entries as DEAD. Keep this off for the cheapest scheduled runs.
  • snapshotKey: key-value store record used to load and save the previous URL snapshot.
  • saveSnapshot: save the current URL list so the next scheduled run can detect NEW and SEEN automatically.

Output

Each dataset row includes:

  • status: NEW, SEEN, CHANGED, STALE, DEAD, or ERROR
  • sourceType: sitemap or feed
  • sourceUrl
  • url
  • title when available
  • date and ageDays when available
  • optional httpStatus
  • fingerprint for snapshot comparison
  • reason explaining the decision

The run also writes:

  • SUMMARY: machine-readable status totals
  • REPORT: human-readable Markdown report
  • URL_SNAPSHOT: saved URL snapshot for the next scheduled run

Why This Exists

Raw sitemap extraction is useful, but scheduled users usually care about the answer after extraction:

  • what changed?
  • what is stale?
  • what disappeared?
  • what is broken?
  • is this source still safe to ingest?

This Actor focuses on that monitoring layer instead of being only another URL list exporter.

The first release is intentionally capped for predictable scheduled-run cost. It is not a broad crawler and should not be positioned as a full-site crawling replacement.

Pricing Direction

First release should be free or usage-cost-only while real usage is validated.

If organic usage appears, review pay-per-usage or pay-per-event pricing based on measured run cost. A later paid version should charge only for actionable rows such as NEW, CHANGED, STALE, DEAD, or ERROR, not plain SEEN rows.

Do not use new rental pricing for this Actor.

Local Live Smoke Evidence

Latest local public-source smoke test:

  • source: https://blog.apify.com/rss/
  • result: 15 rows
  • status: passed
  • artifact: _target_checks/live-smoke/2026-07-01T10-35-38-168Z.json