When we were rebuilding WP Mayor a while back, I ran PageSpeed Insights on the old site out of curiosity. The mobile score was 34. The site I’d been running for years, used as a reference point for WordPress best practices, was loading like it was hosted on a shared server from 2012.
It wasn’t a hosting problem. It wasn’t a plugin problem. It was all four problems listed below, layered on top of each other over years of adding things and rarely auditing what those things cost.
That’s the most common situation I see. Multiple causes and no clear sense of which one to fix first.
Why Speed Matters More Than You Think
Google made Core Web Vitals an official ranking factor in 2021. Your site’s loading performance directly affects where you appear in search results. If two pages compete for the same keyword and yours loads slower, Google will rank it lower, all else being equal.

Beyond SEO, the conversion numbers are uncomfortable. A one-second delay in page load time can reduce conversions considerably. For an e-commerce site doing any real volume, that’s a real number attached to real revenue.
Bounce rates tell the same story. Visitors who hit a slow page don’t wait. They hit back and try the next result, so you’ve paid to acquire that visitor through ads, SEO, social, or otherwise, and they left before reading a single word.
Speed is directly tied to visibility and revenue.
What PageSpeed Insights Is Actually Measuring
The score itself (on a scale of 0-100) is useful as a headline, but the individual metrics underneath are what tell you what’s wrong.
PageSpeed Insights measures your Core Web Vitals, from how long the biggest element on the page takes to load (LCP) to how stable the layout is as it renders (CLS) and how long the page is blocked and unresponsive to input (TBT/INP). Each one maps to a different user experience problem, and each one has a different fix.

Now, there are two things worth knowing before you start interpreting your results.
First, your desktop and mobile scores will almost always differ, often dramatically. Google primarily uses mobile for ranking. That 34 is probably your mobile score. Second, a score of 90 doesn’t mean your site is fast for everyone. It means it performed well under the test conditions, which are based on a median mobile device on a 4G connection. Real users vary.
The Four Root Causes of a Slow WordPress Site
Every slow WordPress site I’ve seen traces back to one or more of these four things. They’re not equally fixable, and they don’t all cost the same to solve.
1. Hosting
Hosting is the most underrated performance variable in WordPress. No amount of optimization fully compensates for a slow server. If your host takes 800ms just to respond before serving a single byte, you’re fighting an uphill battle from the start.
The difference between budget shared hosting and a performance-optimized managed host like Servebolt or Kinsta isn’t incremental. Server response time, PHP version support, and caching architecture are table stakes before you touch a single plugin. If your Time to First Byte (TTFB) is over 600ms, start here before anything else.
2. Images
Images are still the single biggest performance problem on most WordPress sites. Not JavaScript. Not plugins. Images.
An unoptimized JPEG hero image can easily be 3-4MB. A page with five of those will score poorly regardless of what else you do. The fixes are well-established. Compress images, serve modern formats like WebP, implement lazy loading for below-the-fold content, and define image dimensions so the browser can reserve space before they load.
The LCP metric lives or dies by your hero image. If you nail nothing else, nail that one.
3. Bloated Code
WordPress sites accumulate weight over time. Every plugin you install adds CSS and JavaScript to your pages, often to every page, even where that plugin isn’t doing anything. A contact form plugin loading its scripts on your homepage is a classic example.
Theme frameworks and page builders can be equally guilty. Nested divs, inline styles, and unused CSS from a theme stylesheet all add kilobytes the browser has to parse before rendering anything visible. Individually, the overhead from each plugin looks small, but forty plugins later, it adds seconds.
4. No Caching
WordPress is dynamic by default. Every page request triggers a chain of database queries and PHP execution. On a quiet site with fast hosting, this is manageable. On a busy site, it becomes a serious bottleneck.
Caching stores a pre-built version of each page and serves that instead. A page that takes 800ms to generate dynamically might serve in under 100ms from cache. Most performance plugins handle this. The catch: caching on top of bad hosting still produces a slow site. Fix the foundation first.
Where to Start
Check your TTFB first. Open PageSpeed Insights, run your homepage, and look for the “Reduce initial server response time” recommendation. If TTFB is flagged, hosting is your most likely problem and no plugin will fully solve it.
If TTFB looks fine but LCP is failing, look at your hero image. Is it compressed? Is it being lazy-loaded when it shouldn’t be? LCP images should load eagerly. Lazy-loading them is one of the most common misconfiguration mistakes I see, and it directly tanks your score.
If both of those look reasonable and you’re still scoring poorly, you’re dealing with bloated code, missing caching, or both. That’s where a performance plugin earns its keep. An all-in-one tool like FastPixel handles image optimization, caching, code minification, and CDN delivery in a single installation. If your hosting is solid, that’s often all you need.

For the specific tools and step-by-step configuration, the WordPress speed optimization guide covers what to install and how to set it up.
The Diagnostic Step Most People Skip
Most people go straight to installing a performance plugin when their score is low. Sometimes it works. More often, they’ve addressed a symptom without touching the cause, and the site stays slow in ways the plugin can’t reach.
Understanding which of the four root causes is affecting your site changes everything. If you’re on a bad host, fix the host first, then optimize. Using heavy uncompressed images? A good image optimization plugin will move your score significantly on its own. Bloated code with no caching? A single well-configured performance plugin handles most of it.
The tools are straightforward once you know what you’re trying to fix. What have you found to be the biggest culprit on your own sites?