Sitemap Freshness Auditor
Pricing
from $0.005 / actor start
Sitemap Freshness Auditor
Audit a public XML sitemap for lastmod coverage, stale URLs, child sitemap indexes, score, grade, and SEO maintenance recommendations.
Pricing
from $0.005 / actor start
Rating
0.0
(0)
Developer
Sanskar Jaiswal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Fetches and audits one public XML sitemap for freshness and maintenance signals. It reports URL count, sitemap index entries, lastmod coverage, stale URL count, score, grade, issues, and recommendations.
Use cases
- Technical SEO checks before site launches and migrations.
- Scheduled monitoring for stale or incomplete XML sitemaps.
- Agency reporting for sitemap health across client sites.
- Data pipeline checks before submitting sitemap URLs to other SEO tools.
- Developer QA for CMS sitemap generation.
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrl | string | Yes | Public sitemap XML URL or website URL. If a website URL is provided, the actor checks /sitemap.xml. HTTP and HTTPS only. |
staleAfterDays | integer | No | A URL is stale when its lastmod date is older than this many days. Default: 365. |
timeoutSeconds | integer | No | Request timeout for the sitemap fetch. Default: 10, range: 3 to 30. |
maxBytes | integer | No | Maximum response body size to read. Default: 2000000, maximum: 5000000. |
Output
Each run pushes one dataset item.
| Field | Type | Description |
|---|---|---|
inputUrl | string | Original input URL. |
sitemapUrl | string | Sitemap URL selected for audit. |
finalUrl | string | Final fetched URL after redirects. |
ok | boolean | True when the sitemap is reachable and scores at least 75. |
checkedAt | string | ISO timestamp for the audit. |
status | integer | HTTP status code from the sitemap fetch. |
contentType | string | Response Content-Type header. |
bytes | integer | Number of bytes read. |
staleAfterDays | integer | Stale threshold used for the audit. |
score | integer | Freshness score from 0 to 100. |
grade | string | Letter grade from A to F. |
type | string | Parsed sitemap type: urlset or sitemapindex. |
urlCount | integer | Number of URL entries parsed. |
sitemapIndexCount | integer | Number of child sitemap entries parsed. |
lastmodCount | integer | Number of URL entries with lastmod. |
lastmodCoveragePercent | integer | Percent of URL entries that include lastmod. |
staleUrlCount | integer | Number of URLs older than staleAfterDays. |
sampleUrls | array | Up to 20 parsed URL entries with loc, lastmod, hasLastmod, and stale. |
sitemapIndexes | array | Up to 50 child sitemap entries from a sitemap index. |
issues | array | Human-readable issues found during scoring. |
recommendations | array | Recommended fixes. |
error | string or null | Fetch or validation error, if any. |
Example input
{"startUrl": "https://example.com/sitemap.xml","staleAfterDays": 365,"timeoutSeconds": 10,"maxBytes": 2000000}
Example output
{"inputUrl": "https://example.com/sitemap.xml","sitemapUrl": "https://example.com/sitemap.xml","finalUrl": "https://example.com/sitemap.xml","ok": true,"checkedAt": "2026-07-12T00:00:00.000Z","status": 200,"contentType": "application/xml","bytes": 12450,"staleAfterDays": 365,"score": 90,"grade": "A","type": "urlset","urlCount": 120,"sitemapIndexCount": 0,"lastmodCount": 120,"lastmodCoveragePercent": 100,"staleUrlCount": 2,"sampleUrls": [{"loc": "https://example.com/","lastmod": "2026-07-01","hasLastmod": true,"stale": false}],"sitemapIndexes": [],"issues": ["2 URLs have stale lastmod dates"],"recommendations": ["Refresh stale content timestamps only when content materially changes."],"error": null}
Security
- Fetches only public HTTP and HTTPS URLs.
- Rejects URL credentials.
- Rejects localhost, private IPv4, private IPv6, link-local, and private DNS resolutions.
- Revalidates redirects before fetching the next URL.
- Reads a bounded response body to avoid oversized sitemap runs.
- Does not require login or collect credentials.
Pricing
Suggested pay-per-event pricing:
| Event | Price |
|---|---|
| Actor start | $0.005 |
| Sitemap audited | $0.01 |
Typical one-sitemap run cost: about $0.015 before Apify platform charges. Apify keeps its standard commission and the actor owner receives the remainder.
FAQ
Does this crawl every URL in the sitemap?
No. It parses the sitemap XML and audits metadata such as lastmod. It does not fetch every listed page.
Does it expand sitemap indexes?
No. It reports child sitemap entries from a sitemap index. Audit important child sitemap URLs directly when URL-level freshness details are needed.
Can I pass a website URL instead of a sitemap URL?
Yes. If the URL does not look like a sitemap path, the actor checks /sitemap.xml on the same origin.
Why does stale content not always mean a problem?
Some pages are intentionally evergreen. Use staleAfterDays to match your content maintenance policy.
Kill or keep metric
Keep this actor if it gets organic Store impressions, runs, revenue, or inbound SEO agency questions within 60 to 90 days. Improve the listing or pricing if impressions arrive without runs. Archive it if there is no discovery or usage.