=== Fresh Content Radar === Contributors: wpsmarttools Tags: seo, content, links, broken links, content audit Requires at least: 5.9 Tested up to: 6.8 Requires PHP: 7.4 Stable tag: 0.2.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Text Domain: fresh-content-radar Monitor content freshness, broken links and missing image alts from a live dashboard with filters, KPIs and CSV export. == Description == **Fresh Content Radar** is your all-in-one dashboard to keep your website content healthy and SEO-friendly. It scans your posts and pages for freshness, outdated dates, broken or unverifiable links, and missing image alts β€” then shows everything in a single interactive dashboard. ### πŸ”‘ Key Features - **Live Dashboard** - Color-coded KPIs: Fresh / Needs refresh / Obsolete / Unknown. - Clickable KPIs to instantly filter the table. - Search bar and instant filters (AJAX). - Table auto-refresh every 60 seconds. - **Smart Scan System** - Paged AJAX scan for large sites β€” no timeouts. - Real-time progress bar with % and number of items. - Option to automatically re-scan content on update. - **Content Analysis** - Detects outdated content based on configurable thresholds (fresh / stale / obsolete). - Detects outdated years in text (e.g. β€œ2019”) and alerts you. - Counts images without alt attribute for accessibility/SEO. - **Link Checking** - Distinguishes **broken links** (red) from **unverifiable links** (yellow: timeout, WAF, 403). - Configurable timeout and max redirects. - Exclude domains (CSV) that you don’t want to scan. - **Bulk Actions** - Select multiple posts to **move to trash** or **set to draft** directly from the dashboard. - **CSV Export** - Export visible table columns to CSV with one click. - **Settings Interface** - Clean, tabbed settings page (Analysis / Links / Performance / Emails). - Tooltips and clear explanations for each option. - Modern UI with toggles and responsive design. - **Email Notifications** - Weekly recap email (Top 10 obsolete/to-refresh content). - Configurable recipient address. - **Dashboard Widget** - Mini-widget in WP Dashboard with global score and quick link to full dashboard. - **Security & Performance** - Nonces on all AJAX calls. - Proper sanitization/escaping of all inputs/outputs. - Compatible with large sites thanks to paginated scans. ### πŸ› οΈ Ideal For - Content editors and SEO managers who need to keep websites up-to-date. - Marketing teams that want a single source of truth for content health. - Site owners with large content libraries who want to automate freshness checks. == Installation == 1. Upload the plugin folder to `/wp-content/plugins/` or install via Plugins > Add New. 2. Activate the plugin. 3. Go to **Fresh Content** in the WP admin menu. 4. Click **Scan all published posts** to populate the dashboard. == Screenshots == 1. **Main dashboard** with KPIs, filters, search and bulk actions. 2. **Progress bar** during a scan. 3. **Settings page** with tabs and toggle switches. == Frequently Asked Questions == = Does this plugin change my content automatically? = No. It only analyzes and gives you insights β€” you decide what to edit, trash, or keep. = Will this slow down my site? = No. Scans are paginated and run via AJAX on demand or after updates. No heavy background tasks. = Can I use it on multisite? = Yes. It works on multisite (per-site basis). Global network-wide tools are planned. = What about WP-CLI? = Yes! You can scan posts and pages directly from the command line: `wp fcradar scan` You can also filter by type or age, for example: `wp fcradar scan --post_type=page --older_than=365` == Changelog == = 0.2.0 = * New AJAX-paged scanner with live progress bar. * Instant filters (status + search). * KPI badges clickable for quick filtering. * Bulk actions (trash/draft). * CSV export of visible columns. * Tabbed settings UI with tooltips. * Weekly email notification of top obsolete content. * Improved security: nonces, sanitization, escaping. * Better UX: auto-refresh, smooth loading overlay. * Bugfix: duplicate KPIs after scan resolved. = 0.1.0 = * Initial release: basic scan and table. == Upgrade Notice == = 0.2.0 = Major upgrade with new dashboard, AJAX scan, KPIs and bulk actions. Recommended for all users.