Free WP Rocket Alternative — WordPress Cache & Speed Plugin
CacheZip: page cache, delay JS, remove unused CSS, lazy load, WebP, fonts, database cleanup, Web Vitals dashboard — everything WP Rocket, FlyingPress and QUIC.cloud charge for, free on your own server.
What it is
The cache core follows the architecture that has served WP Super Cache for 15 years, modernized: an advanced-cache.php drop-in serves static HTML before WordPress loads (with pre-gzipped .html.gz pairs, ETag/304 revalidation, separate mobile and WebP variants, stale-safe atomic writes), an optional one-click Expert mode writes mod_rewrite rules so Apache serves pages before PHP even starts (nginx rules included for copy-paste), and content changes purge exactly the affected pages — post, home, term archives — not the whole cache.
The headline is the beacon. Competitors upload your pages to their cloud, render them in headless browsers, and sell you back the results as "Remove Unused CSS" and "critical image detection". CacheZip does the same analysis in your visitors' browsers: a tiny script on not-yet-optimized pages collects the CSS selectors the page actually uses, the images above the fold, and real Core Web Vitals — then posts them back to your own database. On the next cache write, used CSS is inlined, full stylesheets load in the background, above-the-fold images skip lazy-loading and the LCP image gets fetchpriority="high" plus a preload tag. In our test install the beacon collected 48 KB of genuinely-used CSS from a real headless Chromium visit on the first page view. No cloud round-trip, no per-URL credits, and a real-user Web Vitals dashboard falls out of it for free.
Around that core: safe CSS/JS/HTML minification with URL rebasing, optional CSS combining, defer JS, delay-JS-until-interaction with an exclusion list, native lazy loading, YouTube click-to-play facades, missing width/height injection (CLS), WebP conversion with GD on your own server, self-hosted Google Fonts with font-display swap, DNS prefetch/preconnect, Speculation-Rules link prefetching with a hover fallback for older browsers, database cleanup with preview counts and scheduling, an autoloaded-options size report, Heartbeat control, bloat removal, origin-pull CDN rewriting, WooCommerce auto-exclusions, WP-CLI commands and settings export/import.
CacheZip vs WP Rocket, FlyingPress, LiteSpeed Cache & WP Super Cache
Competitor prices from their public pricing pages (Sep 2026): WP Rocket $59–$299/yr · FlyingPress $59–$279/yr · LiteSpeed Cache plugin is free but its page cache requires a LiteSpeed server or the QUIC.cloud CDN, and its smart features burn QUIC.cloud credits · WP Super Cache is fully free but is a page cache only.
| Feature | CacheZip (free) | The competition |
|---|---|---|
| Price | Free forever (MIT) | WP Rocket $59–299/yr · FlyingPress $59–279/yr · LiteSpeed free* · WP Super Cache free |
| Page cache on ANY server (Apache, nginx, shared hosting) | ✓ | LiteSpeed ✕ (no page cache without a LiteSpeed server / QUIC.cloud) · others ✓ |
| Expert mode: serve cached HTML before PHP even boots (mod_rewrite) | ✓ one click, nginx rules included | WP Super Cache ✓ · WP Rocket partial · FlyingPress ✕ |
| Pre-gzipped cache pairs + 304 revalidation | ✓ | WP Super Cache ✓ · others partial |
| Background cache preloader | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · free in the others |
| Separate mobile cache variant | ✓ | WP Rocket $59/yr · others ✓/partial |
| Minify HTML / CSS / JS | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · LiteSpeed free · WP Super Cache ✕ |
| Delay JavaScript until user interaction | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · LiteSpeed free · WP Super Cache ✕ |
| Remove unused CSS | ✓ collected in YOUR visitors' browsers — no cloud, no quota | WP Rocket $59/yr (their cloud) · FlyingPress $59/yr (their cloud) · LiteSpeed QUIC.cloud credits · WP Super Cache ✕ |
| Above-the-fold / LCP image detection (auto lazy-load exclusion + preload) | ✓ beacon, local | WP Rocket $59/yr · FlyingPress $59/yr (cloud) · LiteSpeed VPI = QUIC.cloud credits · WP Super Cache ✕ |
| Lazy load images & iframes + missing width/height fix | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · LiteSpeed free · WP Super Cache ✕ |
| YouTube click-to-play facade | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · WP Super Cache ✕ |
| WebP conversion + Accept-header cache variant | ✓ GD on your own server | WP Rocket ✕ (sells Imagify separately) · FlyingPress $59/yr (their cloud) · LiteSpeed QUIC.cloud credits · WP Super Cache ✕ |
| Self-host Google Fonts (GDPR) + font-display swap | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · LiteSpeed partial · WP Super Cache ✕ |
| Link prefetch on hover (Speculation Rules API) | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · LiteSpeed free · WP Super Cache ✕ |
| Database cleanup with preview, scheduling + autoload report | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · LiteSpeed free · WP Super Cache ✕ |
| Heartbeat control + bloat removal (emoji, dashicons, jQuery Migrate, XML-RPC…) | ✓ | WP Rocket $59/yr · FlyingPress $59/yr · LiteSpeed partial · WP Super Cache ✕ |
| Real-user Core Web Vitals dashboard (TTFB/LCP/CLS/FID) | ✓ stored in your own DB | WP Rocket ✓ (SaaS-backed Insights) · FlyingPress $59/yr (cloud RUM) · LiteSpeed ✕ · WP Super Cache ✕ |
| CDN URL rewriting (any origin-pull CDN) + WP-CLI + settings export | ✓ | mixed — RocketCDN $79/yr and FlyingCDN $10/mo are separate paid services |
| Works with zero accounts, API keys or quotas | ✓ | WP Rocket license required · FlyingPress license required · LiteSpeed needs QUIC.cloud for its headline features · WP Super Cache ✓ |
| Their own global CDN network | — (by design: pair with Cloudflare free) | RocketCDN $79/yr · FlyingCDN $10/mo · QUIC.cloud free tier (6 PoPs) |
Server requirements & dependencies
- WordPress 6.0 or newer (tested on WordPress 7.1)
- PHP 7.4 or newer
- wp-content must be writable once at activation (drop-in + config file)
- Optional: Apache mod_rewrite for Expert mode, PHP GD with WebP support for image conversion
- Nothing else: no accounts, no API keys, no cloud services, no quotas
How to install
2. Open CacheZip → Dashboard and hit "Preload cache" so every page is warm. The Real-user Web Vitals table fills up as visitors browse.
3. Turn on the extras tab by tab: delay JS and used-CSS on CSS & JS (enable "Inline used CSS" after the beacon has collected data — the Dashboard shows a ✓ per URL), WebP + facade on Media, self-hosted Google Fonts on Fonts & Hints, cleanup schedule on Database.
4. On Apache, one click on the Cache tab enables Expert mode: cached pages are then served by mod_rewrite before PHP even starts. nginx users get the equivalent rules to paste.
Switching from another cache plugin? Deactivate it first so two page caches don't fight over advanced-cache.php.
The prompt — build it yourself
Paste this into Claude and you'll get this product. This is the actual spec that produced the code above.
Research phase: four parallel research agents produced full feature inventories. The findings that shaped the build: WP Rocket and FlyingPress have no free tier at all and their only true cloud dependencies are used-CSS/critical-CSS generation and image analysis — everything else is plain PHP and front-end JS. WP Rocket's own "beacon" (v3.16+) proved the key insight: above-the-fold detection doesn't need a cloud, it can run in the visitor's browser. LiteSpeed Cache turned out to have no page cache at all on Apache/nginx without a LiteSpeed server or QUIC.cloud — a genuine gap a file-based cache beats. WP Super Cache contributed the serving architecture: advanced-cache.php drop-in, pre-gzipped file pairs, 304s, and Expert-mode mod_rewrite rules.
The build: one session, 20 files. The design decision that makes CacheZip different: extend the beacon idea from above-the-fold images to *used CSS itself* — iterate document.styleSheets in the visitor's browser, test each selector with querySelector (pseudo-classes stripped, @media recursed, @font-face/@keyframes kept), POST the surviving rules to a REST endpoint, and inline them at the next cache write. What FlyingPress renders on their paid cloud, the page can measure about itself.
Three real bugs found in testing, all fixed:
1. The drop-in sanitized
HTTP_HOST including the port (127.0.0.1:8899 → 127.0.0.18899) while the write side used the port-less host — every request was a cache miss. One strtok() fix.2.
cachezip_opt() cached options in a static for the whole request — so saving settings wrote the *previous* values into the pre-WordPress config file. Fixed with an update_option hook that marks the static dirty.3. The used-CSS feature loads original stylesheets via the
media="print" onload trick — which then made the minifier skip them as "print stylesheets". Real print stylesheets must still be skipped; the fix whitelists only the onload-marked tags.Verification with a real browser: headless Chromium visited the test site cold. The beacon collected 48,258 bytes of genuinely-used CSS, TTFB 71 ms and LCP 408 ms, POSTed them, the page's cache was auto-purged, and the next request served inlined used CSS with the original stylesheet demoted to background loading — with the layout pixel-identical. Also verified end-to-end: cache hit/miss/304/gzip headers, mobile and WebP Accept-header variants, purge-on-edit clearing exactly the post + home + term pages, the preloader warming all 8 site URLs through WP-Cron, GD WebP conversion on upload (8.9 KB JPEG → 1.2 KB WebP), Google Fonts localization (7 woff2 files self-hosted, font-display swap injected), .htaccess Expert rules write/remove, database cleanup (3 revisions + 2 expired transients), WP-CLI commands, and all 9 admin tabs rendering warning-free.
Reviews
Used Free WP Rocket Alternative — WordPress Cache & Speed Plugin? A star rating takes two seconds and helps others.
More builds
License: MIT — free for personal and commercial use, no warranty. Software is provided as is; review the code before running it in production (it's short enough to actually read).