Speed up WordPress. Not with another plugin.
WordPress is slow for one reason: every uncached request boots PHP, loads every plugin and queries MySQL before a single byte leaves the server. Here’s where the time goes — and how to remove it.
Updated Oct 23, 2026 · 7 min read
Anatomy of one request · illustrative
Where your TTFB goes
- DNS + TLS60 ms
- PHP bootstrap (wp-load)140 ms
- plugins_loaded · every active plugin260 ms
- MySQL · dozens of queries230 ms
- Theme template render170 ms
- Output buffering + flush60 ms
The usual fixes, and what they leave behind.
Each of these helps. None of them removes PHP from the request path, so every cache miss, logged-in editor and WooCommerce cart still pays the full cost.
| Fix | Typical gain | What’s still slow |
|---|---|---|
| Page-cache plugin | Big, on cache hits | Misses, logged-in users, carts, purges |
| Upgrade PHP | Some, on every request | Plugin bootstrap, query count |
| Redis object cache | Fewer queries | Another server to run |
| CDN | Static assets | HTML still from origin |
| Image optimiser | Better LCP | Server response time |
| Remove PHP (Presscomet) | Cached pages skip PHP entirely | The first request after an edit renders in Node.js |
Core Web Vitals, before and after
Illustrative example, not a measurement- LCP · good ≤ 2.5s
After: 0.9sBefore: 3.8s
The HTML arrives sooner, so the browser finds and starts loading the hero image sooner. - INP · good ≤ 200ms
After: 64msBefore: 310ms
Fewer plugin scripts competing for the main thread. Server components send no JavaScript of their own. - CLS · good ≤ 0.1
After: 0.01Before: 0.18
Layout shift mostly comes from the theme and late-loading scripts. Fewer plugin scripts means fewer late surprises.
Import it into a trial Presscomet, then run Lighthouse on both and compare. Your live site is only ever read.
Questions, answered.
Are these numbers a benchmark?
No. They are illustrative, to show where the time goes on each kind of request. Your numbers depend on your host, theme, plugins and traffic. Measure your own site before and after.
Doesn’t a caching plugin make WordPress just as fast?
For cached anonymous pages, a good page cache gets close. The difference is what happens around it: cache misses, logged-in users, purging after edits, and the plugins and PHP you still have to run and update.
How do I measure my own TTFB?
Run curl -o /dev/null -s -w "%{time_starttransfer}\n" https://yoursite.com/ a few times, or use the Network panel in your browser’s developer tools. Then do the same against a trial migration on a staging address.