Free Content Freshness Checker

ACME.BOT reads any sitemap and scores every section by age. Green is fresh, red is decaying.

Free · no signup · any public sitemap
Last updated September 2026·Up to 5,000 URLs per scan·Reads sitemap indexes and child sitemaps
Sample scan

Here is what you get

Count of URLS with no date at all, a 0-100 score for every section, and a treemap of every page.
Domain: example-saas.com
Pages scanned: 247
Freshness Score: 52 / 100
Missing dates: 23 (9%)
Distribution:
39 of 224 dated pages are older than a year (17%).
/docs is the stalest section: 68 pages, median age 260 days.
/blog has 14 pages past a year alongside 28 updated in the last month.
23 URLs carry no lastmod date and stay out of every score.
blog· 124
docs· 68
products· 32
help· 23
Each rectangle = one page. Color = content age.
SectionPagesScoreDistributionWhat it means
products3277
Current. Leave it alone.
blog12458
Due for a refresh pass.
docs6831
Most of it is older than six months. Start here.
help23n/a
No dates in the sitemap. Check your CMS settings.
Fresh (<30d)
Recent (30–90d)
Aging (91–180d)
Stale (181–365d)
Decaying (>365d)
Unknown
How it works

ACME.BOT works from only the sitemap.

Enter domain
example.com
Scan

Paste a domain or a sitemap URL

Give ACME.BOT a domain, and it finds the sitemap itself. Give it a sitemap URL and it reads that instead.
sitemap.xml → 247 URLs
├─ /blog/content-strategy 2026-03-15
├─ /blog/seo-basics 2024-11-02
├─ /docs/getting-started 2023-06-18
└─ 244 more…

ACME.BOT reads every date

ACME.BOT collects up to 5,000 URLs, child sitemaps included, and reads the lastmod on each one.
Score: 52

Sections get scored

Pages are grouped by section, color-coded by age, and assigned a score from 0 to 100.
The scale

What does your score mean?

On average, an section's page age scores between 0 to 100. Anything above 70 is well maintained, while anything under 50 is largely older than six months.
ScoreReadingWhat to do
70 to 100Actively maintained.Hold. Revisit next quarter.
50 to 69Due a refresh.List the aging pages. Rewrite the ones still getting traffic.
Under 50Mostly older than six months.Treat it as a project. Start with the pages that still rank.
No scoreThe sitemap carries no dates.Fix the sitemap. Nothing scores until you do.

Instead of scoring the site, score the sections. In the sample above the site scores 52 while /docs scores 31, and /docs is the month of work.

Methodology

How is the Freshness Score calculated?

ACME.BOT assesses each page based on the lastmod date age, then calculates an average score for each section.
1

Collect dates

ACME.BOT finds the sitemap via robots.txt, follows any sitemap index down to its child sitemaps, and reads the lastmod on every URL. The ceiling is 5,000 URLs per scan.

2

Score each page by age

Measured from lastmod to the scan date.

Last updatedPage score
Under 30 days100
30 to 90 days75
91 to 180 days50
181 to 365 days25
Over 365 days0
No lastmod dateNot scored, counted separately
3

Group and average

A section consists of all URLs that share the same first path segment. The score of a section is the average of all page scores in the section. The site's score is the average of all scores assigned to dated pages.

4

Report what is missing

Total URLs as well as those without a lastmod are counted and displayed in a share of the total. URLs or pages without lastmod render gray and don't affect any average calculations.

5

Fire the callouts

Up to five rows, from a fixed list of rules: a section more than 5% over a year old; the oldest section with 3 or more pages that has a median age of more than 180 days; a section with fresh pages and a steadily decaying older tail; and the number of URLs without dates. If a sitemap has no dates, then we replace all 5 with 1.

Limits. 5,000 URLs per scan, 20 seconds per request, 60 seconds total. A scan that hits any ceiling returns truncated, never a quiet partial. No language model is involved at any stage, so the same sitemap always scores the same.

Accuracy. lastmod is self-reported by the CMS, so the score is only as good as the sitemap. Google publishes the same caveat in its sitemap documentation, which also sets the 50,000 URL and 50 MB per-file limits.

Terms

  • lastmod An optional XML sitemap element recording when a URL was last modified. Google uses the value only when it is consistently and verifiably accurate.
  • sitemap index A sitemap that lists other sitemaps, so a large site stays under the 50,000 URL per-file limit.
  • section The first path segment of a URL. /blog/post-one and /blog/post-two both count toward blog.
Limits

When the score lies

Since the score is 100% dependent on lastmod - a field written by the site's own CMS - find out four ways the number can be wrong, and how to spot each.

Deploy stamps look like maintenance.

A section that all shares one lastmod timestamp down to the second is an indication that a deploy, not an editor wrote it. ACME.BOT takes the date it is given at face value, so the section looks supremely fresh. Check for repeated timestamps before you trust it.

Some sitemaps carry no dates at all.

With no dates there is nothing to score. The treemap renders gray and the report comes back as structure only. Google uses lastmod only when the value is consistently and verifiably accurate, so some sites drop it deliberately.

Sections are path segments, not topics.

A localized site groups as /ja, /es and /de, because that is what the first URL segment says. Scan each locale's own sitemap to get topics back.

Age alone is not a ranking factor.

Google applies freshness only to queries that need it. A 2019 tutorial that is still correct needs no new date. Google's own documentation says that changing a copyright date is not a significant update.
After the scan

Which pages should you refresh first?

Look at the section score together with whether the page still gets clicks. If traffic has already dropped off an old page, an afternoon spent on it isn't going to be worth the time.

Under 50, still gets clicks.

First thing, update it. Share new details, current screenshots, and the structure the SERP now rewards.

Under 50, no clicks.

Redirect the URL, or merge it into the stronger page on the topic.

Over 70, clicks falling.

Age is not the issue. See if there's a better intent match or newer pages from competitors for the title.

Over 70, steady.

Don't touch it. There is nothing here for a refresh to fix.

Search Console holds the other half. Open Performance, set the range to the last 3 months, compare it against the previous 3, and sort pages by change in clicks. The pages on both lists, under 50 here and falling there, are the month of work.

For the merge candidates, the internal link graph shows which thin pages already point at each other.

Approaches

Four other ways to do this

No approach captures it all. The last column names what's missing.
Read the sitemap by hand
Sees every URL
yes
Scores sections
no
Needs ownership
no
Cost
Free
What it can't see
Any pattern past a few hundred rows
Crawl and export (Screaming Frog)
Sees every URL
yes
Scores sections
manual
Needs ownership
no
Cost
Free under 500 URLs
What it can't see
Which section is worst, without a pivot table
Rank-tracker decay report (Ahrefs)
Sees every URL
no
Scores sections
no
Needs ownership
no
Cost
Paid
What it can't see
Pages with no traffic left to lose
Search Console click comparison
Sees every URL
no
Scores sections
no
Needs ownership
yes
Cost
Free
What it can't see
Any site you don't own, and page age itself
This scanner
Sees every URL
yes
Scores sections
yes
Needs ownership
no
Cost
Free
What it can't see
Traffic. It reads dates, not clicks

The refresh list above crosses the last two rows, because Search Console cannot see a site you don't own and this scanner cannot see traffic.

FAQ

Common questions

What does a content freshness checker do?
How do I find when a web page was last updated?
What is a Freshness Score?
What counts as a good Freshness Score?
What if a sitemap has no lastmod dates?
Is it possible for me to scan my competitor's website?
How many URLs can it scan?
Is lastmod reliable?
Which old blog posts should I update first?
Will content updates help my ranking?