{"id":314064,"date":"2026-05-27T17:35:05","date_gmt":"2026-05-27T17:35:05","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/smart-site-health-monitor\/"},"modified":"2026-07-06T16:56:30","modified_gmt":"2026-07-06T16:56:30","slug":"smart-site-health-monitor","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/smart-site-health-monitor\/","author":23501000,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.2","stable_tag":"trunk","tested":"7.0.2","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Smart Site Health Monitor","header_author":"meetupadhyay","header_description":"Monitor your WordPress site health \u2014 detect plugin conflicts, slow queries, PHP errors, outdated software, and get a real-time health score. No coding required.","assets_banners_color":"2067a2","last_updated":"2026-07-06 16:56:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/smart-site-health-monitor\/","header_author_uri":"https:\/\/profiles.wordpress.org\/meetupadhyay\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":234,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"meetupadhyay","date":"2026-05-27 17:31:46"},"1.1.1":{"tag":"1.1.1","author":"meetupadhyay","date":"2026-05-27 18:00:47"},"1.3.0":{"tag":"1.3.0","author":"meetupadhyay","date":"2026-06-06 16:06:32"},"2.0.1":{"tag":"2.0.1","author":"meetupadhyay","date":"2026-07-06 16:45:48"}},"upgrade_notice":{"2.0.0":"<p>Major rewrite. Your existing scan results and score are migrated automatically \u2014 no action needed. Run a fresh full scan after updating to see the complete nine-module breakdown; the previous version only tracked three of these categories.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3551103,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3551103,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3551103,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3551103,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.1.1","1.3.0","2.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The main dashboard \u2014 overall health score, severity breakdown, and top recommendations.","2":"A module card expanded to show its individual issues and fixes.","3":"The Database module's one-click cleanup panel.","4":"Weekly email report settings."}},"plugin_section":[],"plugin_tags":[153,247,600,186,151481],"plugin_category":[54,59],"plugin_contributors":[266048],"plugin_business_model":[],"class_list":["post-314064","plugin","type-plugin","status-publish","hentry","plugin_tags-database","plugin_tags-performance","plugin_tags-security","plugin_tags-seo","plugin_tags-site-health","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-meetupadhyay","plugin_committers-meetupadhyay"],"banners":{"banner":"https:\/\/ps.w.org\/smart-site-health-monitor\/assets\/banner-772x250.png?rev=3551103","banner_2x":"https:\/\/ps.w.org\/smart-site-health-monitor\/assets\/banner-1544x500.png?rev=3551103","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/smart-site-health-monitor\/assets\/icon-128x128.png?rev=3551103","icon_2x":"https:\/\/ps.w.org\/smart-site-health-monitor\/assets\/icon-256x256.png?rev=3551103","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Smart Site Health Monitor gives you a single dashboard that answers one question: <strong>is my WordPress site actually healthy?<\/strong><\/p>\n\n<p>Version 2.0 is a complete rewrite. Instead of one flat scan, the plugin now runs nine independent analyzer modules and combines them into one overall score:<\/p>\n\n<ul>\n<li><strong>Performance<\/strong> \u2014 PHP version, memory limit, object cache, OPcache, autoloaded options, database size, Heartbeat API, browser caching and GZIP compression.<\/li>\n<li><strong>Security<\/strong> \u2014 SSL, debug mode exposure, file editing, file permissions, login protection, XML-RPC, REST API user enumeration, database table prefix, security keys\/salts, default admin username, security headers and directory listing.<\/li>\n<li><strong>Database<\/strong> \u2014 table overhead, post revisions, spam comments, expired transients, trashed content, orphaned post meta, largest tables, and unused\/orphaned tables.<\/li>\n<li><strong>Plugins<\/strong> \u2014 conflicts, inactive plugins, outdated plugins, and WordPress.org compatibility.<\/li>\n<li><strong>Theme<\/strong> \u2014 outdated themes, unused themes, and child theme best practices.<\/li>\n<li><strong>Cron<\/strong> \u2014 overdue scheduled events and WP-Cron configuration.<\/li>\n<li><strong>Backup<\/strong> \u2014 whether a backup solution is active at all, and how recently it last ran.<\/li>\n<li><strong>SEO<\/strong> \u2014 image alt text coverage, meta description coverage, permalink structure, XML sitemap, robots.txt, and search engine visibility.<\/li>\n<li><strong>Hosting<\/strong> \u2014 server environment and configuration constants that affect site health.<\/li>\n<\/ul>\n\n<p><strong>One-click fixes.<\/strong> The Database module doesn't just report problems \u2014 six of its findings (revisions, spam comments, expired transients, table overhead, trashed content, orphaned meta) can be cleaned up directly from the dashboard with a single click, and the score updates immediately without a page reload.<\/p>\n\n<p><strong>Weekly email reports.<\/strong> Turn on a weekly digest and get your site's health score, critical issues, and top recommendations emailed to you \u2014 no need to log in to check.<\/p>\n\n<p><strong>Built for real WordPress environments<\/strong>, not a demo: every check accounts for object-cache-backed sites, multisite quirks, and hosts that disable native WP-Cron in favor of a real server cron job.<\/p>\n\n<p>If you're updating from 1.x, your last scan results and score carry over automatically \u2014 you won't see an empty dashboard after updating.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/smart-site-health-monitor<\/code>, or install directly through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <strong>Site Health<\/strong> in your WordPress admin sidebar.<\/li>\n<li>Click <strong>Run Full Scan<\/strong> to see your site's health score for the first time.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20slow%20down%20my%20site%3F\"><h3>Does this plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. Scans only run when you click a button in wp-admin, or once a week if you enable email reports \u2014 never on your site's front end, and never on a normal page load.<\/p><\/dd>\n<dt id=\"will%20the%20one-click%20database%20fixes%20delete%20anything%20i%20need%3F\"><h3>Will the one-click database fixes delete anything I need?<\/h3><\/dt>\n<dd><p>The six cleanup actions (revisions, spam comments, expired transients, table overhead, trashed content, orphaned meta) only ever act on data WordPress itself already considers disposable \u2014 for example, \"trash\" only includes posts already moved to the trash, not published content. Nothing runs automatically; each action requires an explicit click.<\/p><\/dd>\n<dt id=\"i%20updated%20from%20a%20previous%20version%20%E2%80%94%20where%20did%20my%20data%20go%3F\"><h3>I updated from a previous version \u2014 where did my data go?<\/h3><\/dt>\n<dd><p>Your last scan results and overall score are migrated automatically the first time the updated plugin loads. You'll want to run a fresh full scan afterward to see the complete nine-module breakdown, since 1.x only tracked three of these categories.<\/p><\/dd>\n<dt id=\"does%20the%20weekly%20email%20report%20send%20by%20default%3F\"><h3>Does the weekly email report send by default?<\/h3><\/dt>\n<dd><p>No. Email reports are opt-in \u2014 the plugin will never email anyone until you explicitly enable it and confirm a recipient address under Site Health \u2192 Weekly Email Reports.<\/p><\/dd>\n<dt id=\"can%20other%20plugins%20extend%20this%20with%20their%20own%20checks%3F\"><h3>Can other plugins extend this with their own checks?<\/h3><\/dt>\n<dd><p>Yes. The <code>sshm_register_modules<\/code> action fires after all built-in modules are registered, passing the module manager instance, so a companion plugin can register additional analyzer modules without modifying this plugin's files.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Updated \"Tested up to\" to reflect the current WordPress version.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fixed the module grid leaving a lone card stranded on its own row with empty space beside it when the module count didn't divide evenly across columns.<\/li>\n<li>Fixed module cards being force-stretched to match the height of the tallest card in their row (most noticeable next to the Database module's cleanup panel), leaving shorter cards with large empty gaps.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete architectural rewrite: PSR-4 namespacing, a module manager, and a shared analyzer contract replace the original flat scan.<\/li>\n<li>Nine independent analyzer modules, each with its own score, replacing the three flat categories (score, plugins, database, php) from 1.x.<\/li>\n<li>New admin dashboard: real-time health score ring, severity breakdown, top-5 recommendations panel, and per-module issue detail \u2014 all updating live via AJAX with no page reloads.<\/li>\n<li>One-click database cleanup restored and extended from 1.x: revisions, spam comments, expired transients, table overhead, trashed content, and orphaned post meta, each independently triggerable from its own button.<\/li>\n<li>New: weekly email health reports, opt-in, with a \"send test report now\" option.<\/li>\n<li>New: Security, Cron, Backup, SEO, and Hosting modules \u2014 none of which existed in 1.x.<\/li>\n<li>New: extension point (<code>sshm_register_modules<\/code>) for future add-ons to register their own analyzer modules.<\/li>\n<li>Automatic migration of 1.x scan results and score on first load after updating, so the dashboard isn't empty immediately after upgrading.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>UI overhaul: database cleanup table redesigned in a LiteSpeed-style layout.<\/li>\n<li>Fixed a delete-revisions performance issue on sites with a large number of revisions.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Live-updating counts on the database cleanup screen after each fix, without a page reload.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Switched revision deletion to a direct SQL delete instead of a loop over <code>wp_delete_post_revision()<\/code>, for sites with 500+ revisions.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Raised the \"high revision count\" detection threshold after false positives on legitimately active sites.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: site health dashboard with plugin conflict detection, database issue detection, PHP configuration checks, and one-click database cleanup.<\/li>\n<\/ul>","raw_excerpt":"A complete WordPress site health dashboard \u2014 performance, security, database, plugins, SEO and more, with a live health score and one-click fixes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314064"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/meetupadhyay"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314064"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314064"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314064"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314064"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314064"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}