How to speed up a slow WordPress site
TL;DR
Images first, then the plugins loading on every page, then fonts, then hosting. Measure on a real phone before and after, because a good desktop score on a slow site means nothing.
Written by Nathan

Almost every slow WordPress site is slow for the same four reasons, in roughly the same order. Work through them in this order and most of the problem goes away.
First: measure what real visitors get
Before changing anything, look at field data, which is what actual visitors experienced, rather than only a lab test from a fast connection.
A perfect lab score on a site with poor field data means the test is not reflecting reality. The number that matters is what somebody gets on a phone on a mediocre signal.
1. Images
This is the biggest win on nearly every site and the least interesting, which is why it gets skipped.
- Serve modern formats. WebP or AVIF instead of JPEG and PNG.
- Size them for the slot. A 4000px photograph displayed at 600px is wasting most of its weight.
- Set width and height. Without them the layout jumps as images arrive, which is both annoying and a ranking signal.
- Lazy-load below the fold, but never the main image at the top, which makes the thing you are measuring arrive later.
2. The plugins loading on every page
Most WordPress sites load script for features that appear on one page, or on none. A contact form plugin loading its assets on every page. A slider plugin still active from a design two rebuilds ago. Three analytics tools because nobody removed the old ones.
Go through the list and ask what each one does and who asked for it. Removing something is faster than optimising it, and this is usually where the second-biggest win is.
3. Fonts
Web fonts block text from rendering until they arrive.
- Host them yourself rather than calling a third party
- Subset to the characters you use
- Preload the one or two faces above the fold
- Set a fallback that does not shift the layout when the real face loads
Four small changes, and together they often move the headline metric more than anything except images.
4. Caching and hosting
A page cache in front of WordPress means most visitors never wait for PHP. Add a CDN if your audience is spread out, and check compression is actually switched on, because it frequently is not.
Hosting matters less than people think until it is genuinely bad. Cheap shared hosting shows up as slow server responses at the worst moments.
When tuning will not fix it
Some sites are slow because of what they were built on. A page builder rendering layouts in the browser, a theme loading its entire framework on every page, thirty plugins each adding a little.
You can tune that for weeks and arrive at “less bad”. Rebuilding on a clean custom theme is often cheaper than the tuning, and we will tell you honestly which situation you are in.
That is the assessment in our speed optimisation work, and it is how we build WordPress sites in the first place.
Keep reading
All articles
Shopify vs WooCommerce: which should you actually use?
Written by Jake
Squarespace vs WordPress: which is right for a small business?
Written by Nigel Adams
What WCAG 2.2 AA actually means for your website
Written by Evie
Wix vs WordPress: an honest comparison
Written by Nathan
WordPress vs Shopify: which for selling online?
Written by Jake
SEO for small businesses: a plain-English starter guide
Written by Nigel Adams
WordPress or headless: how to pick without regretting it later
Written by Nigel Adams
Nine things to fix before you pay anyone for a redesign
Written by Nigel Adams
Do I actually need a website?
Written by Nigel Adams
How long does it take to build a website?
Written by Josh
How much does a website cost in the UK?
Written by Nigel Adams
