# How to Speed Up a Slow WordPress Site (2026)

- Link: https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/
- Published: 2026-10-23T11:43:46+03:00
- Author: eJohnny

A slow WordPress site costs you visitors, search rankings, and revenue. Google uses
page speed as a ranking factor, and studies consistently show that every extra second
of load time increases bounce rate and reduces conversions. The good news: most 
WordPress speed problems are fixable in an afternoon.

This guide walks you through the complete WordPress speed optimization process for
2026: how to measure your site, what to fix first, and the specific settings and
tools that make the biggest difference. It was written for site owners and developers
who want a faster site without rebuilding from scratch.

![Analytics dashboard showing website performance metrics and speed scores](https://
images.unsplash.com/photo-1551288049-bebda4e38f71?fm=jpg&q=60&w=1200&auto=format&
fit=crop)

Measuring your WordPress site speed is the first step to fixing it.

## How to measure your WordPress speed

Before you fix anything, measure. You cannot improve what you do not measure. Use
these tools:

 * **Google PageSpeed Insights (pagespeed.web.dev)** — the gold standard. Gives 
   you a 0–100 score for mobile and desktop, plus Core Web Vitals data from real
   users (CrUX). Free.
 * **GTmetrix (gtmetrix.com)** — detailed waterfall view of every request. Shows
   exactly which files are slow. Free tier is generous.
 * **Lighthouse (built into Chrome DevTools)** — audit tab, run on your own browser.
   Good for quick checks during development.
 * **Query Monitor plugin** — shows database queries, hook execution time, and enqueued
   assets on each page. Essential for finding plugin bloat.
 * **WebPageTest (webpagetest.org)** — multi-location, multi-device testing. Best
   for seeing how your site loads on slow connections.

**What to aim for:** a PageSpeed score of 90+ on mobile, LCP under 2.5 seconds, 
INP under 200 ms, CLS under 0.1. These are Google’s “good” thresholds for Core Web
Vitals.

## Core Web Vitals: what they mean

Google ranks sites partly on three user-experience metrics. Understanding them helps
you prioritize fixes:

 * **LCP (Largest Contentful Paint)** — how long until the biggest element (usually
   a hero image or heading) is visible. Target: under 2.5 s. Fix: optimize images,
   use a CDN, reduce server response time.
 * **INP (Interaction to Next Paint)** — how responsive the page is to clicks/taps.
   Target: under 200 ms. Fix: reduce JavaScript, avoid long tasks, defer non-critical
   scripts.
 * **CLS (Cumulative Layout Shift)** — how much the page jumps around while loading.
   Target: under 0.1. Fix: set explicit width/height on images and embeds, avoid
   injecting content above existing content.

## The biggest speed killers (in order)

Not all optimizations are equal. Fix these in order — each one has an outsized impact:

 1. **Slow hosting** — if your server takes 2+ seconds to respond (TTFB), nothing else
    matters.
 2. **Unoptimized images** — a single 4 MB hero image can add 3 seconds to load time.
 3. **Too many plugins** — each plugin adds PHP execution time, database queries, and
    often CSS/JS files.
 4. **No caching** — without page caching, WordPress rebuilds every page from scratch
    on every visit.
 5. **Bloated theme** — multipurpose themes with 50+ features load code you never use.
 6. **External scripts** — analytics, ads, chat widgets, social embeds. Each adds a
    network request.
 7. **Unoptimized database** — post revisions, transients, orphaned metadata accumulate
    over time.
 8. **Old PHP version** — PHP 7.4 is 2–3x slower than PHP 8.3.

## Step 1: Fix your hosting (the #1 factor)

If your TTFB (Time to First Byte) is over 600 ms, your host is the bottleneck. No
amount of caching or image optimization will fix a slow server. Signs you need better
hosting:

 * TTFB over 600 ms on a simple page.
 * Frequent downtime or 503 errors during traffic spikes.
 * Support that cannot answer technical questions.
 * Shared server with hundreds of neighbors (oversold resources).

Look for a host with: NVMe storage, modern CPU (AMD EPYC / Intel Xeon), server-level
caching (Nginx + Redis), low tenancy, and a published uptime SLA. Avoid hosts with“
unlimited” everything and renewal price hikes.

For European sites, [Kiravo](https://kiravo.net/) is a strong option — AMD EPYC 
+ NVMe, Nginx + Redis, 99.99% uptime, expert WordPress support, and flat pricing
with no renewal hikes. Plans start at €9/month. You can check current plans here:

 [See Kiravo hosting plans →](https://my.kiravo.net/?affid=228)

**Disclosure:** this article contains affiliate links. If you sign up through them,
I may earn a commission at no extra cost to you.

## Step 2: Enable caching

Caching is the single biggest quick win. Without it, WordPress rebuilds every page
from PHP + MySQL on every visit. With it, the server serves a static HTML file in
milliseconds.

### Page caching

Install a caching plugin:

 * **WP Rocket** (paid, easiest) — one-click setup, includes minification, lazy 
   loading, and CDN integration.
 * **LiteSpeed Cache** (free, if your host uses LiteSpeed) — excellent, server-level
   caching.
 * **W3 Total Cache / WP Super Cache** (free) — solid, more manual configuration.

If your host provides server-level page caching (Nginx FastCGI cache, Varnish), 
use that instead of a plugin — it is faster and uses less memory.

### Object caching (Redis / Memcached)

Object caching stores database query results in memory so WordPress does not re-
run the same queries on every page load. This is especially important for WooCommerce,
membership sites, and any site with dynamic content.

Ask your host if Redis is available. If yes, enable it and install a Redis object
cache plugin (e.g., “Redis Object Cache” by Till Krüss). If your host does not offer
Redis, consider switching to one that does.

## Step 3: Optimize images

Images are usually the largest files on a page. A 4 MB hero image can add 3+ seconds
to load time. Fix this:

 * **Compress images:** use ShortPixel, Imagify, or Smush. They compress on upload
   and can bulk-optimize existing images. Target: under 200 KB for a full-width 
   image.
 * **Serve WebP:** modern format, 25–35% smaller than JPEG at the same quality. 
   Most optimization plugins generate WebP automatically and serve it to supporting
   browsers.
 * **Lazy loading:** images below the fold should not load until the user scrolls
   to them. WordPress adds `loading="lazy"` by default since 5.5. Make sure your
   theme and plugins do not disable it.
 * **Correct dimensions:** do not upload a 4000px-wide image for a 800px-wide slot.
   Resize before uploading, or use a plugin that generates responsive sizes.
 * **Use a CDN for images:** serve images from a CDN (Cloudflare, BunnyCDN) to reduce
   latency for global visitors.

## Step 4: Audit your plugins

Every plugin adds PHP execution time, database queries, and often CSS/JS files. 
Audit ruthlessly:

 1. Deactivate all plugins. Measure speed. Reactivate one at a time, measuring after
    each. Identify the slow ones.
 2. Remove plugins you are not actively using. Deactivated plugins still load code 
    in some cases.
 3. Replace heavy plugins with lighter alternatives. Example: replace a page builder
    with the block editor + a lightweight theme.
 4. Check for duplicate functionality. Two SEO plugins, two caching plugins, or two
    form plugins = wasted resources.

Use Query Monitor to see which plugins add the most queries and execution time on
each page.

## Step 5: Clean the database

WordPress accumulates junk over time: post revisions, auto-drafts, trashed posts,
expired transients, orphaned metadata. Clean it:

 * **Limit revisions:** add `define('WP_POST_REVISIONS', 5);` to `wp-config.php`.
   This caps revisions at 5 per post.
 * **Use WP-Optimize or Advanced Database Cleaner:** removes revisions, transients,
   and orphaned data. Schedule weekly cleanups.
 * **Remove unused tables:** when you delete a plugin, it often leaves its tables
   behind. Check with Advanced Database Cleaner.
 * **Optimize tables:** run `OPTIMIZE TABLE` on your database (WP-Optimize does 
   this automatically).

## Step 6: Use a CDN

A CDN (Content Delivery Network) serves your static files (images, CSS, JS) from
servers close to your visitors. This reduces latency, especially for global audiences.
Options:

 * **Cloudflare (free tier):** the easiest to set up. Change your nameservers, enable
   caching, and you are done. Free tier includes CDN, basic WAF, and SSL.
 * **BunnyCDN:** pay-as-you-go, very affordable, excellent performance.
 * **KeyCDN / StackPath:** established providers with WordPress integration.

Most caching plugins (WP Rocket, W3 Total Cache) have built-in CDN integration. 
Configure the CDN URL in the plugin settings.

## Step 7: Update PHP and WordPress

 * **PHP version:** upgrade to PHP 8.2 or 8.3 (8.4 if your plugins support it). 
   Each major version is significantly faster. Check compatibility with the “PHP
   Compatibility Checker” plugin first.
 * **WordPress core:** keep WordPress updated. New releases include performance 
   improvements (WordPress 6.9 added on-demand block stylesheet loading for classic
   themes).
 * **Themes and plugins:** update regularly. Outdated code is slower and less secure.

## Step 8: Minify and combine assets

Minification removes whitespace and comments from CSS/JS files, reducing file size.
Combining reduces HTTP requests. Most caching plugins (WP Rocket, LiteSpeed Cache)
handle this automatically. Be careful: combining can break things if scripts have
dependencies. Test thoroughly after enabling.

Also enable GZIP or Brotli compression on your server. This compresses text files(
HTML, CSS, JS) before sending them to the browser, reducing transfer size by 60–
80%.

## Step 9: Optimize fonts and third-party scripts

 * **Fonts:** use `font-display: swap` to prevent invisible text. Limit to 2 font
   families and 2–3 weights. Self-host fonts instead of loading from Google Fonts(
   reduces DNS lookups). Use WOFF2 format.
 * **Third-party scripts:** audit every external script (analytics, ads, chat, social
   embeds). Each one adds a DNS lookup, connection, and download. Remove what you
   do not need. Load the rest with `async` or `defer`.
 * **Google Analytics:** consider using a lightweight alternative (Plausible, Fathom,
   or server-side tracking) to reduce JS payload.
 * **Embedded content:** YouTube embeds load heavy iframe scripts. Use a “facade”—
   a static thumbnail that loads the iframe only on click.

## Step 10: Server-level tuning (advanced)

If you manage your own server or have a quality host, these settings help:

 * **OPcache:** enable PHP OPcache with sufficient memory (128–256 MB). This caches
   compiled PHP bytecode so scripts are not re-parsed on every request.
 * **Nginx FastCGI cache:** cache full pages at the server level. Faster than any
   plugin-based cache.
 * **Redis object cache:** as mentioned in Step 2.
 * **HTTP/2 or HTTP/3:** multiplexed connections reduce latency. Most modern hosts
   enable this by default.
 * **Brotli compression:** better than GZIP for text files. Enable if your server
   supports it.

## Quick wins checklist

If you only have 30 minutes, do these:

 1. Run PageSpeed Insights. Note the top 3 issues.
 2. Install a caching plugin (WP Rocket or LiteSpeed Cache). Enable page cache + minification.
 3. Install an image optimization plugin (ShortPixel or Imagify). Bulk-optimize existing
    images.
 4. Update PHP to 8.2+.
 5. Delete unused plugins and themes.
 6. Enable Cloudflare (free) for CDN + basic caching.
 7. Re-run PageSpeed. Compare scores.

## Frequently asked questions

**What is a good PageSpeed score?**
 90+ on mobile is excellent. 70–89 is acceptable.
Below 70 needs work. Focus on Core Web Vitals (LCP, INP, CLS) rather than the score
alone.

**How fast should my WordPress site load?**
 Under 2 seconds for the full page load.
Under 1 second for LCP. Under 200 ms for INP. These are Google’s “good” thresholds.

**Does hosting really matter that much?**
 Yes. If your TTFB is over 600 ms, no 
amount of caching or image optimization will fix it. Hosting is the foundation. 
Everything else builds on top.

**Will a caching plugin fix everything?**
 No. Caching helps with page delivery,
but it does not fix slow database queries, unoptimized images, or bloated plugins.
You need to address all layers.

**How often should I optimize?**
 Set up automated image optimization and database
cleanup. Run a full audit quarterly. Monitor Core Web Vitals monthly via Google 
Search Console.

**Is it worth paying for premium caching (WP Rocket)?**
 Yes, if you are not technical.
WP Rocket’s one-click setup saves hours of configuration. Free alternatives (LiteSpeed
Cache, W3 Total Cache) work but require more manual tuning.

## Conclusion

Speeding up a slow WordPress site is not about one magic fix — it is about addressing
each layer: hosting, caching, images, plugins, database, CDN, and code. Start with
the biggest impact (hosting + caching + images) and work your way down. Most sites
can go from a 40 to a 90+ PageSpeed score in an afternoon.

If your hosting is the bottleneck, no optimization will save you. Consider a host
with NVMe storage, server-level caching, and expert WordPress support. For European
sites, [Kiravo](https://kiravo.net/) is a solid choice — AMD EPYC + NVMe, Nginx 
+ Redis, 99.99% uptime, flat pricing, and a 30-day money-back guarantee. Plans start
at €9/month:

 [See Kiravo hosting plans →](https://my.kiravo.net/?affid=228)

Remember: speed is not a one-time task. Set up monitoring, automate what you can,
and revisit quarterly. Your visitors — and Google — will thank you.

### Share this:

 * [  X ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=twitter)
 * [  Facebook ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=facebook)
 * [More](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/#)

 * [  LinkedIn ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=linkedin)
 * [  Reddit ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=reddit)
 * [  Tumblr ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=tumblr)
 * [  Pinterest ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=pinterest)
 * [  Telegram ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=telegram)
 * [  WhatsApp ](https://dev.ejohnny.ro/how-to-speed-up-slow-wordpress-site/?share=jetpack-whatsapp)
