Comparison

WordPress performance plugins compared

Thirty-nine features across the ten best known optimization plugins, free against paid, checked in August 2026 against vendor pages, wordpress.org listings and, where the plugin is free, its own code. Plus what a page cache does to a server response time, measured, with the method written down.

Which WordPress performance plugin is best?

It depends on your server and on your budget, and it is worth saying plainly instead of pretending there is one answer. If your hosting runs LiteSpeed or OpenLiteSpeed, LiteSpeed Cache still packs more into its free plugin: unused CSS removal, image conversion and delayed JavaScript, none of which DietPress does. What no longer decides it is raw caching speed. DietPress's own accelerator serves a stored page straight from the server, without starting PHP, on Apache, LiteSpeed and nginx alike, so serving before PHP starts stopped being a LiteSpeed-only argument. If you would rather pay once a year and stop thinking about it, WP Rocket and FlyingPress are good products and the money buys you the front-end work nobody free does well. If you already have a cache plugin and what you want is a scalpel, Perfmatters and Asset CleanUp strip assets page by page better than any automatic detection.

DietPress is for the case none of those cover: an ordinary Apache or nginx server, no budget, and a wish to have the page cache, the browser caching, the critical CSS, the deferred JavaScript, the local fonts and a proper WordPress cleanup in one plugin with nothing hidden behind a paid tier.

DietPress leads the free column in this table, and it is only fair to say why: we pick the rows. So the rows where the others beat us are in here too, marked with a cross on our own column. No removal of unused CSS, no minification, no combining, no delaying JavaScript until the visitor interacts, no image conversion to WebP or AVIF, no object cache, no CDN, no cache preload crawler, and a database cleanup that only deletes expired transients. That is nine losses out of thirty-nine: eight outright, plus a partial on database cleanup and another on multisite, where the page cache is the one piece that does not support it. Check it line by line.

Best free alternatives to WP Rocket

There are three worth the name and they are not interchangeable. LiteSpeed Cache is the most complete by a distance, with critical CSS, unused CSS, delayed JavaScript and image conversion all in the free plugin, but its page cache only runs on a LiteSpeed server and its heavier features spend a QUIC.cloud quota tied to an account. W3 Total Cache has the widest free feature set that works anywhere, including a real object cache, and it is also the most invasive install of the ten, with three drop-in files and its hand in your wp-config.php. WP Fastest Cache is the simplest to live with, and it keeps lazy loading, deferred JavaScript, WebP and database cleanup for its one-off premium licence.

DietPress sits next to them with a different bet: no drop-in, no wp-config.php, a cache that tests itself, and that names the exact reason a page was skipped when WP_DEBUG is on, and the only cleanup layer of the ten that reaches dashboard widgets and the automatic emails WordPress sends on its own.

What this table does not tell you

How fast your site will be. A feature count is not a benchmark, and a plugin with thirty options switched off is slower than a plugin with three switched on. Two of the ten also work in a way a table flattens badly: NitroPack does not optimize your site, it serves it from its own infrastructure, and LiteSpeed Cache is two products in one, an optimizer that runs anywhere and a cache that needs a specific server. Read those two columns with that in mind, and read the measured section for the only numbers on this page that came from a stopwatch rather than a features page.

Showing 39 features

✓free €paid tier only ~partial or limited ✗not available ?not documented
Feature by feature comparison of ten WordPress performance plugins
Feature DietPressFree WP RocketPaid LiteSpeed CacheFree FlyingPressPaid PerfmattersPaid NitroPackFreemium WP Fastest CacheFreemium Asset CleanUpFreemium AutoptimizeFreemium W3 Total CacheFreemium
Price Free $59/yr Free $59/yr $29.95/yr from $7/mo $49 once Pro, annual $89/yr $99/yr
Model and licence
Free version with no feature paywallNitroPack's free plan stops optimizing after 1,000 pageviews a month. ✓ ✗ ✓ ✗ ✗ ~ ✗ ✗ ✗ ✗
Available on wordpress.org ✓ ✗ ✓ ✗ ✗ ✓ ✓ ✓ ✓ ✓
Works with no account and no licence keyLiteSpeed's plugin needs no account, but its image optimization, critical CSS and unused CSS run on QUIC.cloud, which does. ✓ ✗ ~ ✗ ✗ ✗ ✓ ✓ ✓ ✓
Everything runs on your own serverWP Rocket generates critical CSS and removes unused CSS on its own API, which has to reach your site. NitroPack serves your pages from its infrastructure, not yours. ✓ ~ ~ ~ ~ ✗ ~ ✓ ~ ✓
MultisiteDietPress supports multisite everywhere except its page cache. WP Rocket must not be network-activated and needs a licence slot per top-level domain. ~ ~ ✓ ? € ? ✓ ✓ ✓ ✓
Page caching
Page cache stored on diskLiteSpeed's page cache only works on LiteSpeed, OpenLiteSpeed or through QUIC.cloud; on Apache or nginx you get the optimization half only. NitroPack caches in its cloud, not on your disk. DietPress's own accelerator then serves those stored pages straight from Apache, LiteSpeed or nginx, without starting PHP. ✓ € ~ € ✗ ~ ✓ ✗ € ✓
Object cache (Redis or Memcached)DietPress does not do object caching. Use a dedicated plugin such as Redis Object Cache, they coexist without trouble. ✗ ✗ ✓ € ✗ ✗ ✗ ✗ ✗ ✓
Installs no advanced-cache.php drop-inW3 Total Cache installs three drop-ins: advanced-cache.php, object-cache.php and db.php. ✓ ✗ ✓ ? ✓ ✗ ✓ ✓ ✓ ✗
Never writes to wp-config.phpWP Fastest Cache only touches it in one narrow integration, not as its caching mechanism. ✓ ✗ ✗ ✗ ✓ ✗ ~ ✓ ✓ ✗
Status panel that tests itselfA button that requests your own home page as an anonymous visitor and reports whether it came from disk. W3 Total Cache has cache statistics, but only in Pro. ✓ ✗ ✗ ✗ ✗ ~ ✗ ✗ ✗ €
Automatic purging when content changes ✓ € ✓ € ✗ ✓ ✓ ✗ € ✓
Cart and checkout excluded automaticallyNitroPack's cart cache optimization starts at the Plus tier. ✓ € ✓ ? ✗ € ✓ ✗ ✗ ?
Server and browser cache
Browser caching rules (.htaccess) ✓ € ✓ ? € ✓ ✓ ✗ ? ✓
A separate lifetime for media, styles, fonts and HTMLLiteSpeed uses a single TTL for everything the browser keeps. ✓ ✗ ~ ? ✗ ✗ ✗ ✗ ✗ ✓
GZIP and Brotli compressionWhere it says partial, GZIP is covered and Brotli is not documented, or compression happens at server level rather than in the plugin. ✓ ~ ~ ? ✗ ✓ ~ ✗ ? ✓
CSS and JavaScript
Critical CSS generated automaticallyAsset CleanUp and the free Autoptimize accept critical CSS, but you have to write it yourself. ✓ € ✓ € ✗ ~ ✗ ~ ~ €
Remove unused CSSDietPress does not do this, and it is one of the two features people miss most. Asset CleanUp gets there by hand, unloading file by file. ✗ € ✓ € € ~ ✗ ~ € €
Minify CSS and JavaScriptDietPress does not minify. On a site whose theme and plugins already ship minified assets the gain is small, but it is a real gap. ✗ € ✓ € € ~ ~ ✓ ✓ ✓
Combine CSS and JavaScriptCombining matters much less over HTTP/2 than it did, and it is the single most common cause of a broken layout after switching a plugin on. ✗ € ✓ € ✗ ~ ~ ✓ ✓ ✓
Defer JavaScript ✓ € ✓ € € ~ € ~ ✓ ✓
Delay JavaScript until the visitor interactsThe other feature DietPress does not have. It is what buys the biggest Lighthouse jump, and also what breaks the most third-party widgets. ✗ € ✓ € € € € ✗ € €
Plugin assets load only where they are usedEight modules. DietPress reads the content of each page and decides on its own for WooCommerce, Contact Form 7, the block library, Formidable Forms and Everest Forms; for Slider Revolution, TablePress and Smash Balloon it switches on the conditional loading each of those plugins already ships with. Perfmatters and Asset CleanUp are manual instead, file by file and page by page, which is more precise and a great deal more work. ✓ ✗ ✗ ? € ✗ ✗ ~ € €
Images, fonts and preloads
Lazy loading and image loading attributes ✓ € ✓ € € ~ € ✗ ✓ ✓
Missing width and height added for CLSNobody else documents this one way or the other, so it is marked as undocumented rather than absent. DietPress reads the file, SVG included. ✓ ? ? ? ? ? ? ✗ ? ?
Image conversion to WebP or AVIFDietPress does not touch your images. WP Rocket does not either, that is Imagify, a separate purchase. W3 Total Cache converts up to 100 a month for free. ✗ ✗ ✓ € ✗ ✓ € ✗ € ~
Google Fonts served from your own serverThe free Autoptimize can combine, defer or remove Google Fonts, but not host them locally. ✓ € ~ € € ~ ✗ ~ ✗ ✗
Preconnect, DNS prefetch and preload ✓ € ✓ € € ~ ✗ ✓ ✓ €
Cache preload or warmup crawlerDietPress fills its cache with real visits instead of crawling your own site. The first visitor to each page pays for it. ✗ € ✓ € ✗ ✓ ✓ ✗ ✗ ?
WordPress cleanup
Disable emojis ✓ ✓ ✓ ? € ✗ ✓ ✓ ✓ ✓
Disable jQuery Migrate and frontend DashiconsAsset CleanUp disables Dashicons for guests, not jQuery Migrate. ✓ ✗ ✗ ? € ✗ ✗ ~ ✗ ✗
Heartbeat API control ✓ € ✓ ? € ✗ ✗ ✗ ✗ ✗
Switch off feeds, sitemap, oEmbed, shortlinks, revisionsPerfmatters covers most of this list, the native XML sitemap aside. Asset CleanUp covers the tags in the head and the feed links. ✓ ✗ ✗ ✗ € ✗ ✗ ~ ✗ ✗
Clean up dashboard, sidebar and block editor widgetsThird-party dashboard widgets included: Yoast, WooCommerce, Elementor, Jetpack, Wordfence, Rank Math, Gravity Forms. ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗
Silence the automatic emails WordPress sendsUpdate results, comment moderation, new user and password notices. Critical notices such as a failed core update are always kept. ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗
Control panel and extras
Database cleanupDietPress only removes expired transients, daily. It does not prune revisions or spam comments, which is what the others mean by cleanup. ~ € ✓ € € ✗ € ✗ ✗ ✗
Site analyzer with recommendationsReads your active plugins and your content, then suggests only what applies to your site. ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗
Presets by type of siteNitroPack has four optimization modes, from Standard to Ludicrous. ✓ ✗ ✗ ✗ ✗ ✓ ✗ ✗ ✗ ✗
CDN included in the priceDietPress has no CDN and does not want one, though it sends the CORS and Vary headers any CDN needs. NitroPack's is bundled but metered, LiteSpeed's is a free QUIC.cloud quota, FlyingCDN is a separate add-on. ✗ ~ ✓ € ✗ ✓ ✗ ✗ € ✗
Works on any web serverDietPress's page cache runs from PHP by default, so it works anywhere, and its optional accelerator adds server-level serving too: Apache and LiteSpeed get the rules written into .htaccess, nginx gets a config snippet to paste in yourself. Browser caching and compression are also .htaccess rules; on nginx only the HTML lifetime applies there, sent as an HTTP header instead. LiteSpeed's own caching still needs a LiteSpeed server, and WP Fastest Cache serves its cache through .htaccess rules too. ✓ ✓ ✗ ✓ ✓ ✓ ~ ✓ ✓ ✓
Free features (✓) 29 2 22 1 3 9 10 11 12 16
Paid tier only (€) 0 16 0 16 15 2 5 0 7 6

Prices are the vendor's entry tier at the time of checking, before tax, and several renew higher than they start. Asset CleanUp Pro's exact price is not published anywhere we could read it, so its column shows the tier structure only.

Measured

What the page cache and its accelerator do to a response time

The only numbers on this page that came from a stopwatch instead of a features page. They are DietPress against itself, with the page cache off, with it on through PHP, and with the accelerator serving straight from the server, on the same install and the same content.

Server response time without cache, with the page cache, and with the accelerator
PageOffPHPAcceleratorFaster
Home page112.3 ms13.7 ms3.0 ms97.3%
A blog post105.5 ms14.9 ms3.0 ms97.2%
WooCommerce shop117.2 ms14.9 ms3.8 ms96.8%

Home page, a blog post and a WooCommerce shop, median of fifteen requests each. The accelerator removes the one thing the page cache alone could not: the start of WordPress itself.

The percentage is not the interesting part. What matters is that the cached figures barely move, because serving a stored file costs the same whether the page was cheap or expensive to build, so the saving grows with the size of your site rather than with the power of your server. In the same run the home page went from serving about 17 visits a second with no cache at all to 159 with the page cache and 732 with the accelerator, more than 40 times as many, on exactly the same server.

And here is what is missing, before somebody else says it. These numbers are DietPress against itself, not DietPress against the other nine. A head-to-head on one install, one plugin at a time, with a stated baseline and a downloadable log, is the obvious next step and it has not been run yet. Three of the nine are paid products with no free tier and a fourth, NitroPack, stops optimizing after a thousand pageviews a month, so doing it properly means paying four times. When it happens the instrument, the aggregated figures and the raw request log go up here, the same way they did for our SEO plugin's comparison, and if a rival beats DietPress on a row it will say so on that row.

Until then, treat every speed claim on this page as what it is: a measurement of one feature, on one install, with the method written down so you can repeat it or dismiss it.

How this was measured

Environment. A local WordPress 7.1 install with Astra, WooCommerce and 29 active plugins, on PHP 8.5 and Apache, with no external object cache.

Procedure. Each URL requested twice to warm up and then fifteen times as a logged-out visitor, taking the median. The throughput figure comes from 300 requests with ten in flight at a time. The only things that changed between the three columns were the page cache and accelerator switches, on the same content, in the same session.

Repeat it yourself. Any tool that reports time to first byte will do. From a terminal, curl -o /dev/null -w "%{time_starttransfer}\n" https://yoursite.com/ a dozen times with the cache off, a dozen with the page cache on, and a dozen with the accelerator on, comparing medians rather than any single reading, and doing it while logged out because your own visits are never cached.

What this does not tell you. What will happen on your site, with your theme, your plugins and your hosting. A local install has no network latency, so the absolute milliseconds are lower than you will see in production, where the saving is usually larger rather than smaller. And none of it says anything about a Lighthouse score, which measures mostly what the browser does with your theme and your scripts after the page arrives. That is a different problem, and it is the one the paid plugins are better at.

The short version

Which one should you actually install

Six situations, and only one of them ends with the DietPress cache switched on.

LiteSpeed hosting

LiteSpeed Cache, for the full feature set

Unused CSS, image conversion and delayed JavaScript are still only in LiteSpeed Cache's free plugin, not in DietPress. What is no longer true is that it is the only way to cache before PHP starts on that server: DietPress's own accelerator reads the same kind of rules there too, tested on your home page before it stays on. Pick LiteSpeed Cache for the extra features, DietPress if you would rather skip the account tied to the heavier ones.

Pay and forget

WP Rocket or FlyingPress

Around 59 dollars a year each, both good, and what you are buying is the front-end layer: unused CSS removed, JavaScript delayed until the visitor touches something, and a support desk. If a client is paying for the Lighthouse score, pay for the plugin.

A scalpel

Perfmatters or Asset CleanUp

Neither caches pages, and that is the point. They sit next to a cache plugin and let you strip assets file by file and page by page, which beats any automatic detection when you know exactly what your site loads and why.

Budget zero

DietPress

Page cache, browser caching, critical CSS, deferred JavaScript, local Google Fonts, selective loading for eight modules and a full WordPress cleanup, with no paid tier, no account and no drop-in. The gap is the front-end layer above, and it is a real gap.

Managed hosting

Whatever your host already caches

Kinsta, WP Engine, SpinupWP, Cloudways and the rest cache at server level, and stacking a second cache on top mostly means purging one does not purge the other. DietPress detects them and asks for an explicit confirmation before it will let you switch its own cache on. Everything else in the plugin works untouched.

Already caching

DietPress next to yours

Keep your cache plugin and add the half nobody else has: the risk-based cleanup, the dashboard widgets, the automatic emails, the selective loading of eight modules and the local Google Fonts. DietPress leaves its own page cache switched off and out of the way.

FAQ

Questions this table tends to raise

Is DietPress a replacement for WP Rocket?

For most sites, yes. For some, no. DietPress covers the page cache, browser caching, critical CSS, deferred JavaScript, image loading attributes, local Google Fonts and selective plugin loading, and it adds a cleanup layer WP Rocket does not have. What it does not have is removal of unused CSS, minification, combining, and delaying JavaScript until the visitor interacts. If your score depends on those four, WP Rocket does them and DietPress does not, and no amount of writing changes that.

Which is the best free WordPress cache plugin?

On a LiteSpeed server, LiteSpeed Cache still has the fuller feature set: unused CSS, image conversion and delayed JavaScript that DietPress does not do. What it no longer has is an exclusive on caching speed there. DietPress's accelerator reads the same kind of rules on a LiteSpeed server and serves stored pages without PHP too, tested before it stays on. Anywhere else it is between W3 Total Cache, which has the widest free feature set and installs three drop-in files, WP Fastest Cache, which is the simplest to live with, and DietPress, which caches without touching your wp-config.php, adds the cleanup half, and now serves straight from the server on Apache and nginx as well. None of the three is best at everything, and the table above is there so you can pick by the rows that matter to you rather than by a total.

Can I run DietPress together with WP Rocket or LiteSpeed Cache?

Yes, with one exception. Critical CSS, the JavaScript defer, the image attributes, local fonts, selective loading and every diet switch work alongside any cache plugin, as they always have. The page cache is the exception, and DietPress will not even let you switch it on while another page cache is active: it detects about thirty of them, disables the toggle and names the one in the way. Two page caches on one site serve each other stale HTML, and diagnosing that is nobody's idea of an afternoon.

Why does DietPress not minify or combine CSS and JavaScript?

Because on most sites the gain is small and the risk is not. Themes and plugins already ship minified files, HTTP/2 made combining far less useful than it was in the days of one connection per file, and combining is the most common reason a site looks broken the morning after a new optimization plugin. It may arrive later, off by default and with the same warnings as everything else, but promising it in a comparison table would be marketing rather than information.

And delaying JavaScript until the visitor interacts?

Same reasoning, higher stakes. It is the single biggest Lighthouse win available and also what breaks the most third-party widgets, consent banners, chat boxes, payment SDKs. Every plugin that ships it also ships a list of exclusions you have to maintain by hand. It is on the list, it is not in the plugin, and while that is true the honest mark in the table is a cross.

Is a free plugin really as fast as a paid one?

For the part that matters most, serving a stored page instead of building it, there is no magic to buy: any correct disk cache saves roughly the same milliseconds, and the measurements above put that at 63 to 71 per cent off the server response time. What you pay for in WP Rocket, FlyingPress or NitroPack is the front-end layer, and that is where a Lighthouse score is won. Whether it is worth 59 dollars a year depends on whether anybody is paying you for that score.

What happens if I switch plugins later?

With DietPress, nothing lingers. It installs no advanced-cache.php, writes nothing to wp-config.php, and removes its own .htaccess block when you deactivate it. Plugins that install drop-ins can leave an advanced-cache.php, an object-cache.php or a db.php behind when an uninstall goes sideways, which is the usual cause of a white screen after removing a cache plugin.

Why does FlyingPress have so many question marks in its column?

Because its public documentation does not say, and guessing is how comparison tables become useless. Eleven rows in that column mean «not documented», not «not available»: browser caching rules, GZIP and Brotli, multisite, the WooCommerce exclusions and whether it writes a drop-in are all things the vendor does not put in writing anywhere we could read. If FlyingPress publishes the detail, or a user confirms it with a screenshot, those cells get filled in.

How current is this, and how was it checked?

August 2026, against vendor pricing and feature pages, the wordpress.org listings and, for the six rivals that live there, the plugin packages themselves, which is how the drop-in and wp-config.php rows were verified rather than assumed. Prices change and features ship, so if you find a row that has gone stale, tell us on the support forum and it gets fixed.

Try it against whatever you use now

Install DietPress, switch the cache on, measure your time to first byte before and after. It is free, needs no account, and if it does not beat what you have, deactivating it leaves nothing behind.