How to Speed Up WordPress in 2025
A practical checklist to make your WordPress site significantly faster.
A slow WordPress site costs you in three different currencies: bounced visitors, lost ad revenue, and Core Web Vitals — which now feed directly into how Google ranks you. The good news: most of the speed problems we see on customer sites come down to the same handful of fixes. Here is the order we apply them in.
1. Start with a real Lighthouse score
Run a Lighthouse audit (Chrome DevTools → Lighthouse → Performance) on your homepage and on a typical product or article page. Write down the LCP, INP and CLS numbers before you change anything — without a baseline you can't tell if a "fix" actually helped.
Aim for:
- LCP under 2.5s
- INP under 200ms
- CLS under 0.1
2. Pick hosting that fits the workload
Cheap shared hosting is responsible for a lot of "WordPress is slow" comments. If your Time To First Byte is over 600ms on a cached page, the hosting is the bottleneck, not the theme.
What to look for:
- PHP 8.2 or newer
- HTTP/3 support
- Server-side cache (Varnish, NGINX FastCGI, or a host-managed cache)
- A datacenter close to your audience
3. Add a caching plugin
If your host doesn't already run a server-side cache, install one. WP Rocket, LiteSpeed Cache or W3 Total Cache all do the job. Enable:
- Page cache
- Browser cache headers
- CSS and JS minification (turn this on last — it breaks the most things)
- Lazy-loading for off-screen images
4. Convert images to WebP or AVIF
Images are the single biggest part of most pages by weight. Convert them to WebP (great support) or AVIF (better compression, slightly newer). Plugins like ShortPixel or Imagify do the conversion in the background and keep the original as a fallback.
Also: always set width and height on <img> so the browser reserves space and your CLS stays near zero.
5. Audit your plugins
Open Query Monitor and load the slowest page. Sort by plugin time. Anything taking over 50ms on every request is a candidate for removal. Common offenders:
- Social-share plugins (replace with one inline
<a>per network) - "Related posts" plugins that run a full
WP_Queryper request - Analytics plugins that load 200KB of JS to send one pageview
6. Trim the database
Old post revisions, expired transients and spam comments add up. Run WP-Optimize once a quarter to clear them, and limit revisions per post by adding this to wp-config.php:
define( 'WP_POST_REVISIONS', 5 );
7. Use a CDN
Cloudflare's free tier is enough for most sites. Point your DNS at Cloudflare, enable "Auto Minify" off (your caching plugin already does this better), enable Brotli, and you're done. International visitors will see a 1–3 second improvement.
8. Measure again
Re-run Lighthouse on the same two pages. Compare to your baseline. If LCP didn't move, the issue is almost certainly an unoptimised hero image or a render-blocking third-party script — not WordPress itself.
A clean theme like ours, plus the eight steps above, is enough to push almost any WordPress site into the green for all three Core Web Vitals.