Key takeaways
- Speed work follows a clear order: hosting → caching → images → JavaScript/CSS → fonts → database.
- Measure with field data (Search Console, PageSpeed Insights top section), not just Lighthouse scores.
- Most slow WordPress sites suffer from heavy themes/builders, too many plugins and unoptimised images.
A slow WordPress site loses visitors, enquiries and rankings. I’ve taken sites from 6-second mobile load times to under 2 seconds without changing their design, simply by working through the layers below in order. Use this as your checklist.
Step 0: measure first#
- Search Console → Core Web Vitals: which URL groups fail, on mobile or desktop?
- PageSpeed Insights on your homepage, a blog post and a key landing page.
- Note TTFB, LCP, INP and CLS and the LCP element for each.
- Install Query Monitor (temporarily) to spot slow plugins and database queries.
1. Hosting and server#
- PHP 8.2 or 8.3 — significantly faster than PHP 7.x.
- Enough CPU/RAM; avoid oversold cheap shared hosting for business sites — see hosting types.
- Data centre close to your audience (Mumbai or Singapore for India).
- HTTP/2 or HTTP/3, Brotli compression, OPcache enabled.
- Target TTFB under 0.8 s.
2. Caching#
- Page caching: server-level (LiteSpeed, Nginx FastCGI, host caching) or one caching plugin.
- Object caching: Redis or Memcached for dynamic sites (WooCommerce, membership).
- CDN: Cloudflare or your host’s CDN for static files, optionally full-page edge caching — see Cloudflare setup.
- Browser caching: long cache lifetimes for versioned CSS/JS/images.
3. Images#
- Resize before uploading; nothing wider than ~2000 px for full-width images.
- Convert to WebP or AVIF and compress (image optimisation plugin or CDN).
- Keep native lazy loading for below-the-fold images; never lazy-load the hero — see lazy loading.
- Replace hero sliders with a single image or text.
Need a hand with this?
Get a quick, honest review of your website’s SEO.
4. JavaScript and CSS#
- Deactivate plugins you don’t need; unload plugin assets on pages that don’t use them.
- Defer scripts and delay non-critical third-party tags — see defer vs async and third-party scripts.
- Remove unused CSS / generate critical CSS — see CSS performance.
- Use facades for YouTube and Maps — see embeds guide.
- Consider replacing heavy page builders on key pages with block editor layouts.
5. Fonts#
Limit families and weights, use font-display: swap, and self-host if possible — see web fonts guide.
6. Database and backend#
- Clean post revisions, spam comments, expired transients and orphaned data — see database optimization.
- Limit revisions:
define( 'WP_POST_REVISIONS', 10 ); - Check autoloaded options size (large autoload data slows every request).
- Control the Heartbeat API on admin-heavy sites.
7. Verify and monitor#
Re-test after each change so you know what helped. Field data in Search Console updates over 28 days. Re-check whenever you add a plugin or a marketing tag.
WordPress speed FAQ#
Which caching plugin is best?#
Use what fits your server: LiteSpeed Cache on LiteSpeed hosting, host-provided caching on managed hosts, or WP Rocket/FlyingPress elsewhere. Only one.
Will a CDN alone make my site fast?#
It helps with static files and distance, but slow servers, heavy JavaScript and large images still need fixing.
Is a 100 PageSpeed score necessary?#
No. Aim to pass Core Web Vitals for real users; chasing 100 often brings diminishing returns.