Why Your WordPress Site Is Actually Slow
Every article about WordPress speed says the same thing: optimise your images, use a caching plugin, pick a good theme. That advice isn’t wrong, but it barely scratches the surface.
I’ve sped up hundreds of WordPress sites. The real problems are usually deeper than an uncompressed JPEG. Here’s what’s actually slowing your site down, and what to do about it.
The Real Causes
Bad hosting
This is the number one cause of slow WordPress sites. If you’re on cheap shared hosting, your site is sharing server resources with hundreds of other websites. When one of those sites gets a traffic spike, yours slows down too.
Shared hosting works fine for a personal blog getting 50 visitors a month. For a business site, you need at minimum a managed WordPress host or a VPS. The difference is dramatic. I’ve seen sites go from 6-second load times to under 2 seconds just by switching hosts.
Too many plugins
Every plugin you install adds code that WordPress has to load on every single page request. Some plugins are worse than others. Sliders, social sharing buttons, page builders with heavy frameworks, and analytics plugins that load multiple tracking scripts are common offenders.
I regularly see business sites running 40 or 50 plugins. Most of those sites could run on 15 to 20 with the same functionality.
No caching
Without caching, WordPress generates every page from scratch for every visitor. That means querying the database, running PHP, assembling the page, and sending it to the browser. Every. Single. Time.
With caching, WordPress generates the page once and serves a static copy to subsequent visitors. The difference is often 5 to 10 times faster.
Unoptimised database
WordPress stores everything in its database: posts, comments, settings, transients, revision history. Over time, the database fills up with post revisions (WordPress keeps every revision by default), spam comments, transient data from plugins, and orphaned metadata from plugins you deleted years ago.
A bloated database means slower queries, which means slower page loads.
Render-blocking scripts and stylesheets
Many plugins and themes load CSS and JavaScript files in the page header. The browser has to download and process all of these before it can start rendering the page. If you’ve got 15 plugins each loading their own CSS and JS files, that’s 30 or more files blocking the page from displaying.
Heavy themes
Multipurpose themes that promise to “do everything” load enormous amounts of CSS and JavaScript, even on pages that don’t use those features. A theme built for speed loads a fraction of the code.
Quick Wins You Can Do Today
Install a caching plugin. WP Super Cache is free and simple. If you want more control, WP Rocket is worth the money. This alone can cut your load time in half.
Count your plugins. Go to Plugins in your WordPress admin. If you’ve got more than 25, start asking which ones you actually need. Deactivate and delete anything you’re not using.
Enable lazy loading for images. WordPress has built-in lazy loading since version 5.5. Make sure it’s not been disabled by a theme or plugin. This stops images below the fold from loading until the visitor scrolls to them.
Use a CDN. Cloudflare has a free plan that works well for most sites. A CDN serves your static files (images, CSS, JavaScript) from servers closer to your visitors, which reduces load times significantly for visitors far from your hosting server.
Deeper Fixes
Clean up the database. Use WP-Optimise to remove post revisions, spam comments, and transient data. Then add this to your
wp-config.php to limit future revisions:
define('WP_POST_REVISIONS', 5);
Move to better hosting. If you’re on shared hosting and your business depends on your website, upgrade. Cloudways, Kinsta, or a properly configured VPS will make a noticeable difference. Budget $30 to $60 per month for hosting that won’t hold your site back.
Audit your plugins properly. Install Query Monitor (it’s free). This plugin shows you exactly how long each plugin takes to load and how many database queries it runs. Replace slow plugins with lighter alternatives.
Minify and combine assets. Autoptimize is a free plugin that combines and minifies your CSS and JavaScript files. Fewer files means fewer requests, which means faster loading.
Optimise images properly. Yes, this one matters too. Use ShortPixel or Imagify to compress existing images. Convert to WebP format where possible. Set up automatic compression for future uploads.
How to Test Your Speed
Don’t guess. Measure.
Google PageSpeed Insights (
pagespeed.web.dev) gives you a score and specific recommendations. Focus on Core Web Vitals: LCP (Largest Contentful Paint), FID (First Input Delay), and CLS (Cumulative Layout Shift).
GTmetrix (
gtmetrix.com) provides a waterfall chart showing exactly what’s loading and how long each resource takes. This is invaluable for identifying the specific files slowing you down.
Test from a location close to your target audience. If your customers are in Australia, test from an Australian server.
Need Your Site Faster?
If your WordPress site takes more than 3 seconds to load, you’re losing visitors. I offer a $150 diagnostic where I’ll analyse your site’s performance, identify the specific bottlenecks, and give you a prioritised list of fixes. Full speed optimisation starts from $300 and typically gets sites loading in under 2 seconds.
Get in touch to get started.