WordPress is slow when you ask it to do too many things at once. The fix is to do fewer of them, not to install another plugin that promises to speed things up.
Every WordPress install reaches the moment where pages feel slow, the admin lags, and you start eyeing your plugin list with suspicion. The instinct is to install a caching or “optimization” plugin and hope for the best. That usually makes things worse, because most of those plugins solve a problem you can fix more cleanly without them.
This is the modern, honest playbook: fewer plugins, a real host, a modern PHP, and two cleanup tools you can run once a month. No magic, no thirty-step settings wizard.
Looking for caching plugin advice? Read How To: Don’t use WP Rocket! first. The short version: most WordPress sites do not need a caching plugin at all.
The Single Biggest Lever Is Plugins

Before anything else, count your active plugins. If the number starts with a 3 (or worse), that is almost certainly the reason your site is slow.
Rule of thumb: a content-only WordPress site should run with fewer than 12 to 15 active plugins. A store or membership site with logged-in users can justify 25 to 30. If any single plugin has dozens of features you do not use, replace it with a lighter one or live without it.
Each active plugin runs code on every page load, every admin click, every AJAX request. Even the well-written ones add a few milliseconds of overhead. Stack twenty of them and you have already spent more than a second before WordPress does anything you actually asked for.
The painful part is that “performance” and “optimization” plugins are often the worst offenders. They register hooks on every page, run their own background tasks, and add admin nag screens. The performance plugin is itself a performance problem 🙂
Audit your plugin list once a quarter. For each one, ask: do I actually use this? If not, deactivate and delete. Not just deactivate. Delete.
Get a Real Host
The second biggest lever is your hosting service. Cheap shared hosting at three dollars a month is fine for a static landing page. For anything with logged-in users, a shop, or non-trivial traffic, it is a daily drag.
What “a real host” means in 2026:
- Managed WordPress hosting (Kinsta, WP Engine, Rocket.net, Pressable, SiteGround’s higher tiers). They run optimized server stacks, handle backups, and patch security at the OS level.
- No shared CPU contention. Cheap hosts cram hundreds of sites onto one machine. If your neighbor on the box is hammering CPU, your site slows down through no fault of yours.
- PHP-FPM with modern HTTP and caching at the server level. This is invisible to you, and that is the point. It is the host’s job, not a plugin’s.
- Daily off-site backups included, not bolted on as a paid add-on.
Avoid raw VPS unless you have someone managing it for you. An un-tuned VPS is slower than decent managed hosting, and you also inherit every security patch as your problem.
See our Best Hosting Services for WordPress guide for current recommendations.
Use a Modern PHP
Check what PHP version your host is running. In 2026, you want PHP 8.3 or newer. Anything below PHP 8.2 is end-of-life and no longer getting security patches. PHP 7.x is ancient.
The jump from PHP 7 to PHP 8 was a real performance win, sometimes 20 to 30 percent faster on identical code, with zero work on your side. If your host is still on PHP 7.x, that is not a host. That is a museum.
The Empty Request Time

Here is a concept we made up at Meow Apps, but it is genuinely useful: the Empty Request Time is how long WordPress spends before it has done anything useful for a single request.
Every page load fires the full WordPress boot sequence: core loads, your theme loads, every active plugin loads, every plugin runs its init hooks, then your actual page query runs. Only after all of that does the response start being assembled. Even a “Hello World” page incurs this entire bootstrap.
Targets:
- Under 500 ms = healthy.
- 500 to 1,500 ms = your plugin stack is bloated.
- Over 2,000 ms = you will hit timeouts regularly. Something is fundamentally wrong.
If you have any Meow Apps plugin installed, visit Meow Apps → Dashboard. It runs an Empty Request Time benchmark every five seconds and shows a rolling average. The technique for finding your guilty plugin is straightforward: note the score, deactivate one plugin, click Reset, wait for the new score, compare. Repeat until you find the culprit.
Clean the Database
WordPress databases accumulate junk over time: post revisions (often hundreds per post), auto-drafts, expired transients, leftover sessions, orphaned tables from plugins you uninstalled years ago. None of this slows down browsing visitors directly, but it slows down the admin, every search, and every backup.
Before any cleanup, back up your site. This is non-negotiable. If you don’t have backups, BlogVault is the easy answer.
The clean way to do this in 2026 is Database Cleaner. It detects orphaned data, lets you preview what will be deleted, and runs the cleanup without you touching SQL. Honestly, it is better than most of the older all-in-one cleanup plugins, which is exactly why we built it 😉
If you prefer running raw SQL yourself, here are the basics:
-- Delete all post revisions
DELETE a, b, c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';
-- Delete auto-drafts
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
-- Optimize the standard tables
OPTIMIZE TABLE wp_commentmeta, wp_comments, wp_links, wp_options,
wp_postmeta, wp_posts, wp_terms, wp_term_relationships, wp_term_taxonomy;
You can also disable revisions entirely by adding this to wp-config.php (optional, only if you genuinely don’t use them):
define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', 259200);
Clean the Media Library

Your media library is the other side of the same problem. After a few years, you have hundreds or thousands of images that no post, page, or product actually references. They take storage space, slow down backups, and clutter the media picker.
Media Cleaner scans your install, finds the unused files, and lets you trash them in bulk. The Pro version goes further: it scans the actual filesystem to catch orphaned files that don’t even have a database entry. On a 5-year-old site, the Pro filesystem scan typically recovers 10 to 30 percent of your uploads directory.
Run Media Cleaner in safe mode first (which it defaults to). It moves files to its own trash table rather than deleting outright, so you can review and restore if you accidentally clear something that a page builder still references through a custom field.
What NOT to Use
The three plugin categories that promise speed but usually deliver pain:
- Caching plugins (WP Rocket, W3 Total Cache, WP Super Cache, and friends). They convert dynamic WordPress into static, which breaks logged-in pages, dynamic widgets, and your editing flow. Full breakdown here.
- “Optimization” plugins that minify, defer, and concatenate scripts. They break things subtly. Six months later you have a broken checkout and no idea which plugin to blame.
- Security plugins that run firewalls inside PHP. They slow every request and open their own attack surface. Let your host and Cloudflare handle security.
Cloudflare as Your Caching Layer
If you genuinely need page caching, do it at the edge. Cloudflare’s free tier sits in front of your site, caches static assets, serves them globally, and absorbs traffic spikes. No PHP code runs, no plugin to misconfigure, no risk of breaking logged-in pages because Cloudflare respects the cookies you tell it to respect.
Setup: change your DNS to point at Cloudflare, enable proxy mode, set a sensible cache policy, done. Fifteen minutes once and that is it for the next several years.
Questions People Ask
What is the single most effective way to make WordPress faster?
Remove plugins you don’t actually use. The number of active plugins is the strongest predictor of WordPress speed. A clean install with 10 plugins outperforms a bloated install with 40, regardless of which caching or optimization plugins are layered on top.
Do I need a caching plugin like WP Rocket?
Almost never. Caching at the server level (your host) and at the edge (Cloudflare) covers the same ground without breaking logged-in pages, dynamic content, or your editing flow. Caching plugins solve a problem that has been solved better elsewhere.
What PHP version should WordPress run on in 2026?
PHP 8.3 or newer. PHP 8.2 is end-of-life. PHP 7.x is unsupported and a security liability. Most managed hosts let you switch PHP version in one click.
How many plugins is too many?
For a content-only site, more than 15 starts hurting. For a store with logged-in users, more than 30. These are rules of thumb. A single heavy plugin can do more damage than ten well-written ones, so the count is a signal, not a verdict.
What’s the Empty Request Time and why does it matter?
It’s the time WordPress spends booting up before it does anything useful: loading core, theme, and every active plugin’s init code. Under 500 ms is healthy. Over 2,000 ms means timeouts and a bad admin experience. Meow Apps plugins ship a dashboard widget that measures it.
Should I optimize the database manually with SQL or use a plugin?
Either works. Manual SQL gives you precise control if you’re comfortable with it. Database Cleaner is the cleaner option if you’d rather not, with a preview step so you see what will be deleted before anything happens. Whichever path you pick, back up first.
How much storage can I recover by cleaning the media library?
On a typical 5-year-old WordPress site, Media Cleaner‘s filesystem scan recovers 10 to 30 percent of the uploads directory. On sites that have heavily used page builders or migrated themes, it can be more.
Is VPS hosting faster than shared hosting?
Only if it’s managed and tuned. A raw, un-optimized VPS is often slower than decent managed shared hosting, and you also become responsible for all OS updates and security patches. Unless you have a sysadmin in the loop, managed WordPress hosting is the better default.
Jordy’s Take
After fifteen years of building WordPress plugins and watching how sites actually break, my honest opinion is this: the WordPress performance industry exists because people would rather buy a $50 plugin than spend an afternoon deleting things they don’t need. The plugin sells the dream that you can stack complexity and then sprinkle magic on top.
Doesn’t work. Never has. The fastest WordPress site is the simplest one, on a real host, with a recent PHP, cleaned once a quarter. Everything else is theater 🙂
In Short
- Count your plugins. If you have more than 15 on a content site, that is your problem.
- Spend on hosting before you spend on plugins.
- Run PHP 8.3 or newer.
- Aim for Empty Request Time under 500 ms.
- Clean the database with Database Cleaner (or raw SQL if you prefer).
- Clean the media library with Media Cleaner.
- Don’t use caching, optimization, or PHP-firewall plugins. Use Cloudflare and a real host instead.
Two plugins to keep around: Database Cleaner for the data side, Media Cleaner for the files. Run each once a month. Your site stays light and your backups stay small 🙂