# Lighthouse Performance Audit

Audit of the 6 worst-performing sites from MainWP Lighthouse scores. Focused on simple infra/config fixes only — no PHP scripts, no plugins, nothing that can't be easily unpicked.

## Shared Infrastructure (all 6 sites)

Feature Status Action
—————–——–
Hosting kaburusvr (Hetzner), LiteSpeed, CyberPanel
CDN Cloudflare (all behind proxy) ✅ Working
CF HTML Cache `CF-Cache-Status: DYNAMIC` on all sites ❌ Cloudflare NOT caching HTML pages
FastPixel v1.7.0 on all sites, JS defer enabled
Redis Object Cache Working on 4/6 sites, missing on 2 ❌ Need to restore drop-in
Divi All 6 use Divi (4.27.6 or 5.7.4) All have static CSS ON, dynamic module ON
Divi Minify/Combine OFF on ALL 6 sites ❌ Easy toggle in Divi settings
LiteSpeed Cache plugin NOT installed on any site
PageSpeed Module Active on 3/6 sites (jafrica, friendscic, claybusters) ❌ Missing on the other 3

## Site-by-Site

### l8.kaburu.co.uk — Mobile 0 / Desktop 0

This is a scan failure, not a real score. Site returns 200 OK, loads fine. The 0/0 means Lighthouse couldn't complete its run (likely timeout or blocking resource).

Issue Fix
——-—–
❌ Redis object-cache.php missing FastPixel drop-in not installed
❌ CF-Cache-Status: DYNAMIC Cloudflare cache rule for WordPress HTML
❌ Divi Google Fonts Inline OFF Toggle ON in Divi → Theme Options → Performance
❌ Divi Minify/Combine OFF Toggle ON — scripts and styles
❌ No PageSpeed module Enable in CyberPanel
❌ No LiteSpeed Cache plugin Not needed if FastPixel handles caching
❌ Divi 4.27.6 (older) Consider updating to match 5.7.4 sites

Priority: Fix Redis drop-in first, then PageSpeed module, then Divi toggles.

### longniddrybowlingclub.com — Mobile 12 / Desktop 45

Worst genuine score. All infra checks passing (Redis ✅, FastPixel ✅). Likely heavy images, unoptimised Divi content, and render-blocking resources.

Issue Fix
——-—–
❌ CF-Cache-Status: DYNAMIC Cloudflare cache rule for WordPress HTML
❌ No PageSpeed module Enable in CyberPanel
❌ Divi Minify/Combine OFF Toggle ON
❌ Divi 4.27.6 (older) Consider updating
❌ DiviCommerce theme May add extra CSS/JS bloat

This site needs actual page analysis (what's loading, image sizes, render-blocking resources). The low score suggests large hero images or unoptimised third-party resources.

### jafricasafari.com — Mobile 43 / Desktop 65

Issue Fix
——-—–
❌ Redis object-cache.php missing FastPixel drop-in not installed
❌ CF-Cache-Status: DYNAMIC Cloudflare cache rule
❌ Divi jQuery Body OFF jQuery loading in head — toggle to body
❌ Divi Minify/Combine OFF Toggle ON
✅ PageSpeed module Active
✅ Divi Google Fonts Inline ON
✅ Divi 5.7.4 Current

Priority: Fix Redis drop-in, toggle jQuery Body, then Divi minify.

### womenunlimited.africa — Mobile 46 / Desktop 79

Issue Fix
——-—–
❌ CF-Cache-Status: DYNAMIC Cloudflare cache rule
❌ No PageSpeed module Enable in CyberPanel
❌ Divi Disable Emojis OFF Toggle ON — stops WordPress emoji scripts
❌ Divi Defer Block CSS OFF Toggle ON
❌ Divi Minify/Combine OFF Toggle ON
⚠️ WooCommerce active Session cookies may prevent caching
✅ Redis object cache Working

Priority: Divi performance toggles (emojis, defer CSS, minify).

### friendscic.org — Mobile 54 / Desktop 62

Issue Fix
——-—–
Anti-cache headers Sends `cache-control: no-store, no-cache, must-revalidate` — disables ALL browser and proxy caching. Likely from WooCommerce session or a security plugin
❌ CF-Cache-Status: DYNAMIC Cloudflare cache rule (but won't help if origin sends no-cache)
❌ Divi Disable Emojis OFF Toggle ON
❌ Divi Minify/Combine OFF Toggle ON
⚠️ WooCommerce active May be source of no-cache headers
✅ PageSpeed module Active
✅ Redis object cache Working
✅ Divi 5.7.4 Current

Priority: Find and fix the no-cache headers (likely WooCommerce session or caching/exclusion plugin misconfig). Then standard Divi toggles.

### claybusters.scot — Mobile 65 / Desktop 79

Issue Fix
——-—–
❌ CF-Cache-Status: DYNAMIC Cloudflare cache rule
❌ Divi Minify/Combine OFF Toggle ON
✅ PageSpeed module Active
✅ Redis object cache Working
✅ Divi 5.7.4 Current
✅ Divi Disable Emojis ON
✅ Divi Google Fonts Inline ON

Priority: Minor — Cloudflare cache rule and Divi minify would push this into the 80+ range.

## Quick Wins (no plugins, no scripts)

### 1. Cloudflare Page Rule — Cache WordPress HTML Add a Cloudflare page rule for each site: - URL: `*longniddrybowlingclub.com/*` - Setting: `Cache Level: Standard` - OR use Cache Rules (newer): Bypass cache on `cookie=*wordpress_logged_in*` or `cf-worker=wp-session`

This would edge-cache HTML pages for anonymous visitors — the biggest single performance gain since all 6 sites currently serve dynamic.

### 2. Divi Performance Toggles (30-second job per site) In Divi → Theme Options → Performance, enable: - ✅ Minify/Combine Scripts - ✅ Minify/Combine Styles - ✅ Disable Emojis (off on womenunlimited, friendscic) - ✅ Google Fonts Inline (off on l8.kaburu) - ✅ jQuery Body (off on jafricasafari) - ✅ Defer Block CSS (off on womenunlimited)

### 3. Enable PageSpeed Module (CyberPanel) For sites missing it (l8, longniddry, womenunlimited), enable in CyberPanel: - `CyberPanel → PageSpeed → Enable for domain` - This handles minify, defer, combine, and image optimization server-side

### 4. Restore Redis Drop-in (l8, jafricasafari) Copy the FastPixel object-cache.php from a working site (e.g. claybusters) to the missing ones. FastPixel manages Redis internally — no WP_REDIS_CONFIG needed.

### 5. Fix friendscic no-cache headers Check which plugin sets `cache-control: no-store`: - `wp plugin list` — look for caching, security, or WooCommerce extensions - Check WooCommerce session handling — may be setting no-cache on all pages instead of just cart/checkout

## What NOT to do - ❌ No PHP scripts injected into theme files - ❌ No custom plugins - ❌ No .htaccess rewrites for caching - ❌ No modifying WordPress core or Divi core files - ❌ No installing LiteSpeed Cache plugin (would conflict with FastPixel)

Everything listed above is config-only: Divi UI toggles, CyberPanel settings, Cloudflare rules, or copying an existing Redis drop-in file.

## Related

- object-cache — Redis object cache estate-wide setup - litespeed — LiteSpeed server config - fastpixel-mainwp-cache-control — FastPixel + Cloudflare integration