Every site ends up with content it forgot about. A post that used to rank well, a landing page nobody has opened since the day it went live, a “definitive guide” that quietly stopped being accurate the moment the thing it described changed. None of that shows up in your Posts list. WordPress shows you a date next to each title, but it doesn’t tell you whether that date should actually worry you.
Namdar Content Decay Checker looks at every published post and page on your site and works out how likely each one is to be stale. It checks how long it’s been since you last touched it, how thin the writing is, whether it has a featured image, and how connected it is to the rest of your site through internal links. All of that becomes a single score from 0 to 100, and you get a dashboard that sorts your whole site by how much attention it needs, instead of clicking into fifty posts one at a time to guess.
This is a mechanical check, not an SEO opinion. It doesn’t read your content or judge whether it’s good; it just flags what has probably gone stale so a person can decide what to do about it. If you want actual organic traffic numbers behind the score, that’s what the separate Pro add-on is for, described further down. This plugin does its job completely on its own without it.
Four things feed into a post’s score by default, and every one of them except age can be switched off in Settings:
Turn off whichever of these doesn’t apply to your site (documentation pages that never get a featured image, for instance) and the score adjusts on its own without you needing to touch any weights.
Here’s the awkward part of any “last modified” check: opening a post in the block editor and clicking Update bumps the modified date even if nothing meaningful changed. So there’s a separate “Mark reviewed” action on every row. It tells the plugin you looked at the post and it’s still fine, without touching the post itself. From that point on, the age factor counts from your review instead of the last real edit.
If something should just be left alone entirely, an evergreen “About” page, a legal disclaimer, whatever doesn’t belong in a decay report, you can exclude it with one click. It drops out of the scoring and the stats until you bring it back.
Everything lives on a single admin page, built as a small single-page app so moving between tabs doesn’t reload anything:
There’s also a small dashboard widget and a badge on the admin menu showing how many posts need attention, so you can check without opening the full page.
A background job goes through your content in small batches (50 posts by default) using WP-Cron, the same scheduling system WordPress already relies on for publishing scheduled posts. It runs once a day, never touches the front end, and never adds load to a page a visitor is looking at. Newly published content gets its first scan the moment it goes live, so you’re not waiting on the next scheduled run just to see it show up. There’s also a manual “Rescan entire site” button with a small live progress indicator, for whenever you want fresh numbers right away.
If you’re running a handful of posts, you probably don’t need this yet; you already know which ones are old. It starts earning its keep once a site has enough history that no one person can reasonably keep track of it in their head: agency sites managing content across several clients, blogs with a few hundred posts and some staff turnover, documentation sites where “is this still accurate” is a real and recurring question rather than a one-time cleanup.
No jQuery, no full-page reloads between tabs, everything on top of the REST API and core UI packages your site already ships with. Light and dark modes both fully themed, not just an inverted stylesheet. Keyboard and screen-reader support on the tabs, filters, and sortable columns. Translation-ready strings throughout.
Namdar Content Decay Checker Pro
A companion Pro add-on is planned for further down the line, adding Google Search Console traffic data, AI-assisted rewrite suggestions for stale titles and paragraphs, a weekly email digest, bulk actions, and CSV export. This free plugin is fully functional without it and always will be; Pro adds to it rather than unlocking anything that’s artificially held back. A preview and feature comparison live only on this plugin’s own Pro tab, never as a notice anywhere else in wp-admin, and there’s nothing to buy yet.
For developers
This plugin exposes stable extension points so other code can add its own decay factors or extra data without needing to modify anything here. The same list, with live examples, is also shown on the Developer tab inside the plugin:
namdcode_decay_score_factors — filter the normalized factors (0-100 each) that make up a post’s decay scorenamdcode_decay_score_weights — filter how much each factor counts toward the final scorenamdcode_rest_post_data — filter the data returned for each post from the REST APInamdcode_admin_table_columns — filter the column definitions returned from the columns endpointnamdcode_pro_upgrade_url — filter where the Developer tab’s “Get Pro” button pointsnamdcode_admin_enqueue — fires after this plugin enqueues its admin assets, for enqueueing companion scripts on the same screennamdcode_is_pro_active() — helper function other plugins can call to check whether a companion plugin has registered itself