· 2 min read
Why is my WordPress site slow? 9 common causes and how to fix them
A slow website costs you visitors, enquiries and search rankings. The good news is that WordPress sites tend to be slow for the same few reasons, and most of them can be fixed without a full rebuild.
Before you start, run a free speed test so you know your current mobile score. Mobile matters most: it’s what Google uses for rankings, and it’s usually much lower than desktop.
1. Oversized images
A 4 MB photo straight from a camera can be the single heaviest thing on a page. Resize images to the size they’re actually shown at, serve them as WebP or AVIF, and make sure WordPress delivers smaller versions to phones.
2. Too many plugins
The number of plugins matters less than what each one loads. A slider, a pop-up tool and a social feed can each add their own CSS and JavaScript to every page, even pages that don’t use them. Remove what you don’t need, and replace heavy plugins with lighter alternatives.
3. A heavy page builder
Page builders make editing easy, but they often add a lot of code: extra wrappers around every element, and stylesheets and scripts for features you never use. Elementor sites can be made much faster with the right settings and fewer add-ons. For sites where speed matters most, a custom theme is lighter still.
4. Slow hosting
If the server takes more than about half a second to start sending the page, everything else waits. Cheap shared hosting is the usual cause. A better plan, server-level caching or a host built for WordPress can make a big difference on its own.
5. No caching
Without caching, WordPress builds every page from scratch for every visitor. A caching plugin, or the caching your host provides, serves a ready-made copy instead. Set browser caching too, so returning visitors don’t download the same files again.
6. Render-blocking CSS and JavaScript
Files loaded at the top of the page stop it appearing until they’ve downloaded. The fix is to load only what each page needs, defer scripts that aren’t needed straight away, and inline the small amount of CSS needed for the first screen.
7. Web fonts
Fonts loaded from another server, in many weights, delay text from appearing. Host fonts on your own site, load only the weights you use, and use font-display: swap so text shows immediately.
8. Third-party scripts
Chat widgets, tracking tags, video embeds and booking tools often load large amounts of code from other servers. Keep the ones that earn their place, and load them only on the pages that need them, or after the visitor interacts with the page.
9. Layout shifts
If parts of the page jump around while it loads, Google measures it as Cumulative Layout Shift. The usual causes are images without a width and height, ads or embeds without reserved space, and fonts that swap at a different size.
Where to start
Fix the biggest problems first. Your speed test report lists the top fixes with the time each one would save, so start at the top. Images, caching and plugin clean-up alone often move a mobile score from the 30s into the 70s or higher.
If you’d rather have it done for you, see my WordPress speed optimisation service, or send me your site for a free review.