Skip to content

fzihak/Health-Radar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


🩺 Health Radar

Know what your plugins are really doing.
Audit conflicts, performance, PHP compatibility, and debug errors β€” all from your WordPress admin dashboard.


WordPress PHP License WP-CLI Plugin Check Version


πŸ“– Documentation Β Β·Β  πŸ”Œ WordPress.org Β Β·Β  πŸ› Report a Bug Β Β·Β  πŸ’‘ Request a Feature



The Problem

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.


Features


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.


Screenshots

Dashboard
Overall Health Score and module summary

Dashboard
Conflicts
Duplicate script handles and hook collisions

Conflicts
Performance
Asset count, DB queries, autoload bloat, Health Score

Performance
PHP Compatibility
Per-plugin PHP requirements vs. active server version

PHP Compatibility
Debug Log
Log entries grouped by plugin and error severity

Debug Log
Health Report
Full report β€” export JSON/TXT or print to PDF

Health Report

Requirements

Minimum
WordPress 6.3
PHP 8.1

Installation

From the WordPress Dashboard
  1. Go to Plugins β†’ Add New Plugin
  2. Search for Health Radar
  3. Click Install Now, then Activate
Manual Upload
  1. Download the latest release from the Releases page
  2. Upload the health-radar folder to /wp-content/plugins/
  3. Activate from the Plugins screen in WordPress
Via WP-CLI
wp plugin install health-radar --activate

Admin Pages

After 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

WP-CLI

# 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=50

How the Health Score Works

The 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 SAVEQUERIES is disabled, DB query count cannot be measured and this dimension currently returns full marks.


Security

This plugin was built with security-first principles throughout.

  • Sensitive log/readme scanning uses WP_Filesystem (no direct fopen/fread in those modules)
  • All AJAX handlers verify nonces via check_ajax_referer()
  • All admin pages enforce manage_options capability check
  • All output escaped with esc_html(), esc_attr(), and esc_url()
  • All database queries use $wpdb->prepare()
  • Autoload query result cached with wp_cache_get/set to avoid redundant DB hits
  • Zero external HTTP requests β€” ever

Privacy

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.


Contributing

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-name

All PHP must follow WordPress Coding Standards.


Changelog

Please see the CHANGELOG.md file for a complete history of changes.


License

Licensed under the GNU General Public License v2.0 or later.



Made with ❀️ by Foysal Zihak

GitHub LinkedIn


About

A WordPress plugin that audits installed plugins for conflicts, performance issues, PHP compatibility problems, and debug log errors.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Contributors