{"id":371952,"date":"2026-09-21T15:09:17","date_gmt":"2026-09-21T15:09:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cb-site-health-debug\/"},"modified":"2026-09-21T15:08:41","modified_gmt":"2026-09-21T15:08:41","slug":"cb-site-health-debug","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cb-site-health-debug\/","author":23226273,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1.2","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"CB Site Health & Debug","header_author":"CB","header_description":"A developer debug bar (DB queries, hooks, PHP errors, HTTP requests, template hierarchy) plus a Tools page that scans your site for common performance and configuration problems \u2014 slow queries, bloated autoloaded options, missing caching, overdue cron, WooCommerce Action Scheduler backlogs, and more \u2014 with plain-English fixes, one-click cleanup, trend history, and an optional weekly email digest.","assets_banners_color":"23282c","last_updated":"2026-09-21 15:08:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"chrismaryey02","date":"2026-09-21 15:08:41","revision":3705831}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3705831,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3705831,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3705831,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3705831,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3705831,"resolution":"1","location":"assets","locale":"","width":995,"height":281},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3705831,"resolution":"2","location":"assets","locale":"","width":1839,"height":425}},"screenshots":{"1":"The CB Site Health &amp; Debug performance report, showing status badges and fixes.","2":"The front-end debug bar panel.","3":"Settings \u2014 slow query threshold, front-end bar toggle, weekly email digest."}},"plugin_section":[],"plugin_tags":[94,247,51930,151481,286],"plugin_category":[45,54,59],"plugin_contributors":[281392],"plugin_business_model":[],"class_list":["post-371952","plugin","type-plugin","status-publish","hentry","plugin_tags-debug","plugin_tags-performance","plugin_tags-query-monitor","plugin_tags-site-health","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-chrismaryey02","plugin_committers-chrismaryey02"],"banners":{"banner":"https:\/\/ps.w.org\/cb-site-health-debug\/assets\/banner-772x250.png?rev=3705831","banner_2x":"https:\/\/ps.w.org\/cb-site-health-debug\/assets\/banner-1544x500.png?rev=3705831","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cb-site-health-debug\/assets\/icon-128x128.png?rev=3705831","icon_2x":"https:\/\/ps.w.org\/cb-site-health-debug\/assets\/icon-256x256.png?rev=3705831","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cb-site-health-debug\/assets\/screenshot-1.png?rev=3705831","caption":"The CB Site Health &amp; Debug performance report, showing status badges and fixes."},{"src":"https:\/\/ps.w.org\/cb-site-health-debug\/assets\/screenshot-2.png?rev=3705831","caption":"The front-end debug bar panel."}],"raw_content":"<!--section=description-->\n<p>CB Site Health &amp; Debug is a two-part tool for developers and site owners who want to know <em>why<\/em> a page is slow and <em>what<\/em> to fix, without digging through server logs.<\/p>\n\n<p><strong>1. Front-end debug bar<\/strong><\/p>\n\n<p>A toolbar item (visible only to logged-in administrators) that opens a panel showing, for the exact page you're looking at:<\/p>\n\n<ul>\n<li>Database queries, with timing and the code that triggered each one (requires <code>SAVEQUERIES<\/code>)<\/li>\n<li>Hooks and actions fired, with counts<\/li>\n<li><code>_doing_it_wrong()<\/code> calls and deprecated function\/argument\/hook usage<\/li>\n<li>PHP notices, warnings, and errors<\/li>\n<li>Outbound HTTP API calls and their response times<\/li>\n<li>Enqueued scripts and styles, with handles, sources, versions, and dependencies<\/li>\n<li>Loaded text domains, transient writes, and capability checks<\/li>\n<li>WordPress lifecycle timing (plugins_loaded \u2192 init \u2192 template_redirect \u2192 footer)<\/li>\n<li>Template hierarchy and conditional tags<\/li>\n<li>A custom <code>cbdd_log( $value )<\/code> helper you can call from your own code to send values to the panel, the same way you'd use <code>error_log()<\/code><\/li>\n<\/ul>\n\n<p><strong>2. Site Health &amp; Debug report (Tools menu)<\/strong><\/p>\n\n<p>A page that scans your site for common performance and configuration problems and rates each one Good \/ Warning \/ Needs Fixing, with a plain-English explanation and a fix \u2014 covering PHP\/server settings, database bloat (autoloaded options, revisions, expired transients), caching (object cache, page cache), overdue cron events, unoptimized images, and \u2014 when WooCommerce is active \u2014 Action Scheduler backlogs.<\/p>\n\n<p>It also includes:<\/p>\n\n<ul>\n<li><strong>One-click cleanup<\/strong> \u2014 remove expired transients, delete old post revisions, clear the slow-query log<\/li>\n<li><strong>Slow query log<\/strong> \u2014 queries over a configurable threshold are saved across visits, not just the current page load<\/li>\n<li><strong>History &amp; trend<\/strong> \u2014 a daily snapshot shows what's newly failing or fixed since the last check, and a 10-day trend table<\/li>\n<li><strong>Admin menu badge<\/strong> \u2014 a red count bubble on the Tools menu when critical issues exist, refreshed daily even if nobody opens the page<\/li>\n<li><strong>Optional weekly email digest<\/strong> \u2014 a summary of critical\/warning findings sent to an address you choose<\/li>\n<\/ul>\n\n<p>Everything is restricted to users with the <code>manage_options<\/code> capability. Nothing runs for site visitors, and no data leaves your site \u2014 there is no external service, tracking, or license check involved.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/cb-site-health-debug<\/code>, or install it through the WordPress Plugins screen directly.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen.<\/li>\n<li>Open <strong>Tools \u2192 CB Site Health &amp; Debug<\/strong> for the performance report, or look for the debug bar in the admin toolbar as a logged-in administrator.<\/li>\n<li>(Optional) Add <code>define( 'SAVEQUERIES', true );<\/code> to <code>wp-config.php<\/code> to enable database query capture in the debug bar and the slow query log.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20slow%20down%20my%20site%20for%20visitors%3F\"><h3>Will this slow down my site for visitors?<\/h3><\/dt>\n<dd><p>No. Every part of the plugin checks <code>current_user_can( 'manage_options' )<\/code> before doing anything, so regular visitors and non-admin users never trigger any of its collectors.<\/p><\/dd>\n<dt id=\"why%20don%27t%20i%20see%20any%20database%20queries%3F\"><h3>Why don't I see any database queries?<\/h3><\/dt>\n<dd><p>Query capture requires <code>SAVEQUERIES<\/code> to be enabled in <code>wp-config.php<\/code> \u2014 the same requirement WordPress core itself imposes for this data. The plugin will tell you when it's off instead of showing nothing silently.<\/p><\/dd>\n<dt id=\"does%20the%20performance%20report%20run%20on%20every%20page%20load%3F\"><h3>Does the performance report run on every page load?<\/h3><\/dt>\n<dd><p>No. It only runs when you open Tools \u2192 CB Site Health &amp; Debug, plus a lightweight daily WP-Cron check that refreshes the admin-menu badge and trend history.<\/p><\/dd>\n<dt id=\"does%20this%20send%20any%20data%20outside%20my%20site%3F\"><h3>Does this send any data outside my site?<\/h3><\/dt>\n<dd><p>No, unless you turn on the optional weekly email digest, which uses your site's own <code>wp_mail()<\/code> to send to an address you configure. There is no external analytics, license server, or third-party service involved.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20data%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to the data if I delete the plugin?<\/h3><\/dt>\n<dd><p>Deleting it through the Plugins screen removes its settings and its two small database tables (the slow-query log and the health-check history). Deactivating alone does not delete anything.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Removed the duplicate \"Tested up to\" plugin header (this value belongs only in readme.txt, per WordPress.org guidelines).<\/li>\n<li>Corrected the Contributors list to use the correct WordPress.org username.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Code-quality pass: proper prefixing on the internal class\/function names, cache-busting version added to registered assets, superglobal values sanitized before use, and all custom-table SQL now uses prepared identifier placeholders instead of direct string interpolation.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"A developer debug bar plus a plain-English site performance report, with one-click cleanup, trend history, and an optional weekly email digest.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=371952"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/chrismaryey02"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371952"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371952"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371952"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371952"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371952"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}