Know what your plugins are really doing.
Audit conflicts, performance, PHP compatibility, and debug errors β all from your WordPress admin dashboard.
π Documentation Β Β·Β π WordPress.org Β Β·Β π Report a Bug Β Β·Β π‘ Request a Feature
When you install multiple WordPress plugins, things go wrong silently.
Scripts load twice. Hooks collide. Deprecated functions throw warnings. PHP version mismatches cause unexpected failures. Most site owners never notice β until something breaks in production.
Health Radar surfaces these problems before they reach your users.
| Module | What It Does |
|---|---|
| π Conflict Detector | Scans enqueued scripts and styles for duplicate source files. Detects hook collisions where two or more plugins attach to the same WordPress action or filter. |
| β‘ Performance Panel | Counts enqueued JS/CSS files, estimates asset payload, measures DB query count via SAVEQUERIES, and audits wp_options autoload bloat. Outputs a 0β100 Health Score. |
| π PHP Compatibility | Reads each plugin's Requires PHP header and compares it against the active server PHP version. Flags incompatible plugins and deprecated WordPress function usage. |
| π Debug Log Analyzer | Parses wp-content/debug.log, categorizes entries as Fatals, Warnings, or Notices, and attributes errors to the originating plugin via stack trace path matching. |
| 𧬠Duplicate Asset Detector | Fingerprints local JS/CSS files via md5_file() to catch identical libraries loaded under different handles (jQuery, Lodash, Moment.js, Chart.js, and more). |
| π Report Generator | Aggregates all module output into a single printable page. Export to PDF via the browser's native print dialog, or pull JSON output via WP-CLI for automated pipelines. |
| Minimum | |
|---|---|
| WordPress | 6.3 |
| PHP | 8.1 |
From the WordPress Dashboard
- Go to Plugins β Add New Plugin
- Search for
Health Radar - Click Install Now, then Activate
Manual Upload
- Download the latest release from the Releases page
- Upload the
health-radarfolder to/wp-content/plugins/ - Activate from the Plugins screen in WordPress
Via WP-CLI
wp plugin install health-radar --activateAfter activation, a Health Radar menu appears in your WordPress sidebar.
| Page | Description |
|---|---|
| Dashboard | Overall Health Score and a summary of all modules |
| Conflicts | Duplicate script handles and hook collisions |
| Performance | Asset count, payload size, DB query count, autoload size |
| PHP Compatibility | Per-plugin PHP requirements vs. current server PHP |
| Debug Log | Parsed log entries grouped by plugin and severity |
| Generate Report | Full single-page report, exportable to PDF |
# Run a full health scan
wp healthmonitor scan
# Show Health Score only
wp healthmonitor score
# List all detected conflicts
wp healthmonitor conflicts
# Generate a full report
wp healthmonitor report
# Generate report as JSON (for pipelines/automation)
wp healthmonitor report --format=json
# View recent debug log entries
wp healthmonitor log --last=50The score is a weighted aggregate across four dimensions, totaling 100 points.
| Dimension | Weight | Description |
|---|---|---|
| Plugin count score | 30 pts | Active plugin count impact |
| Asset count score | 30 pts | Total enqueued JS/CSS handle count |
| DB query score | 20 pts | Query count scoring when SAVEQUERIES is enabled |
| Autoload score | 20 pts | Total autoloaded options payload |
A score of 80+ is considered healthy. Below 50 indicates significant issues requiring attention.
Note: If
SAVEQUERIESis disabled, DB query count cannot be measured and this dimension currently returns full marks.
This plugin was built with security-first principles throughout.
- Sensitive log/readme scanning uses
WP_Filesystem(no directfopen/freadin those modules) - All AJAX handlers verify nonces via
check_ajax_referer() - All admin pages enforce
manage_optionscapability check - All output escaped with
esc_html(),esc_attr(), andesc_url() - All database queries use
$wpdb->prepare() - Autoload query result cached with
wp_cache_get/setto avoid redundant DB hits - Zero external HTTP requests β ever
This plugin does not collect, transmit, or store any data outside of the WordPress site it is installed on.
No telemetry. No usage tracking. No external API calls. No phoning home.
Contributions are welcome. Please open an issue before submitting a PR to discuss the change first.
git checkout -b feature/your-feature-name
git commit -m "Add: brief description"
git push origin feature/your-feature-nameAll PHP must follow WordPress Coding Standards.
Please see the CHANGELOG.md file for a complete history of changes.
Licensed under the GNU General Public License v2.0 or later.





