WordPress Under Pressure: Why Your Site’s Performance Is Secretly Tanking (And How to Fix It)
WordPress powers a significant share of the web, and for good reason. It’s flexible, well supported and capable of handling everything from a basic brochure site to a full ecommerce platform. But that flexibility comes with a catch. Over time, WordPress sites have a habit of slowing down without anyone noticing. Pages take a fraction longer to load, search rankings quietly slip and visitors bounce before they ever see your content. If your site has been live for more than a year without a performance review, there’s a good chance it’s not running as well as it should be. A proper WordPress support arrangement can catch these issues before they start affecting your bottom line.
This isn’t about chasing perfect scores on speed tests. It’s about making sure your site loads quickly enough that real visitors stick around, Google can crawl it efficiently and your content gets seen. A lot of this comes down to how the site was put together in the first place, and what’s happened to it since. Poor web development choices compound over time, but the good news is that most of these issues are fixable once you know where to look.
How WordPress Performance Degrades Over Time
When a WordPress site first launches, it tends to be lean. There’s a clean theme, a handful of necessary plugins and a database with barely anything in it. Performance is usually fine because there simply isn’t much weighing it down yet.
The problems start gradually. A new plugin gets installed for a contact form. Another for analytics. One more for social sharing buttons. The marketing team uploads high resolution images straight from a camera without compressing them first. A theme update adds new JavaScript files that load on every single page whether they’re needed or not. None of these things cause an obvious problem on their own, but they accumulate. After a year or two of normal use, a site that once loaded in under two seconds is now struggling to hit four.
What makes this particularly difficult to spot is that the people who use the site every day don’t notice the change. Because the slowdown happens so gradually, it feels normal. It often takes an outside audit or a tool like Google Lighthouse to reveal just how far things have drifted. We regularly see sites where the team behind them is surprised by the results, not because they’ve been negligent, but because there was never a clear moment where something broke. It’s the quiet accumulation of small decisions over months and years, each one adding a few milliseconds until the total becomes a measurable problem.
Most site owners only discover it when rankings drop, a customer mentions the site felt sluggish, or Google Search Console starts flagging Core Web Vitals issues. By that point, there’s usually more than one thing to fix.
How WordPress Plugin Bloat Affects Site Speed
Plugins are one of WordPress’s greatest strengths, but they’re also the single most common cause of performance problems. Every plugin you install has the potential to add CSS stylesheets, JavaScript files, database queries and server-side processing to your pages. Some do this efficiently. Many don’t.
The issue goes deeper than just the number of active plugins:
- Deactivated plugins are often left sitting in the WordPress installation. While they don’t execute their main code, some poorly written ones still load assets or register background processes even when switched off. The only way to be sure a plugin isn’t doing anything is to delete it entirely.
- It’s also common for plugins to enqueue their stylesheets and scripts on every page of the site, not just the pages where they’re needed. A contact form plugin loading its CSS on your homepage, your blog archive and your checkout page is a classic one. A developer can sort this out with
wp_dequeue_scriptandwp_dequeue_styleto stop assets loading where they’re not required, but most site owners wouldn’t know to look for it.
Plugin conflicts are another hidden drain. Two plugins trying to do similar things can create duplicate database queries, competing JavaScript libraries, or layout issues that force the browser to re-render elements multiple times. This is especially common with page builders, caching plugins and SEO tools that overlap in functionality. We’ve seen cases where two plugins were both generating structured data markup for the same pages, creating conflicting schema that confused search engines on top of adding unnecessary page weight.
A good rule of thumb is to audit your plugin list every quarter. If a plugin hasn’t been updated in over a year, if you’re not sure what it does, or if its function could be handled by a line of code in your theme’s functions.php, it’s probably worth removing. A WordPress development team can often replace three or four plugins with a single lightweight bit of custom code built for your site. That’s less bloat and fewer security vulnerabilities to worry about.
WordPress Database Bloat: Revisions, Transients and Orphaned Data
Your WordPress database is where everything lives: posts, pages, comments, plugin settings, user data and a surprising amount of temporary stuff that was never meant to hang around. Over time, it grows well beyond what it needs to be, and every extra row means slightly slower queries. The usual culprits are:
- WordPress saves a new post revision every time you hit the update button on a post or page. A page that has been edited fifty times has fifty revisions stored in the database, each one a near-complete copy of the content. Multiply that across hundreds of pages and the
wp_poststable can become enormous. You can limit this by addingdefine('WP_POST_REVISIONS', 5);to yourwp-config.phpfile, which caps revisions at a manageable number without removing the safety net entirely. - Expired transients are temporary pieces of data that plugins and themes store in the database with an expiration time. The problem is that WordPress doesn’t always clean up expired transients promptly. They pile up, and some plugins create thousands of them.
- Orphaned data from deleted plugins, spam comments sitting in the trash and auto-draft posts that were never published all contribute to unnecessary clutter that slows down queries.
The wp_options Autoload Problem
There’s also the wp_options table, which rarely gets talked about but is often the real bottleneck. WordPress loads every row in wp_options that has autoload set to yes on every single page load. Plugins add their settings to this table, and even when you delete those plugins, the rows they created tend to stick around.
We’ve worked on sites with well over 500 autoloaded rows, and the owners had no idea because none of it shows up in the dashboard. You can’t see it without running a database query. Once you do, though, it’s often one of the faster things to clean up.
The WordPress.org optimisation guide recommends regular database maintenance as part of any performance strategy. Tools like WP-Optimize can handle revision cleanup, transient removal and table optimisation with a few clicks. For sites with larger databases, a scheduled monthly cleanup makes a noticeable difference to query speeds.
How WordPress Hosting Affects Performance
Hosting is the foundation that everything else sits on, and it’s often the most overlooked factor in WordPress performance. Many UK businesses start on budget shared hosting because it’s cheap and quick to set up. That works fine for a new site with minimal traffic, but as the site grows, shared hosting becomes a bottleneck that no amount of caching or optimisation can fully overcome.
On shared hosting, your site shares server resources with dozens or even hundreds of other websites. If another site on the same server gets a traffic spike, your site slows down. There’s no guaranteed allocation of memory or processing power. Time to First Byte (TTFB), which measures how quickly the server responds to a request, is often poor on shared plans and directly affects how quickly your pages begin loading. It feeds into your Largest Contentful Paint score too, so one slow server response drags your Core Web Vitals down with it.
Switching from budget shared hosting to a managed WordPress host is often the single biggest performance improvement a site can make. Managed hosts run infrastructure that’s set up specifically for WordPress. You’ll typically get server-level caching like Nginx FastCGI or Redis object caching, which works faster than any caching plugin. PHP versions are kept up to date automatically. And the MySQL configuration is tuned for the kind of queries WordPress runs, rather than being a generic shared setup that has to cater for everything.
The difference in server response time alone can shave a full second off page loads, which has a measurable impact on both search visibility and user experience.
Server location matters too. If your audience is primarily in the UK but your server is in the United States, every request has to cross the Atlantic and back. That adds latency, typically 80 to 120 milliseconds per round trip, which might sound small but compounds across the multiple requests needed to load a single page. Choosing a host with UK-based data centres, or using a content delivery network (CDN) with edge servers in the UK, removes that unnecessary delay.
PHP version is another one that gets missed. PHP 8.2 and 8.3 are significantly faster than older releases. Some benchmarks put PHP 8.x at nearly three times the throughput of PHP 7.4, and yet plenty of sites are still running old versions because the host never changed the default. It’s worth checking the PHP supported versions page to make sure yours hasn’t hit end of life. Upgrading through your hosting control panel takes about five minutes.
Investing in solid technical SEO means looking at the infrastructure as well as the content. The fastest, most optimised WordPress site in the world will still feel sluggish if the server underneath it can’t keep up.
Core Web Vitals: What Google Measures and Why It Matters
Google uses a set of metrics called Core Web Vitals to measure how your website feels to use in practice. These aren’t lab-only benchmarks. They come from real Chrome users visiting your pages, collected through the Chrome User Experience Report (CrUX), and poor scores can directly hurt your search rankings as part of Google’s page experience signals.
There are three metrics that matter most:
Largest Contentful Paint (LCP) measures how long it takes for the main content of a page to become visible. This is usually the hero image or the largest block of text above the fold.
Interaction to Next Paint (INP) is the newer one. It replaced First Input Delay (FID) in March 2024 and it’s a tougher test. FID only looked at the first time someone interacted with the page. INP tracks every interaction during the visit and reports the worst one, so you can’t get away with a fast first click if everything else is sluggish.
Cumulative Layout Shift (CLS) measures visual stability, specifically whether elements on the page jump around as it loads.
| Metric | What it measures | Good | Needs improvement | Poor |
|---|---|---|---|---|
| Largest Contentful Paint (LCP) | Loading speed of main content | 2.5 seconds or less | 2.5 to 4.0 seconds | Over 4.0 seconds |
| Interaction to Next Paint (INP) | Responsiveness to user input | 200 milliseconds or less | 200 to 500 milliseconds | Over 500 milliseconds |
| Cumulative Layout Shift (CLS) | Visual stability during loading | 0.1 or less | 0.1 to 0.25 | Over 0.25 |
For non-technical readers, the short version is this: your site needs to load its main content quickly, respond to clicks without delay and not have elements jumping around the screen while it loads. These three things together determine whether Google considers your page experience good enough to compete in search results.
One thing that catches people out is the difference between lab data and field data. When you run a Lighthouse test, that’s lab data. It’s a simulation under controlled conditions. PageSpeed Insights shows both, but it also pulls in field data from real Chrome users via CrUX. You can have brilliant lab scores and poor field data at the same time, because real visitors are on slower phones, patchy connections and interacting with the page in ways a lab test doesn’t account for. Google uses the field data for ranking, so that’s the one you should care about.
Poor Core Web Vitals don’t just affect rankings. They hurt conversions too. A page that shifts around while someone is trying to click a button, or that takes four seconds to show its main content, loses visitors regardless of how good the content is. If you’re putting effort into conversion rate optimisation, poor performance will undermine it.
WordPress Speed Optimisation Checklist
Fixing WordPress performance doesn’t have to be overwhelming. The checklist below covers the most impactful areas, roughly in order of how much difference they tend to make. Some of these you can handle yourself through the WordPress dashboard. Others are worth briefing a developer on if you’re not comfortable making changes to your hosting or database.
- Run your site through Google Lighthouse and PageSpeed Insights to get a baseline. If PageSpeed Insights has field data available for your site, pay more attention to that than the lab scores.
- Audit your plugin list and remove anything that is deactivated, unused, or duplicates functionality already covered elsewhere.
- Compress and resize images before uploading them. This is one of the most common causes of slow LCP scores. Use WebP format where you can, and make sure images aren’t being uploaded at 4000px wide when they’re only ever displayed at 800px. Letting CSS do the scaling doesn’t save any bandwidth.
- Install a reputable caching plugin if you don’t already have one. Caching serves pre-built versions of your pages instead of generating them fresh for every visitor.
- Clean up your database by removing old post revisions, expired transients, spam comments and auto-drafts. Check the
wp_optionstable for excessive autoloaded data. - Check your PHP version through your hosting control panel. If you’re running anything below PHP 8.1, upgrading will improve performance.
- Review your hosting plan. If you’re on budget shared hosting and your site gets consistent traffic, a managed WordPress host with UK servers is worth the investment.
- Minimise render-blocking resources by deferring JavaScript that doesn’t need to load immediately and inlining critical CSS. If you’re loading Google Fonts from Google’s servers, hosting them locally cuts out an extra DNS lookup and connection that slows things down.
- Set up lazy loading for images and videos so they only load when a visitor scrolls to them. WordPress has had native lazy loading for images since version 5.5, but it’s worth checking it’s working and extending it to iframes and embedded videos too.
Performance work isn’t a one-off task. Plugins get updated, new content gets added and the web keeps changing. Building a quarterly performance check into your WordPress maintenance routine catches problems before they compound into something that affects your search rankings or your revenue.
The most important thing is to start measuring. You can’t fix what you don’t know is broken. Run a Lighthouse audit, make a note of your scores and work through the list above. Even tackling two or three items makes a noticeable difference to how your site feels for visitors and how it performs in search. It’s also worth knowing that a lot of performance improvements overlap with accessibility requirements, so you may be ticking two boxes at once.
FAQs
How do I know if my WordPress site is too slow?
The quickest way to check is to run your site through Google PageSpeed Insights or Chrome Lighthouse. Both are free and will give you scores for each Core Web Vital along with specific recommendations. As a general benchmark, your main content should be visible within 2.5 seconds, and the page should respond to clicks within 200 milliseconds. If your scores fall into the needs improvement or poor categories, your site is likely losing visitors and search visibility because of performance issues.
Should I delete plugins I have deactivated?
Yes, in almost all cases. Deactivating a plugin stops it from running its main functions, but some poorly coded plugins still load CSS, JavaScript or background processes even when switched off. The plugin files also remain on your server, which can pose a security risk if they are not kept up to date. If you are not actively using a plugin, deleting it entirely is the safest and cleanest option. You can always reinstall it later if you need it again.
How often should a WordPress database be optimised?
For most business websites, a monthly database cleanup is a sensible routine. This should include removing old post revisions, clearing expired transients, emptying the trash for posts and comments, and running a table optimisation. Sites with high activity, such as those with frequent content updates, active comment sections, or ecommerce transactions, may benefit from fortnightly maintenance. Tools like WP-Optimize can automate this on a schedule so it happens without you needing to remember.