DEV Community

Cover image for WordPress Performance Plugins 2026: I Benchmarked 9 of Them So You Don't Have To
John A
John A

Posted on

WordPress Performance Plugins 2026: I Benchmarked 9 of Them So You Don't Have To

TL;DR: I benchmarked 6 caching/performance plugins and 5 image optimizers on the exact same WordPress 6.9 install. JavaScript delay is worth
+19 PageSpeed points alone. Most image optimizers are mediocre β€” only 2 out of 5 deliver real compression. Full data tables below.


## Why I Did This

I got tired of reading "WP Rocket vs FlyingPress" articles that are just affiliate link farms with zero real data. So I set up a controlled test
environment β€” same server, same WordPress install, same content β€” and ran every major performance plugin through the same benchmark. No
affiliate links. No sponsorships. Just numbers.


## πŸ”¬ Test Environment

This isn't a fresh install with "Hello World." It's a real-world bloated WordPress site β€” the kind most people actually run.

Server specs:

  • Hetzner Cloud VPS β€” AMD EPYC Rome, 4 vCPU, 8GB RAM, 75GB NVMe SSD
  • Ubuntu 24.04 Β· Nginx 1.28 Β· PHP 8.3 Β· MySQL 8.0 Β· OPcache enabled

WordPress setup:

  • WordPress 6.9.1
  • Theme: Astra with Elementor
  • Content: 19 posts, 23 pages, 2 WooCommerce products (44 published items)

30 active plugins including: Elementor, WooCommerce, Jetpack, Wordfence, Contact Form 7, BuddyPress, bbPress, Yoast SEO, Rank Math, WPForms,
Akismet, UpdraftPlus, Google Site Kit, MonsterInsights, Redirection, Cookie Notice, Classic Editor, ACF, and more.

Homepage baseline (no optimization):

| Metric | Value |
|---|---|
| HTML size | 257 KB |
| DOM elements | 1,245 |
| Total requests | 168 |
| Scripts loaded | 126 |
| Stylesheets loaded | 89 |

That's 30 plugins, 126 scripts, and 89 stylesheets. If a performance plugin can make THIS fast, it can handle anything.

Scoring method: Google PageSpeed Insights API, median of 5 runs per plugin. One plugin active at a time, full cache clear between tests,
10-minute cooldown.


## ⚑ Part 1: Caching & Performance Plugins

Tested: FlyingPress, WP Rocket, LiteSpeed
Cache
, Perfmatters, W3 Total
Cache
, and ProRank SEO.

### PageSpeed Results

| | Plugin | Mobile | Desktop | LCP | Blocking JS | Delayed JS | Verdict |
|---|--------|:---:|:---:|:---:|:---:|:---:|------|
| πŸ† | ProRank SEO | 96 | 100 | 2,402ms | 0 | 27 | 🟒🟒🟒🟒🟒 |
| πŸ₯ˆ | FlyingPress | 93 | 99 | 2,510ms | 0 | 49 | 🟒🟒🟒🟒 |
| πŸ₯‰ | Perfmatters | 84 | 94 | 2,950ms | 2 | 18 | 🟒🟒🟒 |
| | WP Rocket | 81 | 92 | 3,200ms | 3 | 12 | 🟑🟑🟑 |
| | LiteSpeed Cache | 76 | 89 | 3,820ms | 4 | 0 | 🟑🟑 |
| | W3 Total Cache | 68 | 82 | 4,890ms | 10 | 0 | πŸ”΄πŸ”΄ |
| | No plugin | 63 | 78 | 5,477ms | 12 | 0 | πŸ”΄ |

### 🎯 What Each Optimization Is Actually Worth

| Optimization | Points | Impact |
|---|:---:|---|
| JavaScript delay (until interaction) | +19 | πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ Game changer |
| Critical CSS extraction | +8 | πŸ”₯πŸ”₯πŸ”₯ |
| Unused CSS removal | +7 | πŸ”₯πŸ”₯πŸ”₯ |
| Page caching (HTML) | +5 | πŸ”₯πŸ”₯ |
| LCP resource preload | +4 | πŸ”₯πŸ”₯ |
| CSS combining | +3 | πŸ”₯ |
| Image lazy loading | +2 | πŸ”₯ |

πŸ’‘ Key insight: JavaScript delay alone is worth more than caching + image lazy loading + CSS combining put together. If your performance
plugin doesn't delay JS until user interaction, you're leaving 15-20 points on the table.

### Why FlyingPress Scores Lower Despite Delaying More

FlyingPress delays 49 scripts. ProRank delays 27. Yet ProRank scores 3 points higher.

The difference is CSS optimization. The Elementor test site had 413KB of combined CSS. After unused rule removal: 253KB β€” that's
160KB of dead CSS every visitor downloads for nothing. FlyingPress doesn't strip unused CSS as aggressively. The combination of critical CSS +
unused CSS removal + synchronous combined CSS loading made the difference.

The lesson: it's not about how many scripts you delay. It's about the complete pipeline β€” JS delay + CSS optimization + caching + preloading
working together.

### πŸ“Š Plugin Tier List

🟒 Tier 1 β€” Full pipeline (90+ mobile)
FlyingPress, ProRank SEO β€” JS delay + CSS optimization + caching + preloading. The complete package.

🟑 Tier 2 β€” Good but conservative (80-89)
WP Rocket, Perfmatters β€” Solid caching, some JS delay, but too careful with core scripts. You'll hit 80s but plateau.

πŸ”΄ Tier 3 β€” Caching only (65-76)
LiteSpeed Cache, W3 Total Cache β€” Page caching only, no JS delay. In 2026 that's not enough.

### ⚠️ WordPress 6.9 PSA

If your scores dropped after updating to WordPress 6.9 β€” here's why.

WP 6.9 changed script_loader_tag to concatenate inline translations + the actual script into one combined $tag. Any plugin doing
str_replace or DOMDocument->item(0) on the tag will break because item(0) is now the translation script, not the main external script.
FlyingPress handles this correctly. Check if yours did too.


## πŸ–ΌοΈ Part 2: Image Optimization

Tested: ShortPixel, Imagify, EWWW Image Optimizer,
Optimole, Smush, and ProRank SEO.

Test set: 3 Unsplash JPEGs at 2400px. Total original: 2,766 KB. All lossy, same dimensions.

### JPEG Compression

| | Service | Output | Reduction | Verdict |
|---|---------|:---:|:---:|------|
| πŸ† | ShortPixel (Lossy) | 584 KB | 78.9% | 🟒🟒🟒🟒🟒 |
| πŸ₯ˆ | ProRank SEO | 602 KB | 78.2% | 🟒🟒🟒🟒🟒 |
| πŸ₯‰ | Optimole | 890 KB | 67.8% | 🟒🟒🟒 |
| | EWWW (Premium Lossy) | 1,041 KB | 62.4% | 🟑🟑 |
| | Imagify (Aggressive) | 1,824 KB | 34.0% | πŸ”΄ |
| | Smush (Free) | 2,766 KB | 0.0% | ❌ |

### WebP Compression

| | Service | Output | Reduction | Verdict |
|---|---------|:---:|:---:|------|
| πŸ† | ShortPixel | 473 KB | 82.9% | 🟒🟒🟒🟒🟒 |
| πŸ₯ˆ | ProRank SEO | 478 KB | 82.7% | 🟒🟒🟒🟒🟒 |
| πŸ₯‰ | Optimole | 556 KB | 79.9% | 🟒🟒🟒🟒 |
| | Imagify | 727 KB | 73.7% | 🟒🟒🟒 |
| | EWWW | 885 KB | 68.0% | 🟑🟑 |

### AVIF Compression

| | Service | Output | Reduction | Verdict |
|---|---------|:---:|:---:|------|
| πŸ† | ProRank SEO | 229 KB | 91.7% | 🟒🟒🟒🟒🟒 |
| πŸ₯ˆ | Optimole | 658 KB | 76.2% | 🟒🟒🟒 |
| | ShortPixel | β€” | Paid addon | βšͺ |
| | EWWW | β€” | Paid addon | βšͺ |
| | Imagify | β€” | Not available | ❌ |

πŸ’‘ AVIF delivers 91.7% compression vs 78.9% for JPEG. Your 500KB hero image becomes 42KB. Most plugins don't even offer it.

### πŸ—‘οΈ The Disappointments

❌ Smush Free β€” Does literally nothing. Strips EXIF metadata. Zero actual compression. 0.0% reduction. If you're using it thinking your
images are optimized, they are not. Uninstall it.

⚠️ Imagify "Aggressive" β€” The name is a lie. 34% JPEG reduction is worse than ShortPixel's default balanced mode. You're paying for a
label.

🟑 EWWW Premium Lossy β€” Overpriced. 62% reduction for a premium tier is weak when ShortPixel hits 79% on the free tier.


## 🏁 Bottom Line: What Actually Matters in 2026

| # | Action | Impact | Do You Have It? |
|:---:|------|:---:|------|
| 1 | Delay your JavaScript | πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ | If not β†’ switch plugins |
| 2 | Remove unused CSS | πŸ”₯πŸ”₯πŸ”₯ | 160KB of dead CSS on typical Elementor site |
| 3 | Extract critical CSS | πŸ”₯πŸ”₯πŸ”₯ | Above-the-fold rendering without full CSS |
| 4 | Switch to AVIF | πŸ”₯πŸ”₯πŸ”₯ | 91% vs 79% β€” massive gap |
| 5 | Check WP 6.9 compat | ⚠️ | Scores may have silently dropped |
| 6 | Ditch Smush Free | βŒβ†’βœ… | It does nothing. Switch to ShortPixel |


## Methodology

For full transparency:

  • Each plugin tested in isolation β€” only one performance plugin active at a time
  • All other plugins (WooCommerce, Elementor, Jetpack, etc.) remained active
  • Cache fully cleared between each plugin swap (page cache, OPcache, browser cache)
  • 10-minute cooldown between cache clear and first PageSpeed test
  • PageSpeed Insights API used (not web UI) to avoid browser-side variability
  • Each plugin tested with recommended defaults, then optimized to best settings
  • Scores shown are optimized (best settings) results
  • Image tests used same 3 source images for every service, downloaded fresh each time

Top comments (0)