A slow WordPress site usually gets blamed on the wrong thing. The theme gets replaced, another caching plugin gets installed, someone upgrades the hosting, PageSpeed moves from 48 to 53, and everyone carries on wondering why the site still feels heavy.
WordPress can be fast. It can also be made extremely slow. The difference is usually not one dramatic problem, but five or six small decisions that have accumulated over time: oversized images, scripts nobody remembers adding, plugins doing overlapping jobs, or a page builder loading features the page does not use.
Here are the things we check first when a WordPress site starts feeling slower than it should.
Before you start: test more than the homepage
Run the homepage through PageSpeed Insights, but do not stop there. Test at least one service page, one blog post and, if you sell online, a product or shop page too. Different templates load different scripts and content, so a homepage scoring well does not mean the rest of the site does.
Pay more attention to the mobile result than desktop. A fast connection and a powerful laptop can hide a surprising amount of bad optimisation that becomes obvious on a phone.
10 common reasons WordPress websites get slow
1. Your images are much larger than they need to be
This is probably the most common problem we find. A hero image might display at 1,600 pixels wide while the uploaded file is 5,000 pixels across and several megabytes in size. WordPress can generate smaller versions, but that does not guarantee the correct one is actually being loaded on the page.
The format matters too. A photograph that could be a 150 KB WebP has no reason to arrive as a 1.8 MB PNG. Before changing themes, hosting or anything more complicated, check the images at the top of your slowest pages.
- Resize images close to the dimensions they actually display at.
- Compress them before or during upload.
- Use WebP or AVIF where appropriate.
- Avoid lazy loading the main image visible at the top of the page.
Lazy loading is useful further down the page, but delaying the main hero image can actually make the initial experience feel slower.
2. Too many plugins are loading on every page
The number of plugins alone is not the problem. Twenty small, well-written plugins can perform better than five heavy ones. What matters is what each plugin loads and whether that code is needed on the page the visitor is viewing.
A plugin might add CSS, JavaScript, an icon library and an external request to every page even though its feature only appears on the contact page. Multiply that across several plugins and the browser suddenly has a lot of unnecessary work to do.
We regularly find plugins that are:
- no longer being used
- duplicating another plugin
- installed for one very small feature
- loading assets across the whole site unnecessarily
- left behind after an old redesign or marketing campaign
Remove what you do not need before trying to optimise around it. There is little value in making unused code load more efficiently.
3. Your page builder is doing more work than you realise
Elementor, Divi and other builders are not automatically slow, but they make it very easy to build a slow website. Nested containers, animations, carousels, entrance effects, background videos, icon libraries and third-party widgets all add something. Individually most are harmless; across an entire page they start to matter.
The problem is rarely simply that “Elementor is slow.” It is usually that the page has twelve different things happening before the visitor has even scrolled. We build plenty of sites with Elementor; the difference is being selective about what gets used. If you are weighing up whether the builder itself should change, our Elementor vs Gutenberg comparison looks at the trade-offs before you rebuild anything.
A simple section containing a heading, text, an image and a button should not need six add-ons, multiple nested containers and dozens of unnecessary DOM elements. If you are choosing the foundations for a new build, we also covered how themes affect performance in our guide to the best WordPress themes for SEO.
4. Your fonts are heavier than the design needs
Fonts are easy to overlook because nobody thinks of typography as a performance problem. Then you inspect the page and discover it is loading far more files than the design actually uses.
- multiple font families
- six or seven different weights
- italics that never appear on the site
- Google Fonts loaded externally
- another icon font added by a plugin
Most sites do not need all of that. If the design uses regular, medium and bold, load those weights rather than everything from 100 through 900. Locally hosting fonts can also remove an external request and give you more control over how they load.
Fonts are rarely the single problem that transforms a website from slow to fast, but they are exactly the kind of small inefficiency that stacks up with everything else.
5. Third-party scripts are slowing down a site you already optimised
Sometimes the WordPress side is fine. Then the page starts loading Google Analytics, Tag Manager, Meta Pixel, live chat, Hotjar, a booking widget, reCAPTCHA, review widgets, maps and several marketing tools before the visitor has done anything.
Your server cannot optimise code it does not control. Third-party scripts are often among the slowest requests on a page, particularly when several of them begin loading immediately.
That does not mean removing every marketing or tracking tool. It means deciding what genuinely needs to load immediately and what can wait until the page has settled or the visitor interacts with it. A chat widget, for example, does not necessarily need to compete with the hero image during the first second of page load.
6. Your caching setup is either missing or unnecessarily complicated
Caching is one of those things people keep adding until nobody is quite sure which layer is responsible anymore. A typical WordPress site might have a caching plugin, hosting-level page caching, Cloudflare, browser caching and object caching all involved in some way.
Those layers can work together perfectly well when configured properly. They can also overlap, conflict or leave you clearing three different caches every time a page changes.
For a normal WordPress business site, the aim is fairly simple:
- avoid rebuilding the same page from scratch for every visitor
- cache static files for an appropriate amount of time
- deliver assets efficiently
- avoid multiple plugins trying to perform the same optimisation
More caching plugins does not mean more speed. One well-configured setup is better than three tools trying to solve the same problem.
7. The database has accumulated years of rubbish
This usually affects older sites more than new ones. WordPress databases naturally collect data over time, and a site that has been redesigned, extended and maintained for several years can end up carrying things it no longer needs.
- post revisions
- expired transients
- abandoned plugin tables
- WooCommerce session data
- old scheduled actions
- metadata from plugins that were removed years ago
A little of this is completely normal. On a site that has been through several rebuilds or years of plugin changes, however, it can become significant.
Database optimisation is not something we recommend doing blindly. Deleting the wrong table because a plugin labelled it “unused” is a particularly bad way to save a few milliseconds. Back the site up, identify what is actually there and clean deliberately.
8. Your hosting is the bottleneck
Sometimes it really is the server. If WordPress takes a long time to generate the initial response before the browser even begins loading the page, image compression and frontend optimisation can only take you so far.
Cheap shared hosting can be perfectly adequate for a small brochure website. Problems start when a site outgrows the resources available to it. WooCommerce, membership sites, heavy database queries, high traffic and logged-in users all put more pressure on hosting than a straightforward five-page business website.
Hosting should not automatically be the first thing you blame, though. Moving a badly built website to a faster server often gives you a faster badly built website. Fix the obvious frontend problems first, then see whether the server is still holding things back.
9. Your homepage is trying to impress everyone at once
This one starts as a design problem and quickly becomes a performance problem. A homepage keeps gaining features because each one sounds harmless on its own.
- a video background
- a slider
- animated statistics
- a portfolio carousel
- testimonial sliders
- an Instagram feed
- an embedded map
- multiple entrance animations
Performance decisions and design decisions are not separate. Every feature has a cost, but that does not mean the website has to look plain. It means the things you add should earn their place.
Good WordPress web design and development is partly knowing when another effect improves the experience and when it simply gives the browser more work.
10. Nobody has reviewed the site since it launched
A site can be fast when it launches and slow two years later. Someone installs a popup plugin, marketing adds another tracking script, the homepage gets three new videos, a review widget appears and somebody uploads twelve 4 MB photographs straight from a camera.
Nothing individually feels like a major change, so nobody checks performance afterwards. Six months later the site feels completely different even though there was never one obvious moment when it became slow.
Performance is maintenance, not a one-time score. If the site has become slow over time, a proper website performance and optimisation pass is usually more sensible than immediately rebuilding it.
What PageSpeed score should you actually aim for?
People get too attached to the number. A score of 100 is nice, but it is not the objective of the website. A page scoring 92 that generates enquiries is more useful than a stripped-down page scoring 100 that nobody acts on.
PageSpeed Insights is most useful as a diagnostic tool. Look at what is causing the delay rather than treating the score itself as the product. Pay particular attention when the same problem appears across several different templates.
- If every page reports oversized images, fix the image workflow.
- If every page waits on the same third-party script, investigate that script.
- If only one heavily designed landing page performs badly, the problem is probably that page rather than WordPress as a whole.
Do you need to change your WordPress theme?
Usually, no. A theme change makes sense when the theme itself is genuinely bloated, poorly maintained or preventing you from making improvements without fighting it. But we see far more websites where replacing the theme would simply rebuild the same problems on a new foundation.
We went into this in more detail in our WordPress themes and SEO guide, but the short version is that a lightweight theme helps. It does not compensate for oversized images, unnecessary scripts, too many plugins or a poorly constructed page.
Do you need a completely new website?
Again, not necessarily. If the design still works, the structure makes sense and the CMS is manageable, performance problems can often be fixed without starting over.
A rebuild becomes more reasonable when the problems are structural: years of patches, an unmaintainable plugin stack, broken templates, poor mobile layouts or a setup nobody wants to touch anymore.
Even then, faster technology is not automatically the answer. We see the same mistake with businesses considering headless builds purely because their existing WordPress site is slow. As we covered in Headless CMS vs WordPress, architecture should solve an actual requirement, not compensate for poor optimisation.
What we check first
If somebody gives us a slow WordPress site, we normally start with the boring things before touching the architecture:
- Images
- Third-party scripts
- Plugins
- Fonts
- Page-builder output
- Caching
- Server response
- Database and background activity
That order matters. It is easy to spend hours tuning a server while a 5 MB hero image is sitting at the top of the homepage, so start with what the visitor actually has to download.
Most slow WordPress websites are not fundamentally broken. They have simply collected more weight than anybody noticed, and that is usually fixable.

