How to Find the Pages on Your Site That Are Quietly Decaying

Most pages on your site will not die outright, they will drift. Score every published page on ten mechanical signals before you spend a single API credit. Age since the last real edit is worth 40 of the 100 points, and everything else on the list reads only your own database.
We built that scanner, pointed it at our own 197 pages, and found it was measuring us wrong, so below is our method, our weights, and our failure.
What does content decay actually look like?
Decay is a page losing search traffic while nothing about it visibly breaks: it still loads, it still ranks for something, and it still reads the way it did on the day you published it, which is exactly why almost nobody catches it in time, and why the loss usually surfaces in a quarterly report rather than in an alert.
What changed sits outside the page, because rivals published longer answers, the topic moved on, and the year in your title now reads as a warning to anyone scanning the search results rather than a promise of something current, which costs you the click before anybody has read a word of it.
Nobody files a bug for that.
On our own library the pattern was ordinary and the ranking was not. Of 197 scored pages, our contact page came first.
It runs 394 words. The top-10 average is 594, the page still carries a date from 2017, and a booking page came second at 236 words against an average of 1,476.
Both scores were arithmetically correct and commercially useless, which is the most common way a refresh queue dies in its first week.
The ten signals you can score for free
Six of the ten are about time: months since the last real edit, whether the page has been edited at all, and a stale year sitting in the title.
Then the newest year mentioned anywhere in the body, percentage claims old enough to need re-checking, and a dateModified in your schema that lags behind your database.
Three are about structure: word count against your own floor, fewer than three internal links pointing in, and a long post carrying no H2 headings.
The tenth is the only one that measures an outcome instead of a cause, and it is the click drop Search Console has already recorded for you. None of it costs a credit.
The raw total comes to 131 points, capped at 100. That cap is not tidy.
Two badly decayed pages can both land on 100 carrying completely different problems underneath, so treat the number as a queue position rather than a diagnosis of what is wrong.
Nine of these ten signals are proxies for decay. Only the Search Console drop is decay itself.
Why is age worth 40 points and a measured click drop only 25?
Because most sites arrive without a Search Console connection, and a scanner that gives you nothing until you finish an OAuth flow is a scanner nobody runs twice.
Age is the one signal every site already has on day one, so we weight it highest for availability rather than for quality of evidence.
That is a compromise, and it is the weakest part of our model. On a site with clean Search Console history, a page that lost 60% of its clicks in ninety days deserves to outrank a page that is merely old.
At the default weights it will not always do so. The weight is configurable for exactly that reason, so if you have the click data, raise it and let the measurement win.
Does any of this matter to AI engines, or only to Google?
It matters to both. Less than the freshness industry claims.
Ahrefs analysed 16,975,000 cited URLs across ChatGPT, Perplexity, Gemini, Copilot, AI Overviews and the organic Google results, which makes it the largest public read we have on the question. Pages the assistants cited had last been updated 909 days earlier on average, against 1,047 days for pages in the organic top 10.
That gap is real, and the absolute number is humbling.
The typical page an AI assistant cites was last touched about two and a half years ago. Recency tilts the odds for you rather than deciding them for you, and in every dataset we have read it ranks below retrievability, ranking position and how often the brand is mentioned elsewhere.
Published age moves too.
AI-cited URLs averaged 1,064 days since publication against 1,432 days for the organic top 10, which the same study puts at 25.7% fresher.
On the Google side, freshness has been query-dependent since 2007, when Query Deserves Freshness began promoting new pages on topics that are genuinely moving.
Your evergreen definition page does not need a date on it. Your pricing page, your regulation summary, or anything carrying a year in the title does.
Two broad core updates landed in 2026, in March and in May, and Google’s advice after each was what it always is: make content that satisfies people.
Changing your date to look current is not that. Changing what your page says, because the world moved underneath it, is.
Refreshing is not about the date. It is about whether the page still says the truest available thing.
Reviva is the WordPress plugin this method runs on.
How do you know your own measurement is right?
You test the measurer against a page whose length you already know. We did not do that for two releases.
Our parser read the first <article> element in the document. On most modern themes that element is a related-posts teaser card, so a 2,809-word page measured as 13 words and came back reported as thin and orphaned.
Here is the same page on the same day, before and after the fix.
The old report said your words 0, gap minus 2,725, and concluded that the page was empty and lacked essential content. The new one says 2,809 words against a top-10 average of 2,772, a gap of plus 37, with three of seven rivals updated this year.
Nothing about the page changed. Only the ruler did.
Two things about that are worth saying plainly. The bug affected competitor parsing as well as our own, so every length comparison we produced against a card-grid site was wrong in both directions, including the ones we showed clients.
The parser fix alone did not clear it either, because snapshots were cached against each page’s modified date, so unedited pages kept serving months-old parses through the following release.
It took us three versions to close, because 1.2.1 fixed the parser, 1.2.2 keyed the snapshot cache on the plugin version so that an upgrade invalidates every old parse automatically, and 1.2.3 fixed the exclusion list that was pinning our own utility pages to the top.
We now ship a check that answers the question directly instead of asking you to trust us. It fetches one of your own pages, bypasses every cache, and reports the kilobytes returned, the element it measured inside, the word count, and the first words it read.
On our site that check currently reads 395 KB downloaded, measured inside <main>, 1,151 words counted.
If one of your pages downloads as 400 KB and measures as 13 words, that single line tells you so before you act on anything else in the report.
My read on this
Most refresh programmes are ranked by age, and age is the wrong sort of old. Age is not urgency. I would spend a refresh budget almost entirely on the pages already sitting between position 4 and 15, because those pages have proved Google will rank you for the topic. They need a push rather than the full rescue an abandoned page would take.
An old page nobody finds is not a decayed page but a page that never worked, and rewriting it is a new project wearing a maintenance costume.
The second thing I would change is who gets to rank first, because our own queue put a contact page and a booking page at the very top. A scoring model that cannot be told to ignore your legal, contact and careers pages will waste the opening week of every programme.
Ours could not, until we found that the exclusion setting skipped re-scoring but left the old score sitting in the database, which pinned excluded pages to the top permanently.
What an evidence-led refresh brief actually contains
It names its sources. Every “what changed” item carries the URL it came from and the date that source was published.
Every missing section names a ranking page that actually covers it, and every proposed statistic is flagged for re-verification rather than asserted as fact.
Where the evidence is thin, the report says so. It lowers its own confidence rating instead of writing around the gap. That is the difference between a brief your writer can act on and a list of opinions with a logo on it.

The comparison table is the part clients read first, and it lists each ranking page with its word count, H2 count, last modified date and schema types.
That turns “we need more content” into something specific: three of the seven rivals updated this year, one publishes an FAQ block, and you have neither.
The objections we hear most
These three arrive on almost every refresh call, in almost these words. Each one describes a real failure mode rather than a misunderstanding. The answer below names the mechanism first and the fix second, because a fix nobody on your team can explain will not survive the next handover.
“We refreshed the page and Google did not notice.”
Call it the invisible refresh. Your database says you edited the page in June.
The JSON-LD on the published version still announces a dateModified from last year, usually because a caching layer or an SEO plugin is emitting a stored value.
That gap scores up to 6 points and gets named in the report. Check the rendered HTML, not the editor.
“Our oldest pages are the ones we would never rewrite.”
That is the utility page problem, and it is the single most common reason a refresh queue gets abandoned.
Your contact, careers, legal and booking pages are genuinely old and genuinely short, so they win a contest they should never have entered.
Exclude them by ID. Then confirm the exclusion actually removed them from the queue instead of quietly skipping the recalculation.
“I do not want a tool telling my writers what to write.”
Neither do we, which is why ours refuses to rewrite anything. What it produces is evidence.
What changed in the world, who covers the subjects you skip, which of your outbound links have gone dead since you published, and which pages on your own site already mention this topic in plain text without linking to it.
The editing decision stays with your team, where it belongs.
Where this sits in what VOCTOS runs for clients
Reviva is not a side project. It is one of the tools our own team runs on client libraries.
Next to it sit two Chrome extensions we built for daily checks, and a client portal that puts AI search measurement, technical SEO, content workflow, paid media and billing behind a single login.
We build them because the market did not.
As of August 2026 we had not found another agency in the region putting all five behind one login. We would rather be corrected on that than repeat it unchecked.
VOCTOS has run search out of Cairo since 2017, across 500+ projects in 22+ countries, and Reviva came out of the quarterly refresh checklist those projects kept generating by hand.
We moved into AI search before it had a settled name, we are a Google Premier Partner, and TechBehemoths ranks us the top GEO agency in Egypt.
A decay scanner stops being a convenience and becomes the only option at a library in the thousands.
Delta Medical Laboratories is that case. Since March 2026 the brand has grown past a million monthly organic visits across 159,200 organic keywords, 1,186 of them ranked first in Saudi Arabia, and 5,570 Delta pages are now cited across ChatGPT, Gemini, Google AI Overviews and AI Mode.
Nobody audits 159,200 keywords by hand. No quarterly spreadsheet catches the handful of pages that slipped last month while the team was busy publishing the next batch of new ones. That is one client in one market, and it is not a forecast for yours.
The useful question is not whether your content is old
The useful question is whether the pages that already earn attention are still the best answer available for the query they win.
Age is a cheap proxy. A model built on age alone will send you confidently to your own contact page.
Measured traffic loss is the real signal. Structural comparison against the live top 10 is what turns a score into a brief somebody can action on Monday morning.
If you have Search Console connected and a library above roughly 50 pages, run the scan, raise the weight on the click data, exclude your contact and careers and legal pages by ID, and then work the top ten by hand.
If you are not there yet, the free pass alone will still surface the stale years in your titles and the pages sitting on fewer than three internal links. Both are worth an afternoon of anybody’s time, so start there.
Don't miss the chance to
make your website more visible!
Initial consultation and
audit of the current situation
Read also
Our Case Studies
All case studiesTrusted by










































































