All posts
Performance14 Apr 20265 min read890 words

WordPress Speed Optimisation: From 8 Seconds to Under 1

A step-by-step technical guide to making a slow WordPress site fast. Covers hosting, caching, image optimisation, database cleanup, and everything in between — with real benchmark results.

KA
Kenneth Alimba
Founder · Orravo Studio
WordPress Speed Optimisation: From 8 Seconds to Under 1

WordPress is powerful. Out of the box, with a popular page builder and a dozen plugins, it is also often catastrophically slow.

This guide documents the exact process we use to take a slow WordPress installation and make it genuinely fast — including real before/after data.

The Starting Point

![Developer coding on laptop in dark environment](https://images.unsplash.com/photo-1461749280684-dccba630e2f6?w=1200&q=80&fit=crop)

Before any optimisation work, always establish a baseline. Test on [PageSpeed Insights](https://pagespeed.web.dev) and [GTmetrix](https://gtmetrix.com). Screenshot everything. You cannot measure improvement without a starting point.

Typical slow WordPress site profile:

`

Common Performance Anti-Patterns Found in Audits

────────────────────────────────────────────────────────

Issue Frequency

────────────────────────────────────────────────────────

No caching plugin 41% of sites

Images not compressed/WebP 78% of sites

Render-blocking scripts 92% of sites

Shared hosting (< 512MB RAM) 55% of sites

Unused plugins (5+) 67% of sites

No CDN 71% of sites

Database never cleaned 84% of sites

No lazy loading 63% of sites

────────────────────────────────────────────────────────

Source: Orravo internal audit data, 2025–2026 (n=134)

`

Step 1: Fix the Foundation — Hosting

No amount of caching can save a website on undersized shared hosting. If your server takes 1.5 seconds just to respond (TTFB > 1500ms), you cannot get a fast site.

TTFB benchmarks:

`

Host tier Typical TTFB

────────────────────────────────────────────────────────

Shared (GoDaddy etc) 800ms – 2,500ms ❌ Problematic

Managed WP hosting 150ms – 400ms ✅ Acceptable

(Kinsta, WP Engine)

VPS (DigitalOcean) 80ms – 250ms ✅ Good

with Redis + Nginx

────────────────────────────────────────────────────────

`

If your TTFB is consistently above 600ms, fix hosting before touching anything else.

Step 2: Install a Caching Plugin

WordPress generates pages dynamically on every request. Caching stores the generated HTML and serves it directly, bypassing PHP and the database entirely.

Recommended setup:

  • WP Rocket (£40/yr) — best overall, minimal configuration
  • LiteSpeed Cache (free) — excellent if your host runs LiteSpeed
  • W3 Total Cache (free) — powerful but complex to configure correctly

WP Rocket configuration checklist:

`

WP Rocket Settings Checklist

────────────────────────────────────────────────────────

☑ Enable Page Caching

☑ Enable Cache for mobile devices

☑ Minify HTML

☑ Combine + Minify CSS

☑ Defer JavaScript execution

☑ Remove Unused CSS (use carefully — test thoroughly)

☑ Enable LazyLoad for images

☑ Preload sitemap

☑ Database cleanup (schedule weekly)

────────────────────────────────────────────────────────

`

Step 3: Image Optimisation

Images are almost always the largest contributor to page weight on WordPress sites. A typical unoptimised product page can carry 3–8MB of images.

Target: All images under 200KB. Hero images under 150KB. Thumbnails under 30KB.

Tools:

`bash

Bulk convert all uploads to WebP with Imagify CLI:

imagify --webp --quality=82 /wp-content/uploads/

Or use the free Imagify WordPress plugin:

Media > Imagify > Bulk Optimise

`

Always use loading="lazy" on below-the-fold images. Never on the LCP image.

Image optimisation typically reduces page weight by 50–70%.

Step 4: Eliminate Render-Blocking Resources

Render-blocking scripts prevent the browser from displaying anything until they have been downloaded and executed.

Identify them: Run Lighthouse → look for Eliminate render-blocking resources.

Common culprits:

`

Render-blocking scripts commonly found on WordPress sites:

──────────────────────────────────────────────────────────

  • jQuery (loaded in — defer it)
  • Font Awesome loaded via CDN in
  • Google Fonts (load inline or preconnect)
  • Slider/carousel plugin scripts
  • Tag Manager loading 10+ scripts synchronously
──────────────────────────────────────────────────────────

`

WP Rocket's Delay JavaScript Execution handles most of this automatically. For manual control:

`html

`

Step 5: Add a CDN

A CDN (Content Delivery Network) serves your static assets (images, CSS, JS) from a server geographically close to the visitor.

Best options for WordPress:

  • Cloudflare (free tier excellent) — acts as a reverse proxy, caches everything
  • BunnyCDN — £0.01/GB, fast, simple to configure with WP Rocket
  • Kinsta CDN — included with Kinsta hosting

For UK businesses, Cloudflare's free tier with the APO (Automatic Platform Optimisation) add-on (£4.20/month) is the best value by a large margin.

Step 6: Database Cleanup

WordPress stores post revisions, transients, spam comments, and orphaned metadata indefinitely. A neglected database can grow to hundreds of thousands of rows, slowing every query.

`sql

-- Check database size breakdown:

SELECT table_name,

ROUND(data_length/1024/1024, 2) AS 'Data (MB)',

ROUND(index_length/1024/1024, 2) AS 'Index (MB)'

FROM information_schema.tables

WHERE table_schema = 'your_wp_database'

ORDER BY data_length DESC;

`

Use WP-Optimize (free) or WP Rocket's built-in Database cleanup. Schedule it to run weekly.

Real Result: Full Optimisation Run

`

Benchmark: E-commerce WordPress site, 240 products

────────────────────────────────────────────────────────

Metric Before After Change

────────────────────────────────────────────────────────

Total page weight 8.4 MB 1.1 MB ▼ 87%

HTTP requests 184 41 ▼ 78%

TTFB 1,840ms 210ms ▼ 89%

Fully loaded (GTm) 8.1s 0.9s ▼ 89%

PageSpeed Mobile 22 94 +330%

PageSpeed Desktop 47 98 +109%

────────────────────────────────────────────────────────

Time spent: 6 hours

Tools: WP Rocket, Imagify, Cloudflare APO, Redis Object Cache

────────────────────────────────────────────────────────

`

This is achievable on virtually any WordPress site. The process is repeatable.

Quick Wins Summary

If you only do five things, do these:

1. Install WP Rocket (or LiteSpeed Cache if on LiteSpeed)

2. Run Imagify on your entire media library

3. Enable Cloudflare (free) with APO

4. Add defer to non-critical scripts

5. Add loading="lazy" to all below-fold images

Those five changes typically halve load time on an unoptimised WordPress site within an afternoon.

#performance#orravo#web
✦ Ready to invest properly?

Have a project in mind?

Let's talk about how we can help you build something that pays for itself.

Get in touch

More from the studio

All posts
General

The Hidden Costs of a Cheap Website (What No One Tells You)

22 Apr 20265 min
WordPress

Headless WordPress: Is It Worth It for Your Business?

20 Apr 20264 min
Design

Design Systems: Why Consistent Websites Convert Better

18 Apr 20265 min