Title: Namdar Content Decay Checker
Author: devnamdar
Published: <strong>September 3, 2026</strong>
Last modified: September 3, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/namdar-content-decay-checker.svg)

# Namdar Content Decay Checker

 By [devnamdar](https://profiles.wordpress.org/devnamdar/)

[Download](https://downloads.wordpress.org/plugin/namdar-content-decay-checker.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/namdar-content-decay-checker/#description)
 * [Reviews](https://wordpress.org/plugins/namdar-content-decay-checker/#reviews)
 *  [Installation](https://wordpress.org/plugins/namdar-content-decay-checker/#installation)
 * [Development](https://wordpress.org/plugins/namdar-content-decay-checker/#developers)

 [Support](https://wordpress.org/support/plugin/namdar-content-decay-checker/)

## Description

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.

#### What actually goes into the score

Four things feed into a post’s score by default, and every one of them except age
can be switched off in Settings:

 * **Age.** Days since the post was last modified, measured against a staleness 
   window you set (180 days out of the box). You can also set a different window
   per content type, since a news-style post cools off a lot faster than a reference
   page that’s supposed to stay accurate for years.
 * **Thin content.** Anything under 300 words gets flagged, on a sliding scale rather
   than a hard cutoff, so a 280-word post isn’t treated the same as a 20-word stub.
 * **Missing featured image.** A small nudge, mainly useful for blogs where every
   post is expected to have one.
 * **Few internal links.** Posts with almost no links out to the rest of the site
   tend to be the same posts nobody links back to either.

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.

#### Reviewing content without editing it

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.

#### The dashboard

Everything lives on a single admin page, built as a small single-page app so moving
between tabs doesn’t reload anything:

 * **Overview** – total content scanned, how much needs attention, the average score
   with a trend line, a breakdown by content type, which authors have the most stale
   content, and a chart of how old your content actually is.
 * **Content** – the full list: searchable, filterable by type, author, or score
   band, sortable by any column, with rescan, mark reviewed, and exclude actions
   plus a factor breakdown per post so you can see exactly why it scored the way
   it did.
 * **Settings** – staleness windows (global and per content type), batch size, which
   content types get scanned, which factors count toward the score.
 * **Developer** – the hooks this plugin exposes, for anyone who wants to extend
   it from their own code.
 * **Pro** – what the paid add-on does differently, for anyone curious. It’s one
   tab you have to go looking for, not a nag that follows you around wp-admin.

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.

#### How the scanning actually happens

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.

#### Who this is actually useful for

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.

#### Built the way a WordPress admin screen should be

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 score
 * `namdcode_decay_score_weights` — filter how much each factor counts toward the
   final score
 * `namdcode_rest_post_data` — filter the data returned for each post from the REST
   API
 * `namdcode_admin_table_columns` — filter the column definitions returned from 
   the columns endpoint
 * `namdcode_pro_upgrade_url` — filter where the Developer tab’s “Get Pro” button
   points
 * `namdcode_admin_enqueue` — fires after this plugin enqueues its admin assets,
   for enqueueing companion scripts on the same screen
 * `namdcode_is_pro_active()` — helper function other plugins can call to check 
   whether a companion plugin has registered itself

## Installation

 1. Upload the plugin files to the `/wp-content/plugins/namdar-content-decay-checker`
    directory, or install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the “Plugins” screen in WordPress.
 3. Open “Content Decay” in the admin menu to see your dashboard. The first full scan
    is queued automatically on activation and runs in the background within a few minutes.

## FAQ

### How is the decay score calculated?

By default it combines content age with three optional signals: thin content (under
300 words), a missing featured image, and having few internal links. All of these
are configurable in Settings, and the factors and their weights are filterable, 
so other plugins can add their own signals.

### Why does a post’s score change even though I haven’t touched it?

The age factor is measured against today’s date, so a post drifts further into “
stale” territory the longer it sits untouched, even if nothing else about it changes.
That’s the whole point of a decay checker: content that was fine six months ago 
can quietly stop being fine without anyone editing it.

### Can I exclude a specific post from being scored?

Yes. Use the “Exclude” action on any row in the Content tab. Excluded content is
skipped by scans and removed from your stats until you include it again.

### What does “Mark reviewed” do?

It records that you looked at the content and decided it’s still fine, without changing
the post itself. The content’s age contribution to its decay score resets from that
moment, but the post’s actual last-modified date, and anything on your site that
depends on it, is untouched.

### Can different content types have different staleness windows?

Yes. The global staleness window applies to everything by default, but Settings 
has a section for overriding it per content type. A lot of sites want a shorter 
window for blog posts and a longer one for reference or documentation pages.

### Does this work with custom post types?

Yes, as long as the post type is public. It’ll show up as an option to monitor in
Settings alongside posts and pages.

### Will scanning slow down my site?

No. Scanning runs in small batches through WP-Cron in the background, not on page
load, and the batch size is configurable in Settings if you want it smaller or larger.
Nothing this plugin does touches the front end at all.

### Does this modify or delete my content?

No. The plugin only reads your content to calculate a score and stores that score
in post meta. It never edits your posts or pages.

### Does this plugin phone home or track me?

No data is sent anywhere. All scanning and storage happens on your own site.

### Does the Developer tab install anything extra?

No. It only shows documentation for this plugin’s hooks and, on the separate Pro
tab, a preview of what’s planned for Namdar Content Decay Checker Pro (which doesn’t
exist yet, so there’s no link to click). Nothing is downloaded or activated automatically,
and none of it appears anywhere outside this plugin’s own settings screen.

### Why don’t I see other plugins’ notices on the Content Decay page?

This plugin’s own dashboard hides admin notices and the default wp-admin footer 
text, but only on its own page. Everywhere else in wp-admin, notices and the footer
behave exactly as before; nothing is suppressed globally.

### I deactivated the plugin and my scores disappeared from post meta, is that a bug?

Only if you deleted the plugin, not just deactivated it. Deactivating leaves everything
in place so you can turn it back on later. Uninstalling (deleting it from the Plugins
screen) removes its settings and all of its post meta, on purpose, so it doesn’t
leave anything behind.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Namdar Content Decay Checker” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ devnamdar ](https://profiles.wordpress.org/devnamdar/)

[Translate “Namdar Content Decay Checker” into your language.](https://translate.wordpress.org/projects/wp-plugins/namdar-content-decay-checker)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/namdar-content-decay-checker/),
check out the [SVN repository](https://plugins.svn.wordpress.org/namdar-content-decay-checker/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/namdar-content-decay-checker/)
by [RSS](https://plugins.trac.wordpress.org/log/namdar-content-decay-checker/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release: decay scoring (age, thin content, missing featured image, few
   internal links), per-content-type staleness windows, exclude and mark-reviewed
   actions, an Overview dashboard with trend and breakdown charts, a dashboard widget
   and menu badge, light/dark mode, and a Developer tab documenting the available
   hooks.

## Meta

 *  Version **1.0.0**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [content audit](https://wordpress.org/plugins/tags/content-audit/)[dashboard](https://wordpress.org/plugins/tags/dashboard/)
   [maintenance](https://wordpress.org/plugins/tags/maintenance/)[seo](https://wordpress.org/plugins/tags/seo/)
   [stale content](https://wordpress.org/plugins/tags/stale-content/)
 *  [Advanced View](https://wordpress.org/plugins/namdar-content-decay-checker/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/namdar-content-decay-checker/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/namdar-content-decay-checker/reviews/)

## Contributors

 *   [ devnamdar ](https://profiles.wordpress.org/devnamdar/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/namdar-content-decay-checker/)