# deploy-and.run > Who merges so late, past midnight's chime, still pushing bugs to master's line? ## Posts - [The WordPress Performance Profiling Toolkit We Actually Use](https://deploy-and.run/blog/wordpress-performance/the-wordpress-performance-profiling-toolkit-we-actually-use-75): Not a plugin roundup. Four tools that actually found something on a real WordPress VIP network, what each one is... - [What 'VIP-Style Multisite' Actually Means for a Performance Bug](https://deploy-and.run/blog/server-infrastructure/what-vip-style-multisite-actually-means-for-a-performance-bug-82): Every fix in this series landed at a different layer — application code, shared plugin, edge config, vendor dashboard. The... - [Automating Index-Existence Guards So a Deploy Can't Race Its Own Migration](https://deploy-and.run/blog/devops-automation/automating-index-existence-guards-so-a-deploy-can-t-race-its-own-migration-78): The runtime existence check that kept one index rewrite safe to deploy in either order was a one-off. Here's the... - [The 465-Line Diff That Was Actually a 10-Line Fix](https://deploy-and.run/blog/devops-automation/the-465-line-diff-that-was-actually-a-10-line-fix-80): A one-line exception guard turned into a 465-line diff because a formatter had rewritten the whole file first. The fix... - [Turning a Multi-Step Dependency Bump Into an Autonomous Agent Loop](https://deploy-and.run/blog/devops-automation/turning-a-multi-step-dependency-bump-into-an-autonomous-agent-loop-81): A shared plugin version bump, a branch-validation step, a version-skew incident, five index migrations across a network, and a documented... - [Sizing a Covering Index on Shared Multisite MySQL](https://deploy-and.run/blog/server-infrastructure/sizing-a-covering-index-on-shared-multisite-mysql-79): An index that fixes one site's slow query has a write cost paid by every site sharing that database tier.... - [Why Your Full-Page Cache Needs an Opinion About Query Strings](https://deploy-and.run/blog/server-infrastructure/why-your-full-page-cache-needs-an-opinion-about-query-strings-83): Two separate incidents on the same network turned out to be the same root cause wearing different clothes: a cache... - [Shipping a Database Index Without an Outage on WordPress VIP](https://deploy-and.run/blog/devops-automation/shipping-a-database-index-without-an-outage-on-wordpress-vip-74): A shared plugin update needed five new indexes across a multisite network. The bug that almost shipped wasn't in the... - [Profiling What Googlebot Actually Sees: A BigQuery Log Deep Dive](https://deploy-and.run/blog/wordpress-performance/profiling-what-googlebot-actually-sees-a-bigquery-log-deep-dive-73): Search Console said one site's average crawl response time was roughly double a near-identical sibling's. The access logs disagreed —... - [Turning a Debugging Script Into a WP-CLI Profiler](https://deploy-and.run/blog/wordpress-performance/turning-a-debugging-script-into-a-wp-cli-profiler-76): The SAVEQUERIES mu-plugin from the last post left you with a raw log file and a promise to wrap WP-CLI... - [You Can't Eyeball a Geometry Library](https://deploy-and.run/blog/tooling-ai/you-can-t-eyeball-a-geometry-library-70): Three libraries offered the same outline-offset operation. Two were secretly the same algorithm and one quietly drifted — and the... - [When Your Performance Plugin Causes the Regression It's Supposed to Prevent](https://deploy-and.run/blog/wordpress-performance/when-your-performance-plugin-causes-the-regression-it-s-supposed-to-prevent-45): A plugin built to delay non-critical JavaScript until user interaction concentrated all of that JavaScript's cost into exactly the moment... - [The LCP Element That Wasn't Content](https://deploy-and.run/blog/wordpress-performance/the-lcp-element-that-wasn-t-content-43): Weeks of hero-image optimization went nowhere, because the thing Lighthouse was actually measuring wasn't the hero image at all —... - [One Bot Request Poisoned Our Cache — And Every Real Visitor Got the Broken Page](https://deploy-and.run/blog/wordpress-performance/one-bot-request-poisoned-our-cache-and-every-real-visitor-got-the-broken-page-42): Ads were randomly missing on one site, with no reproducible pattern anyone could find. The cause was a single automated... - [Two More Sitemap Bugs, and How to Fix a Plugin's Internals Without Forking It](https://deploy-and.run/blog/wordpress-performance/two-more-sitemap-bugs-and-how-to-fix-a-plugin-s-internals-without-forking-it-44): An N+1 query pattern and a pagination batch-size mismatch, both inside a popular SEO plugin's sitemap code — fixed by... - [MySQL Ignored Two Good Indexes: A WordPress Sitemap Performance Deep Dive](https://deploy-and.run/blog/wordpress-performance/mysql-ignored-two-good-indexes-a-wordpress-sitemap-performance-deep-dive-19): A hardcoded USE INDEX hint deep inside Yoast SEO core was sorting tens of thousands of rows the slow way.... - [Why Your Slow-Query Log Is Lying to You (a Little)](https://deploy-and.run/blog/wordpress-performance/why-your-slow-query-log-is-lying-to-you-a-little-20): Production slow-query logs only show what happened to run during their capture window. Here's how to find what they miss... # # Detailed Content ## Posts - Published: 2026-07-26 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/wordpress-performance/the-wordpress-performance-profiling-toolkit-we-actually-use-75 - Categories: WordPress & Performance - Tags: debugging, devops, performance, wordpress Not a plugin roundup. Four tools that actually found something on a real WordPress VIP network, what each one is blind to, and which symptom sends you to which one. - Published: 2026-07-25 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/server-infrastructure/what-vip-style-multisite-actually-means-for-a-performance-bug-82 - Categories: Server & Infrastructure - Tags: devops, infrastructure, performance, wordpress Every fix in this series landed at a different layer — application code, shared plugin, edge config, vendor dashboard. The scoping decision matters more than the fix itself, and it's rarely obvious from the bug report. - Published: 2026-07-24 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/devops-automation/automating-index-existence-guards-so-a-deploy-can-t-race-its-own-migration-78 - Categories: DevOps & Automation - Tags: automation, ci-cd, devops, mysql, wordpress The runtime existence check that kept one index rewrite safe to deploy in either order was a one-off. Here's the same pattern turned into a reusable pre-deploy CI gate for a whole network. - Published: 2026-07-23 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/devops-automation/the-465-line-diff-that-was-actually-a-10-line-fix-80 - Categories: DevOps & Automation - Tags: automation, devops, git, wordpress A one-line exception guard turned into a 465-line diff because a formatter had rewritten the whole file first. The fix wasn't the guard — it was separating the reformat from the change before anyone had to review it. - Published: 2026-07-22 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/devops-automation/turning-a-multi-step-dependency-bump-into-an-autonomous-agent-loop-81 - Categories: DevOps & Automation - Tags: automation, devops, mysql, wordpress A shared plugin version bump, a branch-validation step, a version-skew incident, five index migrations across a network, and a documented PR — run as one supervised agent loop instead of six separate manual steps. - Published: 2026-07-21 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/server-infrastructure/sizing-a-covering-index-on-shared-multisite-mysql-79 - Categories: Server & Infrastructure - Tags: devops, infrastructure, mysql, performance, wordpress An index that fixes one site's slow query has a write cost paid by every site sharing that database tier. A checklist for deciding whether a covering index actually pays for itself, before adding it. - Published: 2026-07-20 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/server-infrastructure/why-your-full-page-cache-needs-an-opinion-about-query-strings-83 - Categories: Server & Infrastructure - Tags: caching, devops, infrastructure, performance, wordpress Two separate incidents on the same network turned out to be the same root cause wearing different clothes: a cache key that let the request decide what it means, instead of the other way around. - Published: 2026-07-19 - Modified: 2026-07-19 - URL: https://deploy-and.run/blog/devops-automation/shipping-a-database-index-without-an-outage-on-wordpress-vip-74 - Categories: DevOps & Automation - Tags: devops, mysql, performance, wordpress A shared plugin update needed five new indexes across a multisite network. The bug that almost shipped wasn't in the indexes — it was in assuming a diff between two versions was the same thing as the full version. - Published: 2026-07-18 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/profiling-what-googlebot-actually-sees-a-bigquery-log-deep-dive-73 - Categories: WordPress & Performance - Tags: devops, performance, seo, wordpress Search Console said one site's average crawl response time was roughly double a near-identical sibling's. The access logs disagreed — until they were split by bot type, and a cache-busting tracking parameter fell out. - Published: 2026-07-17 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/turning-a-debugging-script-into-a-wp-cli-profiler-76 - Categories: WordPress & Performance - Tags: devops, mysql, performance, wordpress The SAVEQUERIES mu-plugin from the last post left you with a raw log file and a promise to wrap WP-CLI commands around it. Here's the tool, not just the promise. - Published: 2026-07-16 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/tooling-ai/you-can-t-eyeball-a-geometry-library-70 - Categories: Tooling & AI - Tags: debugging, geometry, libraries, testing Three libraries offered the same outline-offset operation. Two were secretly the same algorithm and one quietly drifted — and the only way to tell was a diff, because looking at the shapes told me nothing. - Published: 2026-07-15 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/when-your-performance-plugin-causes-the-regression-it-s-supposed-to-prevent-45 - Categories: WordPress & Performance - Tags: core-web-vitals, devops, javascript, performance A plugin built to delay non-critical JavaScript until user interaction concentrated all of that JavaScript's cost into exactly the moment interaction responsiveness gets measured. - Published: 2026-07-14 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/the-lcp-element-that-wasn-t-content-43 - Categories: WordPress & Performance - Tags: core-web-vitals, debugging, devops, performance Weeks of hero-image optimization went nowhere, because the thing Lighthouse was actually measuring wasn't the hero image at all — it was a cookie banner's logo. - Published: 2026-07-13 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/one-bot-request-poisoned-our-cache-and-every-real-visitor-got-the-broken-page-42 - Categories: WordPress & Performance - Tags: caching, debugging, devops, performance, wordpress Ads were randomly missing on one site, with no reproducible pattern anyone could find. The cause was a single automated request with the wrong Accept header, cached and served to everyone after it. - Published: 2026-07-12 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/two-more-sitemap-bugs-and-how-to-fix-a-plugin-s-internals-without-forking-it-44 - Categories: WordPress & Performance - Tags: devops, mysql, performance, seo, wordpress An N+1 query pattern and a pagination batch-size mismatch, both inside a popular SEO plugin's sitemap code — fixed by swapping internal objects at runtime, not by maintaining a fork. - Published: 2026-07-11 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/mysql-ignored-two-good-indexes-a-wordpress-sitemap-performance-deep-dive-19 - Categories: WordPress & Performance - Tags: devops, mysql, performance, seo, wordpress A hardcoded USE INDEX hint deep inside Yoast SEO core was sorting tens of thousands of rows the slow way. Here's how to find a bug like that, fix it without forking the plugin, and ship the fix safely. - Published: 2026-07-10 - Modified: 2026-07-18 - URL: https://deploy-and.run/blog/wordpress-performance/why-your-slow-query-log-is-lying-to-you-a-little-20 - Categories: WordPress & Performance - Tags: devops, mysql, performance, wordpress Production slow-query logs only show what happened to run during their capture window. Here's how to find what they miss — and a measurement mistake that almost shipped a bad fix.