WordPress
Slow WordPress site: the 7 most common causes and how to fix them
Is your WordPress site slow? Here are the 7 most common causes (hosting, plugins, images, database, scripts) and how to find and fix each one.
Fabio Folgori7 min read

If your WordPress site is slow, it is almost never down to a single thing. It is usually a sum: hosting at its limit, a few too many plugins, heavy images and one or two external scripts. The good news is that every cause can be found and fixed, as long as you start from a measurement and not from a hunch.
In this guide I walk you through the seven causes I meet most often in the sites I am asked to fix, how to recognise them and what to do. No magic formulas, just a bit of method.
First of all: measure, don't guess
Before touching anything you need a starting point. Otherwise you will never know whether an intervention worked.
- PageSpeed Insights shows two different things: lab data (a simulated test) and real data collected from visitors. Look mainly at the latter, when available.
- Search Console, in the Core Web Vitals section, tells you which groups of pages have problems.
- The browser's developer tools (Network tab) show which files weigh the most and which requests block the page.
Write down the starting values for the home page and two or three important pages. After each change you measure again.
1. Undersized hosting
This is the most underrated cause. If the server takes a long time to respond, every other optimisation starts at a disadvantage. The value to look at is the TTFB, the time that passes before the first byte arrives.
How to recognise it: with the cache turned off the site is slow even on a simple page, especially at busy hours. On a cheap shared hosting plan, resources are split among many other sites.
What to do:
- check that the server runs a recent version of PHP, which is noticeably more efficient than earlier ones;
- consider a plan with dedicated resources or a managed VPS if the site matters to your business;
- pick a data centre close to your visitors.
2. Too many plugins, or heavy plugins
What matters is not the number of plugins but what they do. A well-written plugin weighs little; one that loads scripts and stylesheets on every page, or runs many database queries, can slow everything down.
How to recognise them: in the WordPress dashboard, deactivate plugins one at a time on a copy of the site (never directly in production) and measure again. There are also diagnostic plugins that show the execution time of each one.
What to do:
- delete the ones you do not really use, don't just deactivate them;
- replace plugins that do one tiny thing with a few lines of code;
- for important features, choose plugins that are maintained and updated.
3. Heavy theme and page builder
Many multipurpose themes include hundreds of features your site does not use but the browser downloads anyway. The same goes for page builders that generate a lot of nested code.
How to recognise it: the page has a large number of elements (DOM), many CSS and JavaScript files and slow rendering even with few images.
What to do: in the best cases it is enough to configure the theme better and switch off unused modules. When the weight is structural, the most lasting solution is a theme written for your project, with only what is needed. I talk about it in Custom WordPress theme or ready-made theme?.
4. Unoptimised images
A photo uploaded straight from the camera can weigh several megabytes and be shown in a small box. It is one of the most frequent problems and one of the easiest to solve.
What to do:
- resize images to the size you really need;
- use modern formats such as WebP or AVIF, which weigh less at equal quality;
- turn on lazy loading for images below the first screen, but not for the main one;
- always specify width and height, so the page does not shift while loading.
5. No cache, or a badly configured cache
Without a cache, WordPress rebuilds every page from scratch at every visit, querying the database. With a page cache the result is saved and served immediately.
What to do:
- turn on a page cache, on the server or with a reliable plugin;
- for sites with many queries, consider an object cache;
- exclude personal pages, such as the cart and the account area, from the cache, otherwise you risk errors.
Be careful: caching improves perceived speed, but it does not replace fixing a problem at its root.
6. Bloated database
Over the years the database accumulates content revisions, expired temporary data and traces of removed plugins. The options loaded on every request (autoload) can become very heavy.
What to do: always take a backup first. Then delete useless revisions, automatic drafts and orphaned data, and check the largest autoload options. It is a technical job: a mistake here can break the site, so it is better not to improvise.
7. Third-party scripts
Analytics, advertising pixels, chat, maps, embedded videos, external fonts: each one adds requests to other servers that you do not control. They are often the reason a "clean" site is still slow.
What to do:
- list everything the site loads from external domains;
- remove what is no longer needed;
- load non-essential scripts deferred or only after consent, where required;
- for videos and maps, show a preview first and load the real content only on click.
Where to start
If you are short on time, this order pays off the most:
- measure and write down the starting values;
- images and external scripts, which give quick results;
- cache;
- plugins and theme;
- hosting and database, when the previous points are not enough.
Each step should be followed by a new measurement. That way you understand what worked and do not risk piling up useless changes.
Mistakes to avoid when trying to speed things up
In the rush to get a result it is easy to make mistakes that make things worse.
- Installing several caching plugins together. They step on each other's toes and cause errors that are hard to understand. You need one, configured well.
- Chasing a score of 100. A high number in a test does not guarantee a site that is pleasant to use. The real experience of visitors, especially on smartphones, counts more.
- Testing only from your own computer, on the office's fast connection. Your visitors use different phones and less stable networks.
- Working directly on the live site. First you try on a copy, then you publish. And always with a recent backup.
- Postponing updates. Old versions of WordPress, the theme and plugins are slower and more exposed to security problems.
How to tell whether you have really fixed it
An improvement has to be verified, not taken for granted. After the changes, repeat the same starting measurements on the same pages and compare them. Then check the real data in Search Console, which updates over about four weeks. If the numbers have improved but visitors still complain, look at how it feels to use: is the page usable right away, or do you have to wait before you can touch anything?
When it is worth asking for help
If the site is your working tool, every extra second is paid for in visitors who leave and in positions lost on Google. Asking for help is worth it when:
- you do not know which of the seven causes weighs the most;
- the work touches code, database or server;
- the site has an online shop or data you cannot risk losing.
Why entrust it to me
I have been doing web development since 1999, with more than 300 projects delivered, and I work with about 30 agencies as an external developer. I work from Rome and remotely.
When you ask me to fix a slow site, I start with an analysis and a report you can understand, hand you a list of interventions in order of priority and measure again at the end, so we compare before and after. No generic promises: numbers you can check.
If you want to understand where to start, tell me about your site: we talk it over in a chat of about 20 minutes, no strings attached, and you get a written, free quote. You will find the details of the service in Technical SEO and site speed.
Frequently asked questions
There is no magic number, but Google considers the main content visible within 2.5 seconds (LCP) on a real mobile connection to be good. The right approach is to look at your visitors' real data in Search Console, not at a single test.
Caching helps a lot but does not fix everything: if the problem is huge images, a third-party script or a hosting plan at its limit, caching only hides it in part. It should be used together with the other fixes.
Only if hosting is really the cause. You can tell by measuring the server response time (TTFB) with the cache turned off: if it is high, switching is worth it; if it is already low, the problem lies elsewhere.
Some things, yes: optimising images, removing unused plugins, updating PHP. Others, such as the database, the theme or scripts, need technical skills, and it is best not to improvise on a live site.
- #wordpress
- #site speed
- #performance
- #plugins
- #hosting


