Abuja Digital Studio · Est. 2018
Start a Project
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

Before any optimisation work, always establish a baseline. Test on PageSpeed Insights and GTmetrix. 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:


# 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 <head> — defer it)
- Font Awesome loaded via CDN in <head>
- 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:


<!-- Add defer attribute to non-critical scripts: -->
<script src="/wp-content/plugins/slider/slider.min.js" defer></script>

<!-- Preconnect to Google Fonts to reduce DNS time: -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

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.


-- 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
Design

Why Most WordPress Sites Become Slow After 1 Year

13 May 20265 min
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