You Google "Perfmatters vs WP Rocket" expecting a head-to-head: two WordPress speed plugins, side-by-side feature comparison, pick the winner. Every roundup treats them this way. The framing is wrong in a useful way, and that wrongness is the entire reason this post exists.
WP Rocket is a page cache plugin. Perfmatters is a script manager. Those sound similar from outside the category — both are "WordPress speed plugins," both promise a faster site, both have positive reviews. From inside the category they're different products doing different jobs, on different layers, with almost no functional overlap. Installing both is the right answer on most plugin-heavy sites, and the only reason "vs" comparisons exist is because the marketing for each one is too generic to make the difference obvious.
This post is the actual comparison: what each one does, where they overlap, where they don't, and which to install first if you only have budget for one. Honest disclosure I always include: I make AcceleratorWP, which sits in a different category from both of these and isn't a competitor to either. I'll explain where we fit briefly at the end. The rest of this post stands on its own.
The thing most "vs" comparisons miss
WP Rocket caches the response. Your visitor requests a URL, WordPress generates HTML, WP Rocket stores that HTML on disk, the next visitor on the same URL gets the stored copy without WordPress booting. The product of that work is a faster visitor experience because the response is already generated.
Perfmatters reduces what goes into the response. Your visitor requests a URL, WordPress generates HTML, but with Perfmatters in front, fewer CSS files are enqueued, fewer JS scripts are deferred or removed, the WordPress core features you don't use (emoji loader, oEmbed discovery, jQuery Migrate) don't ship to the browser. The product of that work is a lighter response, every time it's generated.
The two operations are orthogonal. WP Rocket makes the same response come back faster the next time. Perfmatters makes the response smaller and lighter every time. Stacking them gives you a smaller response served from cache — best of both. Replacing one with the other gives you one of the wins, not both.
How I'm comparing them
Same three criteria as the main speed plugin ranking:
- Did it move TTFB or LCP on a real site? Measured on real visitors in production over a week.
- Did it stay out of the way? Plugins that speed up the homepage but break the checkout are not improvements.
- Was the setup time worth it? Especially for a plugin you're paying yearly for.
What WP Rocket actually does
The feature set, ranked by what moves performance most:
- Static page cache. The main event. Generates HTML files, serves them from disk on cache hits. TTFB drops from 1,200–1,800 ms to 50–100 ms on cached pages.
- Browser cache headers. Tells visitors' browsers to keep static assets locally for longer.
- Gzip / Brotli compression. Smaller payload over the network.
- CSS/JS minification and combination. Smaller file sizes; combining is HTTP/2-hostile, leave it off on modern hosts.
- Defer non-critical JS. Render-blocking JS deferred to after first paint.
- Lazy load images. Images below the fold load only when scrolled into view.
- Critical CSS generation. Inlines above-the-fold CSS so the page paints before the stylesheet downloads.
- Database cleanup. Removes post revisions, transients, spam comments.
- CDN integration (RocketCDN, Cloudflare). Connects cached assets to a CDN layer.
- Preloading. Warms the cache by pre-generating pages.
The WP Rocket alternatives ranking covers the alternatives in this category if WP Rocket itself doesn't fit.
What Perfmatters actually does
Different feature set entirely:
- Script manager. The killer feature. Navigate to any URL, see every CSS/JS file enqueued there, click off the ones that don't belong. Contact Form 7's CSS on a page that has no form. Elementor's framework on a Gutenberg-built page. WooCommerce's cart fragments on your blog. All disable-able per-URL.
- Disable unused WordPress features. Emoji loader, oEmbeds, embeds discovery, RSD link, WLW manifest, REST API, XML-RPC, jQuery Migrate. Each one is a small ship-byte saving, cumulatively material.
- Heartbeat API control. Limit how often
admin-ajax.php?action=heartbeatfires (default is every 15 seconds in the editor — heavy on busy admins). - Defer / delay JS. Defer all JS or delay specific scripts until user interaction.
- Host Google Fonts locally. Avoids the round-trip to Google's CDN, reduces DNS prefetch.
- Lazy load. Same idea as WP Rocket's lazy load, smaller footprint.
- Login URL change. Anti-bot, marginal performance benefit (
/wp-loginbecomes/your-custom-url). - DNS prefetch / preconnect. Hint the browser to start connections to external domains earlier.
No page cache. No critical CSS generation. No database cleanup. No CDN management. The two plugins barely touch each other.
Where they overlap
A small list of features that exist in both:
- JS deferral. Both offer defer-non-critical-JS toggles. They compose poorly — pick one to handle JS deferral, set the other's deferral feature to off.
- Lazy loading. Same — pick one. Both default to similar implementations.
- DNS prefetch. Both can add prefetch hints. WP Rocket's is more limited; Perfmatters' more granular.
That's roughly it. The overlap is 5–10% of each plugin's feature surface.
Pricing — different shape, same vendor profile
WP Rocket: $59/year single-site, $119/year three sites, $299/year unlimited. Per-site licensing. Renewals at full price after year one.
Perfmatters: $25/year single-site, $59/year three sites, $99/year unlimited. Also per-site. Also full-price renewals.
Perfmatters is roughly 40% the cost of WP Rocket at every tier. That's not because it does less — it does different things — but because the script manager category is smaller and the team is leaner. Both products are owned by Brian Jackson / forgemedia, which is why they integrate cleanly when run together.
The combined cost (both unlimited): $398/year. A meaningful budget on a single site; a no-brainer at the agency tier where you're running 20+ client sites.
Performance — what each one actually moves
Two different shapes of win, measured on the same client site (Divi-built marketing site, 32 active plugins, EU traffic).
WP Rocket installed alone:
- Homepage TTFB (cold visit): 1,420 ms → 80 ms (cache hit). Massive win.
- Blog post TTFB: 980 ms → 65 ms. Same win shape.
- Total page weight: 1.84 MB → 1.78 MB. Marginal — WP Rocket's asset optimization is real but small.
- LCP on mobile: 3.2 s → 2.4 s. Helped, mostly by lazy load.
Perfmatters installed alone (no WP Rocket):
- Homepage TTFB: 1,420 ms → 1,380 ms. Almost no change — Perfmatters doesn't cache responses.
- Total page weight: 1.84 MB → 0.91 MB. Half the size. Massive asset win.
- JS execution time: 480 ms → 220 ms.
- LCP on mobile: 3.2 s → 1.8 s. Bigger improvement than WP Rocket alone, because the asset reduction was bigger.
Both installed together:
- Homepage TTFB: 1,420 ms → 80 ms (WP Rocket's cache).
- Total page weight: 1.84 MB → 0.91 MB (Perfmatters' asset trim).
- LCP on mobile: 3.2 s → 1.4 s.
The point of those numbers: WP Rocket does the cache work, Perfmatters does the asset work, the combination compounds. Neither one substitutes for the other.
When to pick which (if forced to choose only one)
If budget genuinely allows only one:
Pick WP Rocket when:
- Your site is a content blog or marketing site with relatively few plugins (10 or fewer).
- The bottleneck is TTFB on visitor pages — the homepage feels slow, the blog feels slow.
- You don't have a host-managed cache (Kinsta, WP Engine, Pressable all provide one — in which case WP Rocket is redundant).
- You're not on LiteSpeed (where LiteSpeed Cache is free and better).
Pick Perfmatters when:
- Your site has 20+ active plugins and devtools shows a wall of CSS/JS files on every page.
- The bottleneck is page weight and JS execution time, not server response.
- You're already on a managed WP host with a built-in page cache.
- You're running a page builder (Elementor, Divi) where unused-asset bloat is structural.
The page builder performance ranking covers the Perfmatters case in detail. The WP Rocket alternatives post covers the WP Rocket case from the other side.
When to pick both
Most operators running a serious WordPress site with 15+ plugins should run both. They're complementary. WP Rocket handles the cache half; Perfmatters handles the asset half. The cost is $84/year combined for single-site licences — less than what most operators spend on hosting in a month.
The combination is what most "use WP Rocket and Perfmatters together" recommendations in the broader main speed plugin ranking refer to. It's not marketing — it's how the two products were designed to be used.
Where they both stop working
Both plugins assume the request is cacheable or that asset trimming makes a meaningful difference. Both stop helping when neither assumption holds:
- Logged-in users. Page cache bypassed. WP Rocket does nothing. Perfmatters helps marginally on asset weight, doesn't change the TTFB cost.
- WooCommerce checkout / cart / my-account. Cache excluded. Same problem. The WooCommerce slow checkout post walks through this in detail.
- REST API endpoints. Cache passes through. Asset optimisation isn't relevant.
- admin-ajax.php calls. Same.
- wp-cron and scheduled work. Same.
On a brochure or content site, these requests are 2–8% of traffic. On a WooCommerce store with subscriptions and a customer dashboard, they're 30–55%. On a membership site or LMS, they can exceed 60%. The edge caching post covers this gap in detail.
Where AcceleratorWP fits
Both WP Rocket and Perfmatters operate on what WordPress already does — caching the response, trimming the assets. Neither one changes what gets loaded into WordPress in the first place. Both still pay the cost of every active plugin's PHP file being included on every uncached request.
I make AcceleratorWP, which sits in a different category from both: structural plugin loading. It runs at the mu-plugin layer — before WordPress reads active_plugins — and removes irrelevant plugins from the active list per request class. Your SEO plugin doesn't need to load on a REST API call; your slider plugin doesn't need to load on /wp-cron.php. The structural layer makes those uncached requests cheaper, where WP Rocket and Perfmatters have no leverage.
Stack-wise: WP Rocket + Perfmatters + AcceleratorWP compose without conflicts. WP Rocket caches the response, Perfmatters trims the assets, AcceleratorWP reduces what WordPress loads to generate the response in the first place. The survey of cache-free performance methods covers the structural pattern; the WordPress speed optimization plugins category guide puts all of this in context across the broader plugin landscape.
If you've tested WP Rocket and Perfmatters together and the numbers came out differently than what I described, I'd genuinely like to hear about it — particularly the real-user-metric (RUM) data, not the Lighthouse scores. Send notes to my inbox. I update this post as I get new data.

