{"id":339943,"date":"2026-07-21T19:12:18","date_gmt":"2026-07-21T19:12:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/qaiyo-web-performance-surgeon\/"},"modified":"2026-07-21T19:12:05","modified_gmt":"2026-07-21T19:12:05","slug":"qaiyo-web-performance-surgeon","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/qaiyo-web-performance-surgeon\/","author":23510315,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Qaiyo Web Performance Surgeon","header_author":"Qaiyo","header_description":"Diagnose what actually slows your site down \u2014 file- and function-level attribution of SQL, hooks, HTTP and assets, measured on a real front-end render.","assets_banners_color":"","last_updated":"2026-07-21 19:12:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/qaiyo-plugins.com\/qaiyo-web-performance-surgeon","header_author_uri":"https:\/\/qaiyo-plugins.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"qaiyo","date":"2026-07-21 19:12:05"}},"upgrade_notice":{"1.0.0":"<p>First public release on WordPress.org.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[153,23519,187,247,23044],"plugin_category":[52,54,59],"plugin_contributors":[267332],"plugin_business_model":[],"class_list":["post-339943","plugin","type-plugin","status-publish","hentry","plugin_tags-database","plugin_tags-diagnostics","plugin_tags-optimization","plugin_tags-performance","plugin_tags-profiling","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-qaiyo","plugin_committers-qaiyo"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/qaiyo-web-performance-surgeon.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Most performance tools tell you <em>that<\/em> your site is slow. Qaiyo Web Performance Surgeon tells you <strong>what<\/strong> is slow, <strong>where<\/strong> it comes from, and <strong>how much<\/strong> you would save by fixing it \u2014 then fixes the safe ones in one click.<\/p>\n\n<p>It measures a real, anonymous visitor render (not your logged-in admin view) by running a tokened loopback request, and attributes every cost back to the exact plugin, file and line responsible.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>File- and function-level attribution<\/strong> \u2014 every slow query, hook and asset is traced to the exact plugin, file and line responsible, not just \"the database is slow\".<\/li>\n<li><strong>Measures the real visitor render<\/strong> \u2014 a tokened, anonymous loopback captures the logged-out front-end page, not your admin-skewed view.<\/li>\n<li><strong>Estimated time saving per finding<\/strong> \u2014 every issue is ranked with an honest millisecond estimate, so you fix the biggest wins first.<\/li>\n<li><strong>Database profiling<\/strong> \u2014 per-query timing, duplicate-query detection and bloated autoloaded-option detection.<\/li>\n<li><strong>Hook and callback timing<\/strong> \u2014 per-callback cost with plugin attribution, captured with low overhead (no per-call backtraces).<\/li>\n<li><strong>Blocking HTTP detection<\/strong> \u2014 flags slow external requests made while the page renders.<\/li>\n<li><strong>Asset inventory<\/strong> \u2014 enqueued scripts and styles listed with their owning plugin.<\/li>\n<li><strong>Real browser metrics<\/strong> \u2014 Largest Contentful Paint, Cumulative Layout Shift, long tasks and navigation timing from an actual browser render.<\/li>\n<li><strong>Safe one-click fixes<\/strong> \u2014 reversible toggles for common wins; no source files are ever modified.<\/li>\n<li><strong>Zero overhead on live traffic<\/strong> \u2014 measurement only runs for a tokened scan request; normal visits pay nothing.<\/li>\n<li><strong>Available in 11 languages.<\/strong><\/li>\n<\/ul>\n\n<h4>What it measures<\/h4>\n\n<ul>\n<li><strong>Database<\/strong> \u2014 every query with its execution time, paired to the calling plugin\/file\/line (via SAVEQUERIES), plus duplicate-query and autoloaded-option detection.<\/li>\n<li><strong>Hooks<\/strong> \u2014 per-callback timing with plugin attribution, captured without per-call backtraces (low overhead).<\/li>\n<li><strong>HTTP<\/strong> \u2014 outbound requests made during render, flagging blocking external calls.<\/li>\n<li><strong>Assets<\/strong> \u2014 enqueued scripts and styles with their owners.<\/li>\n<li><strong>Browser<\/strong> \u2014 real LCP, CLS, long tasks and navigation timing, captured from an actual browser render.<\/li>\n<\/ul>\n\n<h4>Diagnosis and one-click fixes<\/h4>\n\n<p>The rule engine turns raw measurements into ranked findings with an estimated time saving for each, and offers safe, reversible one-click fixes for common wins:<\/p>\n\n<ul>\n<li>Disable the emoji detection script<\/li>\n<li>Disable wp-embed.js<\/li>\n<li>Remove jQuery Migrate<\/li>\n<li>Dequeue front-end Dashicons<\/li>\n<li>Stop autoloading a bloated option<\/li>\n<\/ul>\n\n<p>Every fix is a toggle you can undo \u2014 no source files are ever rewritten.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>Scans run on your own site. No data is sent to any third party.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> and activate it.<\/li>\n<li>Open <strong>Performance Surgeon<\/strong> in the admin menu.<\/li>\n<li>Install the scan helper when prompted (a tiny must-use plugin that only activates during a scan and is removed on deactivation).<\/li>\n<li>Enter a URL and run a scan.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20slow%20down%20my%20live%20site%3F\"><h3>Does it slow down my live site?<\/h3><\/dt>\n<dd><p>No. Measurement only runs for a tokened scan request; every normal page load exits on the first line of the scan helper at zero cost.<\/p><\/dd>\n<dt id=\"why%20does%20it%20install%20a%20must-use%20plugin%3F\"><h3>Why does it install a must-use plugin?<\/h3><\/dt>\n<dd><p>To capture the <em>whole<\/em> request \u2014 including the earliest database queries \u2014 the SAVEQUERIES flag must be set before WordPress loads its database layer. A tiny must-use loader does this, but only during a scan. It is removed automatically when you deactivate the plugin.<\/p><\/dd>\n<dt id=\"are%20the%20estimated%20savings%20exact%3F\"><h3>Are the estimated savings exact?<\/h3><\/dt>\n<dd><p>They are honest estimates based on measured data, shown under instrumentation. Treat them as a prioritised guide, not a guarantee.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release on WordPress.org.<\/li>\n<li>File- and function-level performance attribution for SQL, hooks, HTTP and assets, measured on a real anonymous visitor render via a tokened loopback.<\/li>\n<li>Real-browser metrics (LCP, CLS, long tasks, navigation timing) captured from an actual render.<\/li>\n<li>Rule engine with ranked findings, estimated time savings, and safe reversible one-click fixes.<\/li>\n<li>Tabbed admin page (Diagnostics, Browser metrics, Loopback test) with the Qaiyo design system.<\/li>\n<li>Bundled translations for 11 languages.<\/li>\n<li>Clean uninstall: removes the plugin's option, cached transient and scan-helper on deletion.<\/li>\n<\/ul>","raw_excerpt":"Diagnose what actually slows your site down \u2014 file- and function-level attribution of SQL, hooks, HTTP and assets, measured on a real visitor render.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/339943","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=339943"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/qaiyo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=339943"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=339943"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=339943"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=339943"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=339943"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=339943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}