A slow WordPress site is almost never "WordPress being slow". It's a build-up of small decisions: an overloaded shared host, twelve plugins loading their scripts on every page, 4 MB images served as-is. The good news: you can tackle this in order of impact, with no rebuild.
Here are the levers, from the most worthwhile to the most marginal. Do them in this order, and measure after each step with our audit or PageSpeed Insights.
1. Hosting, first
This is the glass ceiling. On a €3/month shared plan shared with 300 other sites, no optimisation will save you. Your server response time (TTFB) will stay high because the machine is overloaded.
- Aim for a TTFB under 500 ms. Beyond that, look at the host first.
- Managed WordPress hosting, or a good VPS, changes everything on a site with traffic.
- Enable PHP 8.1 or newer: the gain is free and often dramatic.
2. A cache, the right one
Without a cache, WordPress rebuilds every page on every visit: it queries the database, runs the plugins, assembles the HTML. With a page cache, it serves a ready-made file. It's the biggest gain after hosting.
- One cache plugin at a time (WP Rocket, LiteSpeed Cache, or your host's cache). Two stepping on each other guarantees bugs.
- Enable page caching, and if possible an object cache (Redis or Memcached) on the server side.
3. Images: dead weight number one
On most of the sites we audit, images make up 60 to 80% of the page weight. They're also the easiest thing to fix.
- WebP or AVIF format: 30 to 70% lighter than JPEG, at equal quality.
- Right dimensions: don't serve a 3000 px image in a 600 px space.
- Lazy loading: off-screen images only load on scroll (WordPress does it natively, just check a plugin isn't breaking it).
4. Clean up the plugins
Every active plugin potentially loads its CSS and JavaScript on all pages, even where it isn't used. A contact form loading its library on the homepage is weight for nothing.
- Disable what's no longer used. An inactive plugin doesn't slow things down, but an active "just in case" one does.
- Prefer a few solid, maintained plugins over a dozen small ones.
- Be wary of heavy page builders (some generate enormous HTML).
5. Slim down the database
Over time, the database fills up with post revisions, auto-drafts, tables left behind by old plugins, logs. Nothing dramatic, but regular cleaning keeps queries fast.
How to know it worked
Don't trust your gut: your browser already has everything cached. Measure with a neutral tool, on mobile, and look at the Core Web Vitals:
- LCP (the largest visible element): aim for under 2.5 s.
- CLS (visual stability): under 0.1.
- INP (responsiveness): under 200 ms.
Take a measurement before you start, and one after each step. It's the only way to know what really paid off.