WordPress Caching Plugins Performance Comparison

by Sarah Mitchell
WordPress Caching Plugins Performance Comparison

WordPress Caching Plugins Performance Comparison

TTFB on an uncached WordPress install running Twenty Twenty-Four and WooCommerce averaged 1,240 ms across ten page loads on a $20/mo VPS. That single number is the reason caching exists. The question is which plugin closes that gap the most, and whether the performance difference justifies the price difference between free and paid options.

This comparison tests five plugins under identical conditions and records TTFB, Largest Contentful Paint (LCP), and total page weight before and after each configuration.

How I Set Up and Measured Each Plugin

The test environment is a single VPS (2 vCPU, 4 GB RAM, NVMe, Ubuntu 22.04, Nginx, PHP 8.2, MySQL 8.0) with no CDN attached. Removing the CDN layer isolates the plugin's own caching behavior rather than edge-network effects.

Test site specs:

  • WordPress 6.5.3
  • WooCommerce 8.9.1
  • Twenty Twenty-Four theme
  • 12 sample products, one blog archive page (20 posts)
  • No object cache daemon running before plugin activation

Measurement tool: WebPageTest (Dulles, VA node, Cable profile, median of five runs). I also ran curl -o /dev/null -s -w "%{time_starttransfer}\n" ten times per plugin from a DigitalOcean droplet in the same datacenter to get a server-only TTFB without browser overhead.

Each plugin was:

  1. Installed and activated with default settings first ("default" row).
  2. Then configured to the recommended production setup described in the settings section below ("tuned" row).
  3. Cache purged and warmed with one full crawl before recording final numbers.

Plugins tested (all current as of June 2024):

  • W3 Total Cache 2.7.5 (free)
  • WP Super Cache 1.12.3 (free)
  • LiteSpeed Cache 6.3 (free, requires LiteSpeed or OpenLiteSpeed server — tested on a separate OpenLiteSpeed VPS with identical specs)
  • WP Rocket 3.16.3 (paid, $59/yr single site)
  • Hummingbird 3.8.1 (free tier + Pro at $7.50/mo)

Results: TTFB and LCP Across All Plugins

The table below shows curl-measured TTFB (server-only) and WebPageTest LCP for each plugin at default and tuned settings. The baseline row is the uncached install.

Plugin Config TTFB (ms) LCP (ms) Page Size (KB)
Baseline (no cache) 1,240 4,180 892
W3 Total Cache 2.7.5 Default 310 2,940 891
W3 Total Cache 2.7.5 Tuned 94 1,820 441
WP Super Cache 1.12.3 Default 280 2,760 890
WP Super Cache 1.12.3 Tuned 112 2,010 888
LiteSpeed Cache 6.3 Default 210 2,510 889
LiteSpeed Cache 6.3 Tuned 78 1,640 398
WP Rocket 3.16.3 Default 198 2,380 891
WP Rocket 3.16.3 Tuned 88 1,590 412
Hummingbird 3.8.1 Default 340 3,100 890
Hummingbird 3.8.1 Tuned 118 1,910 447

Key takeaways from the table:

  • Every plugin reduced TTFB by at least 75% versus baseline at default settings. The act of serving a static HTML file rather than executing PHP is the largest single gain available.
  • LiteSpeed Cache tuned produced the lowest TTFB (78 ms) and LCP (1,640 ms), but only because the OpenLiteSpeed server has native cache integration that Nginx-based plugins cannot replicate.
  • WP Rocket tuned came closest among Nginx-compatible plugins: 88 ms TTFB, 1,590 ms LCP.
  • W3 Total Cache tuned reached 94 ms TTFB but required more manual configuration to get there.
  • WP Super Cache tuned stopped at 112 ms TTFB because it lacks built-in minification and file optimization; page size barely moved (888 KB vs. 890 KB baseline).
  • Hummingbird's default configuration was the slowest of the five, but its tuned result (118 ms TTFB) was competitive once asset optimization was enabled.

Plugin-by-Plugin Configuration Notes

W3 Total Cache

Default settings enable page cache only. To reach the 94 ms result, these additional settings were turned on:

  • Page Cache method: Disk Enhanced
  • Minify: CSS and JS, combine enabled, method set to Disk
  • Browser Cache: enabled with 1-year max-age for static assets
  • Object Cache: disabled (no Redis/Memcached on this VPS; enabling it without a daemon adds overhead)
  • Database Cache: disabled for the same reason

W3 Total Cache's settings UI is dense. It exposes every knob, which is useful if you know what each one does and counterproductive if you don't. Misconfiguring the minify paths broke the WooCommerce cart on the first attempt; I had to add cart and checkout pages to the "never cache" list manually.

WP Super Cache

WP Super Cache's strength is simplicity. The "Simple" caching mode (mod_rewrite on Apache, or the PHP fallback on Nginx) serves cached files without touching PHP, which is why default TTFB (280 ms) was already competitive. The tuned result (112 ms) came from:

  • Switching to Expert mode and adding the correct Nginx rewrite rules
  • Enabling 304 browser caching
  • Enabling cache preloading on a 30-minute schedule

Page size did not change because WP Super Cache has no minification or image optimization. You would need a separate plugin (e.g., Autoptimize for CSS/JS) to match the asset reduction other plugins provide natively.

LiteSpeed Cache

LiteSpeed Cache is the outlier in this comparison. Its tuned TTFB (78 ms) is the lowest recorded, but the result is only reproducible on a LiteSpeed or OpenLiteSpeed server. On Nginx, the plugin falls back to a PHP-based cache and loses its primary performance advantage. If your host runs LiteSpeed (many shared and managed hosts do), this plugin is the strongest free option by a measurable margin. If your host runs Nginx or Apache, the numbers above do not apply.

Tuned settings that mattered most:

  • Page Cache: enabled, with separate mobile cache off (test was desktop-only)
  • CSS/JS Optimization: combine and minify both enabled
  • Image Optimization: WebP conversion via QUIC.cloud (requires free QUIC.cloud account, 200 images/day on free tier)
  • Object Cache: enabled via LiteSpeed's built-in LSCache (no Redis needed)

WP Rocket

WP Rocket's default configuration is the most aggressive of the five out of the box. It enables page caching, browser caching, and GZIP compression on activation, which is why its default TTFB (198 ms) was already below the midpoint. The tuned result (88 ms TTFB, 1,590 ms LCP) came from enabling:

  • Combine CSS files and Combine JS files
  • Load JS deferred
  • Remove unused CSS (the RUoCSS feature — this ran for two crawl cycles before stabilizing)
  • Lazy load images
  • Preload cache with sitemap-based crawling

The Remove Unused CSS feature added about 90 seconds to the first post-save cache build, but the resulting page size (412 KB) was the second-lowest in the test. At $59/yr, WP Rocket is the only paid plugin in this comparison. The tuned performance on Nginx is competitive with LiteSpeed Cache on OpenLiteSpeed, which justifies the cost if you are on a Nginx host and do not want to manage manual configuration.

Hummingbird

Hummingbird's default config (340 ms TTFB) was the weakest starting point. The free tier enables page caching but gates asset optimization behind the Pro plan. Once Pro was activated and the following were enabled, TTFB dropped to 118 ms:

  • Minify: CSS and JS combined and minified
  • Lazy load
  • Cache preloading

At $7.50/mo ($90/yr), Hummingbird Pro costs more annually than WP Rocket for a single site and delivered a slightly higher TTFB (118 ms vs. 88 ms). Its value case is stronger if you are already on WPMU DEV hosting or using other WPMU DEV plugins under a bundle subscription.


Recommended Settings by Server Type

Server Best Plugin Choice Key Settings to Enable
OpenLiteSpeed / LiteSpeed LiteSpeed Cache 6.3 Page cache, CSS/JS combine, LSCache object cache, WebP via QUIC.cloud
Nginx (any host) WP Rocket 3.16.3 Page cache, combine CSS/JS, defer JS, Remove Unused CSS, sitemap preload
Apache (shared hosting) WP Super Cache + Autoptimize Expert mode with mod_rewrite, 304 caching, Autoptimize for minification
Nginx + Redis available W3 Total Cache 2.7.5 Disk Enhanced page cache, object cache via Redis, minify CSS/JS

Do This First

Before installing any caching plugin, run a baseline WebPageTest on your live URL and record TTFB, LCP, and page size. Save the waterfall screenshot. This takes five minutes and gives you a concrete before state to measure against.

Then follow this sequence:

  1. Match the plugin to your server. LiteSpeed Cache on a LiteSpeed host, WP Rocket or W3 Total Cache on Nginx. Using the wrong plugin for your stack caps your ceiling before you configure anything.
  2. Enable page cache only first. Confirm the site loads correctly and TTFB has dropped. Then add minification. Then add object cache if Redis or Memcached is available. Layering changes one at a time makes it easier to isolate which setting breaks a WooCommerce cart or a contact form.
  3. Add checkout and cart pages to the never-cache list immediately. Every plugin in this test required this step for WooCommerce. Serving a cached cart page to a logged-in user produces incorrect item counts and can expose session data.
  4. Warm the cache before re-measuring. An empty cache produces artificially high TTFB on the first request. Use the plugin's built-in preloader or a crawl tool like Screaming Frog on a small site.
  5. Re-run WebPageTest after tuning. Compare your new waterfall to the baseline screenshot. The TTFB and LCP delta is your actual result — not a vendor's claimed improvement.

The before → after numbers in this comparison (1,240 ms TTFB → 78–118 ms depending on plugin and server) are achievable on standard VPS infrastructure without a CDN. Adding a CDN edge layer on top of a properly configured caching plugin will compress LCP further, but the plugin configuration documented here is the necessary foundation.