How to Speed Up a WordPress Site (And the Permanent Fix)

Speed up your WordPress site with caching, image compression, CDN, hosting, and database cleanup, plus the one permanent fix that ends the treadmill.

TH

Todd Hebebrand

Author

8 min read
How to Speed Up a WordPress Site (And the Permanent Fix)

A slow WordPress site costs you visitors, conversions, and search rankings. The good news is that most WordPress speed problems are fixable, and several of the fixes take less than an hour. The harder truth is that optimization is never finished, because the thing that makes WordPress slow is baked into how it works.

This guide covers the quick wins that deliver real improvements, the deeper structural fixes, and the one change that ends the speed problem for good. If you want to understand the root causes first, read why your WordPress site is slow.

First, Measure Where You Stand

Do not start changing settings blind. Spend five minutes getting a baseline so you know what is actually slow and can prove the fixes worked.

  • Run PageSpeed Insights. Go to pagespeed.web.dev and enter your URL. Look at the mobile score first, since most traffic is mobile and Google ranks on the mobile experience. Note your Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS), and Interaction to Next Paint (INP). Good targets are LCP under 2.5 seconds, CLS under 0.1, and INP under 200 milliseconds.
  • Run a waterfall test. A tool like WebPageTest or GTmetrix shows you exactly which files load, how big they are, and in what order. This is where you spot a 3 MB hero image or a render-blocking script.
  • Check Time to First Byte (TTFB). If your TTFB is over 600 milliseconds before anything even downloads, your hosting or PHP is the bottleneck, not your images. That tells you which fixes below to prioritize.

Write the numbers down. After each change, re-test. If a “fix” does not move a number, undo it rather than stacking up plugins that do nothing.

Quick Wins: Caching, Image Compression, and a CDN

Start here. These three changes deliver the biggest improvement for the least effort.

Full-page caching. Every time someone visits an uncached WordPress page, the server runs PHP and queries the database to assemble the HTML from scratch. A caching plugin like WP Rocket, W3 Total Cache, or LiteSpeed Cache saves a pre-built copy of each page and serves that instead. For most sites this alone cuts load time dramatically.

Image compression. Images are usually the single largest thing a page downloads, frequently 60 to 70 percent of total page weight. Compress them and serve modern formats like WebP or AVIF, which are typically 25 to 50 percent smaller than the equivalent JPEG. Plugins such as ShortPixel or Imagify do this automatically. Also make sure your images are sized correctly: serving a 4000-pixel-wide photo into a 600-pixel container forces every visitor to download roughly 40 times more data than the layout actually uses. Add loading="lazy" to below-the-fold images so they only download when a visitor scrolls to them.

A CDN. A content delivery network caches your static assets across servers worldwide, so a visitor in London is served from a London edge instead of waiting for a round trip to your origin server. Cloudflare’s free CDN is the standard recommendation and takes minutes to set up: add your domain, switch your nameservers to Cloudflare, and enable Auto Minify and Brotli compression in the dashboard. A visitor 2,000 miles from your origin server can save several hundred milliseconds per request this way.

Do these three things and a sluggish site usually feels noticeably faster the same day. In practice, caching plus a CDN plus compressed images is where most sites recover the majority of their lost speed, often halving a 5-second load down to around 2 seconds.

Hosting and PHP Version

Cheap shared hosting is the silent killer of WordPress performance. On a $3-a-month plan you share a server with hundreds of other sites, all competing for the same CPU and memory. When a neighbor gets a traffic spike, your site slows down.

Two fixes matter here:

  • Upgrade your hosting. Managed WordPress hosts or a VPS give you dedicated resources. A move from a $3-a-month shared plan to a $25-to-50-a-month managed host can cut TTFB from 800 milliseconds to under 200. It costs more, but the speed difference is real, and it is the fix that helps if your baseline test showed a high TTFB.
  • Use the latest PHP version. Each major PHP release has been meaningfully faster than the last; PHP 8.x benchmarks roughly twice as fast as PHP 7.x on typical WordPress workloads. Many sites still run an old version because nobody updated it. Check your hosting control panel (look for “PHP version” or “Select PHP version” in cPanel) and move to the newest supported PHP your plugins allow. This is a free speed boost that takes a few clicks. Test on a staging copy first if an old plugin might not be compatible.

Audit Your Plugins

Plugins are where WordPress speed quietly dies. Each active plugin can add its own CSS, JavaScript, and database queries to every page, whether or not that page uses the plugin.

Run an audit:

  1. List every active plugin and ask whether you actually use it. Deactivate and delete anything you do not.
  2. Use a tool like Query Monitor or your host’s profiler to find plugins that add the most load time.
  3. Replace heavy, do-everything plugins with lighter, single-purpose ones.
  4. Be especially wary of page builders like Elementor and Divi, which add significant front-end weight.

A site running 40 plugins is almost always slower than it needs to be. Trimming to the essentials often produces a visible improvement.

Clean Up Your Database

Over time, the WordPress database fills with cruft: post revisions, trashed items, expired transients, spam comments, and orphaned metadata from plugins you removed years ago. Every database query has to wade through this.

Use a plugin like WP-Optimize to:

  • Delete old post revisions and auto-drafts.
  • Clear out spam and trashed comments.
  • Remove expired transients.
  • Optimize the database tables.

Schedule this to run automatically so the cleanup keeps happening. It will not transform a slow site on its own, but combined with caching it removes a real source of drag.

How Much Each Fix Actually Helps

Not every optimization carries the same weight. Here is a realistic sense of the effort-to-payoff ratio, so you spend your time on the changes that move the needle:

FixEffortTypical speed gainOngoing upkeep
Full-page cachingLowHighCache clears on every change
Image compressionLowHighNew images need compressing
CDN (Cloudflare free)LowMedium-HighMinimal
Latest PHP versionLowMediumRe-check on plugin updates
Better hostingMedium (cost)Medium-HighMonthly bill
Plugin auditMediumMediumRepeat as you add plugins
Database cleanupLowLow-MediumSchedule it
Switch to staticOne-time migrationHighestNone

The pattern is hard to miss. Every WordPress fix in the top rows buys you speed in exchange for recurring upkeep. Only the last row removes the work entirely.

Common Mistakes That Make Things Worse

In the rush to speed things up, plenty of site owners undo their own progress. Avoid these:

  • Stacking multiple caching plugins. Running WP Rocket and W3 Total Cache at once causes conflicts and can actually slow the site or break pages. Pick one.
  • Over-aggressive minification. Combining and minifying every script can break a theme’s JavaScript or a form. Turn these options on one at a time and re-test after each.
  • Lazy-loading the hero image. Deferring your largest above-the-fold image hurts LCP rather than helping it. Lazy-load below-the-fold images only.
  • Adding “speed” plugins that add weight. Some all-in-one optimizers load more than they save. If your baseline numbers do not improve after installing one, remove it.
  • Optimizing on localhost. Always measure on the live, deployed URL. Local numbers do not reflect real network latency, CDN behavior, or your actual hosting.

Why Optimization Is a Treadmill

Here is the part nobody selling you a caching plugin wants to mention. Every fix above treats a symptom. The underlying reason WordPress is slow is that it builds each page on demand by running PHP and querying a database every time someone visits.

Caching hides that work, but the moment you publish a post, update a plugin, or change a setting, the cache invalidates and the server is back to regenerating pages. Then a plugin update changes how the cache behaves. Then a new plugin adds scripts you have to optimize again. Then PHP gets updated and something breaks.

You are not maintaining a fast site. You are running on a treadmill, doing ongoing work just to keep the site from sliding back to slow. For a busy small business owner, that work never ends, and it is exactly the kind of hidden cost we documented in how much WordPress really costs and the recurring time sink covered in WordPress maintenance costs.

The Permanent Fix: Go Static

There is a way off the treadmill: stop generating pages on demand. A static site builds every page into plain HTML once, ahead of time, and serves that HTML directly. There is no PHP, no database, and no per-visit work.

The performance follows automatically:

  • No caching plugins, because the pages are already static HTML.
  • No database queries, because there is no database.
  • No plugin bloat, because there are no plugins.
  • Lighthouse scores of 90-100 instead of 40-70.
  • Free hosting on a CDN, because static files are cheap to serve.

The historical catch was that static sites were harder to build and edit than WordPress. That is no longer true. Pressless builds your site as a fast static Astro project and lets you edit it by describing changes in plain language, the same way you would tell a contractor what to change. You get WordPress-level ease with static-site speed. For the technical why behind that performance, see why static sites win.

If you are comparing your options, our WordPress alternative guide breaks down the tradeoffs, WordPress to static covers the move specifically, and the migration page explains how moving your existing content over works.

Where to Start

If you want to keep WordPress, work through the quick wins in order: caching, image compression, CDN, hosting, PHP version, plugin audit, database cleanup. You will get a real improvement.

If you are tired of the treadmill and want a site that is fast because of how it is built rather than how hard you tune it, the static route is the permanent answer.


Done fighting WordPress speed? Migrate to a fast static site and let the page-speed problem solve itself for good.

Frequently asked

Common questions

Why is my WordPress site so slow?

WordPress is slow because every page request runs PHP and queries a database in real time, then layers on plugins, themes, and third-party scripts. Cheap shared hosting, uncompressed images, and an unoptimized database make it worse. Each visitor triggers work that a static site does once at build time.

What is the fastest way to speed up WordPress?

The fastest single win is a full-page caching plugin combined with a CDN. Caching serves a pre-built HTML version of each page instead of regenerating it, and a CDN serves that page from a location near the visitor. Together they often cut load time in half within an hour.

Do WordPress speed plugins actually work?

Caching and image-optimization plugins genuinely help, but they add to the plugin count you have to maintain and update. They treat the symptom rather than the cause: WordPress regenerating pages on every request. They improve speed but do not make WordPress as fast as a static site.

Is it better to optimize WordPress or switch to a static site?

If you are constantly fighting speed, switching to a static site is the permanent fix. Static sites serve pre-built HTML with no PHP or database, so they are fast by design and need no caching plugins. Optimizing WordPress is ongoing work; going static removes the work.

Will speeding up my WordPress site help SEO?

Yes. Page speed and Core Web Vitals are ranking factors, and faster pages reduce bounce rates and improve conversions. Google measures Largest Contentful Paint and Interaction to Next Paint, both of which improve when you speed up your site.

How fast should my website load?

Aim for a Largest Contentful Paint under 2.5 seconds on mobile, a Cumulative Layout Shift under 0.1, and an Interaction to Next Paint under 200 milliseconds. These are Google's Core Web Vitals thresholds for a good experience. Most slow WordPress sites land at 4 to 6 seconds before optimization.

Which is the single biggest cause of a slow WordPress site?

For most sites it is a combination of cheap shared hosting with a slow Time to First Byte and large uncompressed images. Run PageSpeed Insights to see which applies to you: a high TTFB points to hosting or PHP, while a heavy page points to images and scripts.

You just read the guide

Get a free site live in minutes — not weekends

Describe your business. AI builds the site, writes the copy, and ships it to Cloudflare Pages. Free hosting, no credit card, no code.

Start building free

No credit card. No code. Free Cloudflare hosting included.

See plans From $9/mo · 7-day free trial

Unlimited bandwidth on Cloudflare Pages — no surprise bills

AI writes the copy, builds the pages, handles SEO

Sub-second load times from a 300-city CDN

You own the code — export anytime, no lock-in