BlogWebsite Maintenance
Why Is My WordPress Site So Slow? 12 Causes and Fixes
Rustam8 min read
A WordPress site is usually slow for a combination of reasons rather than one: slow or overloaded hosting, no page caching, large images, too many heavy plugins or a heavy page builder, an outdated PHP version, a bloated database, and third-party scripts like chat widgets and trackers. Test first with PageSpeed Insights, fix hosting, caching and images (they give the biggest wins), then work through plugins, scripts and the database. If the site is only slow when you're logged in, the cause is almost always plugins, the database or the hosting, because caching doesn't apply to logged-in users.
I'm Rustam from Frame the Pixel, a WordPress design and maintenance studio in Kuala Lumpur. Speed work is a regular part of what I do for clients, and the twelve causes below are the ones I find again and again.
First, measure properly
Before changing anything, get a baseline.
- Run PageSpeed Insights on the home page and one or two key pages, on mobile. Note the Core Web Vitals. Google's guidance on Web Vitals defines "good" as Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint under 200 milliseconds and Cumulative Layout Shift under 0.1.
- Note the server response time (Time to First Byte). If that alone is over a second, look at hosting and caching first.
- Install Query Monitor on a staging copy to see slow database queries and which plugins they come from.
Then work down this list.
1. Slow or overloaded hosting
If the server takes a long time to start responding, nothing on the page can make up for it. Cheap shared hosting puts many sites on one machine, and when a neighbour gets busy, you slow down. Signs: a high Time to First Byte, a slow admin even on simple pages, and speed that varies by time of day.
Fix: move to hosting with enough resources for your traffic, a current PHP version and server-level caching. Hosting near your visitors helps too. For a Malaysian audience, a server in or near Singapore usually beats one in the US.
2. No page caching
Without caching, WordPress builds every page from scratch for every visitor: PHP runs, the database is queried, the page is assembled. With caching, most visitors get a ready-made copy. WordPress's own caching guide explains the types.
Fix: use your host's built-in cache if it has one, or one well-configured caching plugin. Not two. Two caching plugins fighting each other is a cause of slowness I see surprisingly often.
3. Too many plugins, or a few heavy ones
It's rarely the number of plugins that matters. It's what they do. One plugin that loads scripts on every page or runs heavy database queries can cost more than twenty small ones. Common culprits: social feeds, sliders, related posts plugins, statistics plugins that store data in your database, and all-in-one plugins that do far more than you use.
Fix: use Query Monitor on staging to find the heavy ones. Remove what you don't use, replace heavy plugins with lighter ones, and stop plugins loading their scripts on pages that don't need them.
4. Large, unoptimised images
A photo straight from a phone can be several megabytes. Upload ten and your page is heavier than many whole websites.
Fix: resize images to the size they're displayed at, compress them, and use modern formats like WebP or AVIF. WordPress supports both and adds native lazy loading to images below the fold. Don't lazy load the main image at the top of the page, as that delays Largest Contentful Paint.
5. An outdated PHP version
Newer PHP versions are faster and still get security fixes. Older ones are slower and, once they reach end of life, unsupported. Check PHP.net's supported versions list and compare it with what your host shows.
Fix: test the newest PHP version your plugins support on staging, then switch. If something breaks, see my guide to the WordPress critical error.
6. A heavy theme or page builder
Multipurpose themes and page builders make design easy but can add a lot of code to every page. Elementor in particular can be fast or slow depending on how it's set up. I've written a separate guide: Elementor slowing down your website? How to speed it up.
Fix: turn on the builder's performance features, remove unused widgets and add-ons, and keep layouts simple.
7. A bloated database
Every revision, spam comment, expired transient and leftover table from an old plugin stays in the database until someone removes it. Some plugins store logs or statistics there too. WooCommerce stores add orders, sessions and scheduled actions.
Fix: clear spam and trashed items, limit post revisions, delete expired transients, and remove tables left by uninstalled plugins. Take a backup first. Check the autoloaded options too: large autoloaded data slows every single page.
8. Too many third-party scripts
Chat widgets, analytics, ad pixels, heatmaps, embedded maps, fonts from several sources and video embeds all load from other servers. Each one adds requests and work for the browser, and you can't control their speed.
Fix: list every third-party script and ask whether it's still needed. Delay non-essential ones until the visitor interacts. Replace embedded videos with a preview image that loads the player on click.
9. Fonts and render-blocking files
Several font families in several weights, plus CSS and JavaScript that must load before the page appears, all delay what the visitor sees first.
Fix: use one or two font families, host them locally, preload the main one and use font-display: swap. Combine or defer non-critical CSS and JavaScript, carefully, and test after each change.
10. No CDN for a spread-out audience
If your visitors are in Malaysia, the UK and Europe, a single server is far from at least some of them.
Fix: a content delivery network serves static files, and sometimes whole pages, from locations near each visitor.
11. Heavy background tasks (WP-Cron)
WordPress runs scheduled tasks when someone visits. Backups, scans, imports and email queues can then slow down a real visitor's page load. Busy WooCommerce stores pile up scheduled actions.
Fix: move WP-Cron to a real server cron job and schedule backups and full scans for quiet hours. WordPress's optimisation guide covers this and more.
12. Malware or bot traffic
Sometimes a site is slow because it's busy doing something you didn't ask for: sending spam, serving hidden pages, or being hammered by bots trying passwords.
Fix: scan for malware, block bad bots at the firewall or CDN, and protect the login page. If you find signs of compromise, see what to do in the first hour after a WordPress hack.
Which fixes to do first
If you only have an afternoon, this order gives the most improvement for the least risk: check hosting response time, set up one caching solution, compress and resize the biggest images, then remove plugins you don't use. Leave database clean-up, script delaying and file combining until you have a staging copy and a fresh backup, because those are the changes most likely to break something.
Slow only when logged in?
Caching usually doesn't apply to logged-in users, so the admin shows the site's true speed. A slow dashboard points to hosting resources, heavy plugins (especially ones that add dashboard widgets or check for things on every page load), large autoloaded options, or the WordPress Heartbeat running too often. Query Monitor on staging will usually show the culprit within minutes.
Keep it fast
Speed isn't a one-off job. Plugins update, content grows and new scripts creep in. A quick speed check every month as part of maintenance catches problems early. My WordPress maintenance checklist includes it, and slow pages are one of the signs your WordPress site needs maintenance. For stores, see WooCommerce maintenance, since the cart and checkout need extra care.
Want me to look at it?
Speed optimisation is part of my website maintenance service, and if your site's speed is holding back search rankings it ties into SEO work too. I'll measure the site, find the real causes and fix them on staging before anything goes live. I work 9am to 5pm Malaysia time (GMT+8). Get in touch or email contact@framethepixel.com with your web address.
FAQ
Why is my WordPress site so slow all of a sudden?
A sudden slowdown usually follows a change: a plugin update, a new plugin or script, a host problem, a traffic spike, or malware. Check what changed recently and test on staging with that change reversed.
Do too many plugins slow down WordPress?
The quality of the plugins matters more than the number. A few heavy plugins can slow a site more than many light ones. Test to find out which ones are expensive.
Will a caching plugin fix my slow site?
It often helps a lot for visitors, but it won't fix slow hosting for the admin, huge images or heavy scripts. Use one caching solution, not several.
What is a good load time for WordPress?
Aim for Google's "good" Core Web Vitals: Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint under 200 milliseconds and Cumulative Layout Shift under 0.1.
Does hosting really make a difference?
Yes. Hosting sets the floor for how fast every page can start loading. No plugin can fully make up for a slow server.