All articles Performance · WordPress

How to speed up a WordPress site (without breaking it)

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).
The classic trap: piling up "all-in-one" optimisation plugins. Three plugins minifying the same CSS, and your site breaks visually. One well-tuned tool beats five badly configured ones.

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.