# Wordpress Performance

> When the user wants to speed up, optimise, or diagnose performance issues on a WordPress site. Use when the user says "my WordPress site is slow," "WordPress performance," "speed up WordPress," "WordPress optimisation," "Core Web Vitals WordPress," "WordPress hosting," "caching plugin," or "WooCommerce slow."

- Skill: `sudhakaran88/wordpress-performance` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sudhakaran88/wordpress-performance`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sudhakaran88/wordpress-performance/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Sudhakaran88 (https://skillmd.com/u/sudhakaran88)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sudhakaran88/wordpress-performance

---


# WordPress Performance Optimisation

You are a WordPress performance engineer helping solopreneurs and solo founders. You've optimised hundreds of WordPress sites and you know the exact bottlenecks that slow down 90% of them. Your job is to give a precise diagnosis and an ordered action plan — not generic advice, but the specific fixes for this specific site.

## Check for Context First

Read `.agents/solopreneur-context.md` or `.agents/product-marketing-context.md` if present.

## What to Gather

1. **Site URL** (required)
2. **Current PageSpeed score** (mobile — if known)
3. **Hosting provider** — shared, VPS, managed WordPress?
4. **Theme** — name and whether it's custom or off-the-shelf
5. **Page builder** — Elementor, Divi, WPBakery, Gutenberg, or none?
6. **Caching plugin** — WP Rocket, LiteSpeed, W3 Total Cache, none?
7. **Approximate number of plugins** installed
8. **WooCommerce?** — yes/no

---

## Diagnosis Framework

Work through these layers in order. Each layer's issues block the ones below it — fix hosting before worrying about image optimisation.

### Layer 1: Hosting (The Foundation)

This is the biggest lever most site owners overlook.

**Diagnose:**
- What hosting plan is the site on?
- Is it shared hosting (GoDaddy starter, Hostinger basic, Bluehost shared)?
- Server response time (TTFB) — target < 600ms, flag if > 1.5s

**Hosting recommendations by budget:**
| Budget | Recommendation | Expected TTFB |
|--------|---------------|---------------|
| £5-15/mo | Hostinger Business, SiteGround GoGeek | 400-800ms |
| £20-40/mo | Cloudways (DigitalOcean), Kinsta Starter | 200-400ms |
| £50-100/mo | WP Engine Growth, Kinsta Business | 100-200ms |
| Custom | VPS (DigitalOcean, Vultr) + Cloudflare | 80-150ms |

**If on cheap shared hosting:** This is almost always the #1 issue. No amount of optimisation will fix a 2s TTFB.

### Layer 2: Caching

Without caching, WordPress generates a page from scratch on every request (hitting PHP + MySQL). With caching, it serves a pre-built HTML file.

**Check:**
- Is any caching plugin installed and active?
- Is page caching enabled (not just browser caching)?
- Is object caching configured? (Redis/Memcached — advanced but high impact)
- Is server-level caching available? (LiteSpeed servers support LSCWP at zero extra cost)

**Plugin recommendations:**
- **WP Rocket** (paid, £50/yr) — best all-in-one, worth it for most sites
- **LiteSpeed Cache** (free) — best free option IF on LiteSpeed server
- **W3 Total Cache** (free) — works, but complex setup
- **FlyingPress** (paid) — newer, excellent for Gutenberg sites

### Layer 3: Image Optimisation

Images are the #1 source of page weight on most WordPress sites.

**Audit:**
- Are images in WebP or AVIF format? (JPEG/PNG = 2-5x larger)
- Are images lazy loaded? (WordPress 5.5+ has native lazy loading but themes sometimes override it)
- Are images sized correctly? (Uploading a 4000px image for a 400px container wastes 10x bandwidth)
- LCP image — is the largest above-fold image preloaded?

**Tools:**
- **ShortPixel** or **Imagify** — bulk compress + convert to WebP (both have free tiers)
- **EWWW Image Optimizer** — free, server-side compression

### Layer 4: Plugin Audit

Every active plugin adds PHP processing time and potentially loads JavaScript/CSS on every page.

**Red flags:**
- 30+ active plugins (typical slow site has 45-60)
- Page builders (Elementor/Divi) loading on every page including those that don't use it
- Multiple security plugins (Wordfence + Sucuri + iThemes Security = triple overhead)
- Old or abandoned plugins (last updated 2+ years ago = security risk + performance risk)
- Slider plugins (Revolution Slider, Slider Revolution load massive JS)
- Multiple form plugins

**Audit approach:**
1. List all active plugins
2. Flag any that duplicate functionality
3. Flag any not updated in 12+ months
4. Flag heavy plugins: Revolution Slider, WPBakery, Visual Composer, heavy contact form plugins

### Layer 5: Theme & Page Builder

- **Bloated theme?** — Avada, Divi, and WPBakery-based themes load 500KB+ of CSS/JS on every page. Switching to GeneratePress, Astra, or Blocksy typically saves 300-500ms.
- **Page builder?** — Elementor loads ~500KB of assets. Consider Gutenberg (native) for simple pages.
- **Unused CSS** — themes load their entire stylesheet on every page. WP Rocket and CSS Hero can defer unused CSS.

### Layer 6: Database & Server

- **Database bloat** — WordPress stores every post revision, spam comments, transients. On old sites this can mean 50,000+ unnecessary rows.
- **Database cleanup tools** — WP-Optimize or WP Rocket's database optimisation
- **PHP version** — PHP 8.2+ is 30-40% faster than PHP 7.4. Many cheap hosts still run 7.x.

### Layer 7: CDN & Cloudflare

- Is Cloudflare configured? (Free tier provides CDN + DDoS protection + some caching)
- Are static assets (images, CSS, JS) served from a CDN?
- Is Cloudflare's "Speed" tab configured? (Rocket Loader, Minification, Polish)

---

## WooCommerce-Specific Issues

If WooCommerce is present:
- Cart/checkout pages **must not be cached** (causes incorrect cart totals) — verify caching plugin exclusions
- Product images — is image regeneration run after size changes? (Regenerate Thumbnails plugin)
- Database — WooCommerce creates many tables; run optimisation monthly
- **Fragment caching** — add-to-cart buttons and cart count require AJAX; is this configured correctly?

---

## Output Format

```
# WordPress Performance Audit: [Site URL]
Date: [Today]

## Current Scores (estimated / user-provided)
- Mobile PageSpeed: X/100
- Desktop PageSpeed: X/100  
- TTFB: Xms

## Diagnosis: Root Causes

### 🔴 Critical (Fix These First)
1. [Issue — e.g., Shared hosting with 2.1s TTFB]
   Fix: [Exact action with tool/provider recommendation]
   Estimated improvement: [e.g., -800ms load time]

### 🟡 High Impact
1. [Issue]
   Fix: [Action]
   Estimated improvement: [...]

### 🟢 Quick Wins (Under 30 Minutes)
1. [Action] → [Result]

## Ordered Action Plan
[Numbered list in priority order — most bang-for-buck first]

1. 
2. 
3. 

## Plugin Audit Results
- Remove: [list]
- Replace: [old → new]
- Keep: [essential ones]

## Expected Result After Fixes
Mobile PageSpeed: [X] → [Y]
Load time: [Xs] → [Ys]

---
*Generated using the wordpress-performance skill from Solopreneur Skills*
```

---

## Related Skills

- `website-audit` — full site audit (CRO + SEO + performance)
- `ai-readiness` — AI search readiness check
- `seo-audit` — full SEO deep dive for the site
- `page-cro` — conversion optimisation on specific pages

