Published content follows a shape: a ramp as it gains traction, a plateau, then decline. The decline is usually gradual enough that nobody notices until traffic has halved.
Detecting it early is a data exercise with a well-defined method, and it consistently produces higher return than commissioning new content, because a page that already ranks has already done the hard part.
The measurement
Compare each URL's clicks in a recent window against the same window in the previous year. Twelve months apart controls for seasonality, which is the main source of false signals.
Using the Search Console API:
def fetch(service, site, start, end):
body = {
"startDate": start, "endDate": end,
"dimensions": ["page"],
"rowLimit": 25000,
}
rows = service.searchanalytics().query(siteUrl=site, body=body).execute()
return {r["keys"][0]: r["clicks"] for r in rows.get("rows", [])}
current = fetch(service, SITE, "2026-05-01", "2026-07-31")
prior = fetch(service, SITE, "2025-05-01", "2025-07-31")
decayed = sorted(
(
(url, prior[url], current.get(url, 0),
(current.get(url, 0) - prior[url]) / prior[url])
for url in prior if prior[url] >= 50
),
key=lambda row: row[3],
)
The >= 50 floor matters. Percentage changes on tiny numbers are noise, and without a floor the top of your decay list will be pages that went from 3 clicks to 1.
Sorting decay by cause
The percentage is the alarm, not the diagnosis. Four causes account for most of it, and they need different responses.
The information went stale. Statistics from three years ago, prices that moved, a process that changed, screenshots of an interface that was redesigned. Most common cause, cheapest fix.
A competitor published something better. Search the target query and read what now outranks you. If the answer is a genuinely more thorough resource, you have a scope problem, not a freshness problem.
The SERP changed. An AI overview or featured snippet now intercepts the click. Check whether impressions held while clicks fell — that pattern is diagnostic. If impressions are stable and CTR collapsed, your ranking is intact and something above you is absorbing the traffic.
You cannibalized yourself. A newer page on a similar topic now ranks for the query instead. Check whether the query's clicks moved to another URL rather than disappearing. If so, this is not decay, it is redistribution, and the fix is consolidation.
Distinguishing these takes about five minutes per URL and prevents the most common waste in content refresh work: rewriting a page whose problem was never the writing.
What a refresh actually involves
For genuine staleness, the work that moves the needle:
- Update every factual claim and date. Including the ones in passing sentences nobody remembers writing.
- Add what has emerged since. New tools, new regulations, new approaches. This is usually where the competitor's advantage actually lives.
- Cut what no longer applies. Removing obsolete sections improves the page. Length is not the goal.
- Re-check the target query. Search intent shifts. A query that wanted a definition two years ago may now want a comparison.
- Refresh internal links. Link to content published since, and from newer content back to this page.
- Update the modified date honestly.
dateModifiedin your structured data should reflect real revision. Bumping the date without changing the content is transparent and pointless.
Cadence and prioritization
Run the comparison quarterly. Rank the output by absolute clicks lost, not percentage — a page that lost 40% of 2,000 clicks matters far more than one that lost 80% of 60.
Then apply one filter before committing: does this page still serve a business purpose? Some decay is correct. Content about a service you discontinued, a product you no longer sell, or a topic you have deliberately moved away from should be allowed to decline, redirected, or removed. Refreshing it is work spent defending ground you do not want.
Why this outperforms new content
A page in decline has already earned its links, its indexation, its topical association, and whatever authority it accumulated. A refresh preserves all of that and updates the part that expired. New content starts from zero on every one of those dimensions.
For most sites past their first year, the refresh backlog contains more available upside than the new-content backlog — and it is measurably cheaper per unit of recovered traffic. The reason it stays undone is that refreshes are less satisfying to plan than new pieces, not that they work less well.