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)