Your WordPress site is slow. You know it, your visitors know it, and Google definitely knows it. But the reason it is slow is probably not the one your developer told you about. It is almost certainly not your image sizes. It is almost certainly not your hosting. And it is almost certainly not something a caching plugin is going to fix.
The real reason most WordPress sites are slow is plugins. Specifically, too many of them — installed over time with no plan, never removed, loading code on every page whether that page needs it or not.
How plugins actually affect performance
Every active plugin on a WordPress site adds overhead. Some plugins add it visibly — a slider, a pop-up, a contact form widget. Others add it invisibly — database queries running on every page load, PHP files bootstrapping on every request, CSS and JavaScript files loading in the browser whether the current page uses that functionality or not.
The cumulative effect compounds quickly. A site with 30 active plugins — which is not unusual for a site that has been maintained casually over a few years — might be running 30 separate sets of database queries, 30 sets of PHP files and dozens of additional CSS and JavaScript files on every single page load. The browser receives a document bloated with code it does not need, and the user stares at a spinner while it all downloads and executes.
We see this pattern constantly with new clients. The site was fast when it launched. Then someone added a plugin to handle this. Then another one for that. Then an SEO plugin. Then a security plugin. Then a backup plugin. Then the plugin that was supposed to speed things up. Two years later the site scores 38 on mobile PageSpeed and nobody can work out why.
The plugins most likely to be killing your speed
Page builders and visual editors
If your site is built on Elementor, Divi, WPBakery or any similar tool, this is your single biggest performance problem. Page builders load extensive JavaScript and CSS frameworks on every page regardless of what that page contains. They are structurally incompatible with high performance — not because of bad implementation but because of how they work at a fundamental level.
Slider and carousel plugins
Revolution Slider, Slider Revolution, Smart Slider, Owl Carousel — these plugins are found on millions of WordPress sites and almost all of them load their full JavaScript and CSS library on every page of the site, not just pages that actually contain a slider. A slider on the homepage should not be loading JavaScript on your contact page. But it almost certainly is.
Social media feed plugins
Plugins that embed Instagram feeds, Twitter timelines or Facebook widgets make external API calls on every page load. If the social media API is slow to respond — which happens regularly — your entire page load waits. This is one of the most common causes of inconsistent page speed: the site is sometimes fast and sometimes inexplicably slow, with no apparent pattern.
Plugin-based contact forms
Contact Form 7, WPForms, Gravity Forms — all of them load JavaScript and CSS on every page of the site by default, even pages that contain no form. Most have settings to restrict asset loading to pages with forms on them, but the setting is often not enabled. Check your browser’s network tab and you will likely see form plugin assets loading on your homepage, your about page and every other page that has no form on it whatsoever.
SEO plugins with feature bloat
Yoast and similar plugins are useful but they have expanded over the years to include breadcrumbs, sitemap generation, schema output, social preview management and numerous other features. Every enabled feature adds code. If you only need title tags and meta descriptions, you are running far more code than the task requires.
How to actually fix it
Audit every plugin
Go to your plugin list and ask a simple question about each one: does this plugin do something that cannot be achieved with a small amount of custom code? For most plugins on most sites, the honest answer is no. A contact form, a breadcrumb, a social share button — these are all things that can be implemented in ten to twenty lines of PHP or JavaScript with zero performance overhead. The plugin exists because it is faster to install than to build. That convenience has a performance cost you are paying on every page load.
Disable assets on irrelevant pages
For plugins you cannot remove, investigate whether they support conditional asset loading. Many do. Contact Form 7, for example, can be configured to load its scripts only on pages that actually have a form. This single change can remove several hundred kilobytes of JavaScript from every non-form page on your site.
Replace the plugin with code
For functionality you genuinely need, consider whether it can be implemented directly in your theme rather than through a plugin. Custom code in your theme adds zero plugin overhead, runs only where needed, and cannot be broken by a WordPress or PHP update that the plugin author has not responded to yet.
Fix the hosting if nothing else moves the needle
If you have removed unnecessary plugins, optimised your images, enabled caching and your site still scores poorly, the hosting is likely the bottleneck. Shared hosting environments, particularly budget ones, often have slow Time to First Byte — the time between the browser making a request and the server starting to respond. No amount of front-end optimisation compensates for a slow server. LiteSpeed-based hosting with proper caching configuration resolves this in most cases.
The benchmark to aim for
A well-built WordPress site on decent hosting, with no unnecessary plugins, should score 90 or above on Google PageSpeed Insights on both mobile and desktop. Scores of 95-100 are achievable and are what we target on every site we build. If your site scores below 70, there is meaningful work to be done. Below 50 on mobile is a significant problem that is directly affecting your Google rankings.
Run your site through Google PageSpeed Insights right now if you have not done it recently. The results will tell you more about your site’s health than almost any other single metric.
If your scores are lower than they should be and you want an expert to look at the specific causes, we offer a free website audit that covers performance in detail. Or if you are ready to talk about a proper rebuild, get in touch for a free quote.
Frequently asked questions
Will a caching plugin fix my slow WordPress site?
A caching plugin can improve performance — sometimes significantly — but it cannot remove the underlying causes of slowness. It masks them. If your site is slow because of page builder overhead or too many plugins, caching will improve your score but you will still not reach the performance levels that a properly built site achieves.
How many plugins should a WordPress site have?
There is no magic number but as a rule of thumb, if you have more than ten active plugins, each one deserves scrutiny. The question is not how many you have but how much overhead each one adds relative to the value it provides.
Does hosting really matter that much?
Yes — particularly Time to First Byte. A site on slow shared hosting can achieve reasonable PageSpeed scores through aggressive caching but the inconsistency will show up in real-world experience. LiteSpeed hosting with LSCache configured correctly is currently the best combination for WordPress performance.
Is WordPress inherently slow?
No. WordPress itself is a well-optimised PHP application. The performance problems almost always come from what is built on top of it — the theme, the plugins, the hosting configuration. A lean WordPress installation with a clean custom theme and minimal plugins is genuinely fast.