{"id":376398,"date":"2026-09-30T04:13:18","date_gmt":"2026-09-30T04:13:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/intellectsight-stale-content-scanner\/"},"modified":"2026-09-30T07:22:14","modified_gmt":"2026-09-30T07:22:14","slug":"intellectsight-stale-content-scanner","status":"publish","type":"plugin","link":"https:\/\/frp.wordpress.org\/plugins\/intellectsight-stale-content-scanner\/","author":23551939,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"IntellectSight Stale Content Scanner","header_author":"IntellectSight","header_description":"Reads inside your posts and pages to find content that has quietly gone out of date \u2014 old years in titles, \"upcoming\" events that already happened, time-sensitive phrases in old posts, shortcodes and blocks left behind by removed plugins, and links to unpublished pages. Scores every post, lets editors mark content as reviewed, and sends an optional weekly digest. Runs entirely on your own server.","assets_banners_color":"a4aec0","last_updated":"2026-09-30 07:22:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/intellectsight.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"intellectsight","date":"2026-09-30 04:12:57","revision":3720266},"1.0.1":{"tag":"1.0.1","author":"intellectsight","date":"2026-09-30 07:22:14","revision":3720542}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3720266,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3720266,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3720266,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3720266,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3720266,"resolution":"1","location":"assets","locale":"","width":2560,"height":2000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3720266,"resolution":"2","location":"assets","locale":"","width":2880,"height":3000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3720266,"resolution":"3","location":"assets","locale":"","width":2560,"height":2200}},"screenshots":{"1":"The report screen: freshness bands, work queue and filters.","2":"The Content Freshness box in the editor, showing the exact sentences that are out of date.","3":"Settings."}},"plugin_section":[262246],"plugin_tags":[283563,19795,246855,96456,250295],"plugin_category":[],"plugin_contributors":[283564],"plugin_business_model":[],"class_list":["post-376398","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-broken-shortcodes","plugin_tags-content-audit","plugin_tags-content-freshness","plugin_tags-editorial-workflow","plugin_tags-outdated-content","plugin_contributors-intellectsight","plugin_committers-intellectsight"],"banners":{"banner":"https:\/\/ps.w.org\/intellectsight-stale-content-scanner\/assets\/banner-772x250.png?rev=3720266","banner_2x":"https:\/\/ps.w.org\/intellectsight-stale-content-scanner\/assets\/banner-1544x500.png?rev=3720266","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/intellectsight-stale-content-scanner\/assets\/icon-128x128.png?rev=3720266","icon_2x":"https:\/\/ps.w.org\/intellectsight-stale-content-scanner\/assets\/icon-256x256.png?rev=3720266","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/intellectsight-stale-content-scanner\/assets\/screenshot-1.png?rev=3720266","caption":"The report screen: freshness bands, work queue and filters."},{"src":"https:\/\/ps.w.org\/intellectsight-stale-content-scanner\/assets\/screenshot-2.png?rev=3720266","caption":"The Content Freshness box in the editor, showing the exact sentences that are out of date."},{"src":"https:\/\/ps.w.org\/intellectsight-stale-content-scanner\/assets\/screenshot-3.png?rev=3720266","caption":"Settings."}],"raw_content":"<!--section=description-->\n<p>Most \"old content\" tools only look at one number: the date a post was last modified. That misses the real problem. A post edited last week can still say \"Best Laptops for 2023\", and a post from five years ago can be perfectly evergreen.<\/p>\n\n<p><strong>IntellectSight Stale Content Scanner reads the content itself<\/strong> and flags the specific sentences that make a page look abandoned, so editors know exactly what to fix.<\/p>\n\n<h4>What it finds<\/h4>\n\n<ul>\n<li><strong>Old years in titles<\/strong> \u2014 \"Top 10 Tips 2018\", \"Best Laptops for 2023\". Year ranges such as \"2019\u20132026\" and history titles such as \"The 2008 financial crisis\" are left alone.<\/li>\n<li><strong>Dated year references in the text<\/strong> \u2014 \"as of 2023\", \"best picks for 2024\", \"2022 pricing guide\".<\/li>\n<li><strong>Events, offers and deadlines that already happened<\/strong> \u2014 \"The conference will be held on March 14, 2025\", \"Early-bird tickets valid until February 2025\". A date is only flagged when it was still in the future when the post was written and is in the past now, so historical dates (\"founded on March 3, 2010\") are not reported.<\/li>\n<li><strong>Time-sensitive phrases in old content<\/strong> \u2014 \"this year\", \"upcoming\", \"currently\", \"the latest version\" in posts that have not been touched for a year (the phrase list and the age are both editable).<\/li>\n<li><strong>Leftover shortcodes<\/strong> \u2014 <code>[contact-form-7 id=\"12\"]<\/code> and similar tags from plugins you removed, which visitors now see as raw text.<\/li>\n<li><strong>Orphaned blocks<\/strong> \u2014 blocks such as <code>acme\/slider<\/code> whose plugin is no longer active.<\/li>\n<li><strong>Links to unpublished content<\/strong> \u2014 internal links pointing at drafts, private posts or trashed pages.<\/li>\n<li><strong>Long-untouched content<\/strong> \u2014 nothing edited or reviewed for a configurable number of months.<\/li>\n<\/ul>\n\n<h4>What editors can do with it<\/h4>\n\n<ul>\n<li><strong>Freshness score (0\u2013100)<\/strong> for every post and page, with Stale \/ Needs attention \/ Fresh bands.<\/li>\n<li><strong>Report screen<\/strong> \u2014 a work queue sorted by worst score, filterable by content type and by issue, with search, bulk actions and CSV export.<\/li>\n<li><strong>Editor sidebar box<\/strong> \u2014 every finding with the exact sentence it came from, right next to the content you are editing.<\/li>\n<li><strong>Mark as reviewed<\/strong> \u2014 record who checked a post, when, and an optional note (\"prices checked\"), <em>without<\/em> changing the post's public modified date. A full review history is kept per post.<\/li>\n<li><strong>\"Not an issue\"<\/strong> \u2014 dismiss a single finding; it stays dismissed on later scans.<\/li>\n<li><strong>Snooze<\/strong> \u2014 hide a post from the queue for 30 days.<\/li>\n<li><strong>Freshness column<\/strong> in the Posts and Pages lists, and a <strong>dashboard widget<\/strong> with the five posts most in need of a refresh.<\/li>\n<li><strong>Weekly email digest<\/strong> (optional) listing the worst offenders with direct edit links.<\/li>\n<li><strong>Public \"Last reviewed on \u2026 by \u2026\" line<\/strong> (optional, off by default) and the <code>[isscs_last_reviewed]<\/code> shortcode.<\/li>\n<li><strong>schema.org <code>lastReviewed<\/code> and <code>reviewedBy<\/code><\/strong> structured data for reviewed content (optional, off by default).<\/li>\n<li><strong>WP-CLI<\/strong>: <code>wp stale-content scan<\/code> and <code>wp stale-content report<\/code>.<\/li>\n<\/ul>\n\n<h4>Built to be light<\/h4>\n\n<ul>\n<li>Everything runs on your own server. The plugin never contacts any external service.<\/li>\n<li>New and updated posts are scanned when saved. A small batch of older results is refreshed once a day, and a full scan runs in small AJAX batches so it never times out on large sites.<\/li>\n<li>Results are stored as post meta \u2014 no custom tables.<\/li>\n<li>Uninstalling removes every option, scheduled event and piece of post meta the plugin created.<\/li>\n<\/ul>\n\n<p>Developed by <a href=\"https:\/\/intellectsight.com\">IntellectSight<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>intellectsight-stale-content-scanner<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Stale Content \u2192 Report<\/strong> and click <strong>Scan all content<\/strong>.<\/li>\n<li>Optional: open <strong>Stale Content \u2192 Settings<\/strong> to choose content types, checks, thresholds, the weekly digest and the public \"last reviewed\" line.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20%22mark%20as%20reviewed%22%20change%20the%20post%27s%20modified%20date%3F\"><h3>Does \"Mark as reviewed\" change the post's modified date?<\/h3><\/dt>\n<dd><p>No. It records the review separately, so your public \"last updated\" date only changes when the content really changes.<\/p><\/dd>\n<dt id=\"will%20it%20flag%20every%20year%20i%20mention%3F\"><h3>Will it flag every year I mention?<\/h3><\/dt>\n<dd><p>No. Body text is only flagged for dated phrases such as \"as of 2023\" or \"2024 guide\", and only for the last few years (six by default). Titles are flagged for recent years or when a year sits next to words like \"best\", \"top\" or \"guide\". Anything that is not really an issue can be dismissed with one click.<\/p><\/dd>\n<dt id=\"does%20it%20work%20in%20languages%20other%20than%20english%3F\"><h3>Does it work in languages other than English?<\/h3><\/dt>\n<dd><p>The time-sensitive phrase list is fully editable, so you can add phrases in your own language. Date and year patterns currently recognise English month names and ISO dates (2025-03-14).<\/p><\/dd>\n<dt id=\"why%20is%20a%20shortcode%20flagged%20when%20the%20plugin%20is%20active%3F\"><h3>Why is a shortcode flagged when the plugin is active?<\/h3><\/dt>\n<dd><p>A few plugins only register their shortcodes on the front end. If a flagged shortcode renders correctly on your site, click \"Not an issue\" and it will not be reported again for that post.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. Nothing runs for visitors unless you enable the optional \"last reviewed\" line or structured data. Scanning happens in the admin, when posts are saved, and in a small daily background batch.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Removed a Plugin URI that pointed to a page that does not exist.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Reads inside your posts to find what has gone out of date \u2014 old years, past events, dead shortcodes and blocks \u2014 and gives editors a review queue.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/376398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=376398"}],"author":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/intellectsight"}],"wp:attachment":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=376398"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=376398"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=376398"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=376398"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=376398"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=376398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}