Live Benchmark · Frosty Cache vs WP REST Cache · Same Host Configuration

Frosty Cache vs WP REST Cache. Head-to-head.

Two identical live demo sites on shared hosting, same content, same theme — one running Frosty Cache’s, the other running WP REST Cache. Same six WordPress REST API endpoints, tested live on both.

~751ms
Frosty Cache HIT
median · live · pre-database
~832ms
WP REST Cache HIT
median · live · database transient
~10%
Faster HIT Response
Frosty Cache vs WP REST Cache, same host

Both plugins cache. One skips WordPress entirely.

Median response time across six WordPress REST API endpoints — post/page/category listings and single items — tested live against both demo sites. Both plugins beat an uncached response by a wide margin; the gap between them is the cost of the work each one still has to do on a cache hit.

Median HIT response time per endpoint — live (ms, lower is better)
Frosty Cache — drop-in
WP REST Cache

Every endpoint, both plugins, live.

All times in milliseconds, median. MISS on both sites uses a per-request cache buster to force a fully uncached response. HIT is a normal repeat request. See Methodology below for why WP REST Cache’s HIT numbers required extra isolation to measure fairly.

Endpoint Plugin Mode min avg median p95
wp/v2/posts (list) Frosty Cache MISS 1272 1385 1384 1533
HIT 610 757 735 1747
WP REST Cache MISS 1281 1640 1557 2193
HIT 779 1068 872 2993
wp/v2/pages (list) Frosty Cache MISS 1491 1562 1654 1741
HIT 746 874 874 1929
WP REST Cache MISS 1564 1982 1805 3897
HIT 821 942 939 1048
wp/v2/categories (list) Frosty Cache MISS 1243 1421 1402 2213
HIT 602 720 729 765
WP REST Cache MISS 1213 1331 1329 1457
HIT 632 759 764 842
wp/v2/posts/{id} Frosty Cache MISS 1198 1349 1354 1463
HIT 589 754 725 1751
WP REST Cache MISS 1229 1448 1371 2311
HIT 773 907 819 1761
wp/v2/pages/{id} Frosty Cache MISS 1247 1387 1384 1469
HIT 599 713 715 752
WP REST Cache MISS 1312 1435 1368 1974
HIT 639 895 807 1854
wp/v2/categories/{id} Frosty Cache MISS 1258 1408 1400 1491
HIT 603 723 727 735
WP REST Cache MISS 1209 1484 1372 2744
HIT 763 906 791 1854

One WP REST Cache sample (categories/{id} HIT) returned a single 300-second outlier out of 10 requests — a stalled connection on the shared host, not a caching event. It’s excluded from the average/p95 shown for that row; the median (791ms, from the other 9 samples) is unaffected and is what’s charted above.


Same core API. Different reach.

WP REST Cache’s own documentation scopes it to default WordPress REST API GET endpoints, custom post types, and manually registered custom endpoints — it doesn’t mention the WooCommerce Store API or CoCart. That’s confirmed live: on the WP REST Cache demo site, wc/store/v1/products takes the same ~1.6s on every request, with no cache-layer speedup at all. Frosty Cache caches both out of the box via dedicated compatibility modules — see the WooCommerce and CoCart benchmark pages for live numbers there.

Route family Frosty Cache WP REST Cache
wp/v2 (posts, pages, categories, …) HIT HIT
wc/store/v1 (WooCommerce Store API) HIT Not cached by default
cocart/v2 (CoCart) HIT Not cached by default
Custom endpoints Automatic for any GET Manual registration required

How these numbers were measured.

Two live demo sites, same host provider, same host-level configuration, same content and theme — one with Frosty Cache active, one with WP REST Cache active. Nothing else changed between them.

🔍 An extra layer, isolated

  • The WP REST Cache demo site runs an nginx-level microcache in front of WordPress, with a short (~3–6 second) TTL — a host-level layer, not something WP REST Cache itself controls
  • That layer wasn’t present on the Frosty Cache demo site
  • Measuring through it would credit WP REST Cache with speed from a caching layer it doesn’t own
  • Fix: identical requests spaced 10 seconds apart, well past the microcache’s TTL, so nginx always shows EXPIRED/passthrough while WP REST Cache’s own (longer-lived) cache stays warm — isolating the plugin’s actual contribution

⚗️ Test method

  • 6 WordPress REST API endpoints — post/page/category lists and single items
  • MISS: 15 requests per endpoint, each with a unique cache-busting parameter
  • HIT: 10 requests per endpoint, 10 seconds apart, identical URL
  • curl --time-total end-to-end, median reported

More benchmarks

Local and live results for the WordPress core REST API, the WooCommerce Store API, and CoCart — including why WP REST Cache doesn’t reach either of the last two.

WordPress Core Benchmark → WooCommerce Store API → CoCart API v2 →

Ready to see these numbers
on your site?

Drop-in installation. Works on any WordPress host.