Performance faults live in production data. A profiler that can only run on an empty local copy is measuring a site that does not have the bug.
Almost every WordPress performance problem is a query that is fine against a thousand rows and ruinous against a million.
Profiling on production means enabling output that must never reach the public. It is scoped to your session rather than switched on globally, which is the usual reason people do not dare.
Query Monitor shows one request. The slow query log shows which queries are actually hurting across all of them, and most hosts will not give it to you.
A profiler is only useful against a dataset that reproduces the fault. Staging carries realistic volume rather than a demo install that will never be slow.
Knowing whether a query was answered from cache changes the diagnosis entirely, so cache hits and misses appear alongside the queries.
Debug collection has a cost of its own. It is enabled in a way that shows you the shape of the problem rather than the shape of the profiler.
The most common dead end is enabling a profiler locally, finding nothing, and concluding the problem is the host. The local copy simply does not have the data that causes it.
The value here is not speed but evidence: which query, how many times, and whether the cache answered it.
The tool is free and excellent. What is usually missing is somewhere it can tell you something true.
| Setting | What we do | Why |
|---|---|---|
| Debug visibility | Scoped to your session rather than enabled site-wide | Profiling on production requires output that must not reach visitors, and an all-or-nothing switch is why most people never profile the site that has the problem. |
| Slow query log | Made available rather than withheld | A profiler shows one request; the slow query log shows which queries hurt across every request, which is the difference between a sample and a pattern. |
| Staging data volume | Realistic rather than a demo install | A query that is instant against a thousand rows and fatal against a million cannot be reproduced on an empty copy, which is where most investigations stall. |
| Cache attribution | Hits and misses shown next to the queries | Whether a query ran or was answered from the object cache changes the conclusion completely, and without it you optimise the wrong thing. |
| Collection overhead | Kept low enough not to distort the measurement | Debug collection costs time itself, and a profile dominated by the profiler leads to conclusions about the tool rather than the site. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Move the site across — migration is free, debug access from day one.