WooCommerce Store API · FSE Blocks · WordPress 7.0 · PHP 8.2

WooCommerce Blocks. Instant.

Every WooCommerce block on a page — Product Grid, Product Categories, Filter by Attribute — fires a separate Store API request. Without caching, that cost is paid by every visitor, on every page load, every time.

~38ms
Cache Hit Response
Store API · drop-in
~23×
Faster Than Uncached
drop-in vs full WC round-trip
~860ms
No Cache
median · WordPress + WooCommerce

Every product endpoint. Same story.

Median response time across four WooCommerce Store API endpoints — product listings with different sort orders, product categories, and a single product page. Results are consistent across all catalog routes.

Median response time per endpoint (ms, lower is better)
FrostyCache HIT — drop-in
No cache (MISS)

Catalog cached. Cart protected.

FrostyCache caches public catalog endpoints and bypasses session-sensitive ones. Anonymous shoppers browsing products get pre-database responses. Cart and checkout routes are always served fresh — they carry per-user session data via Cart-Token that must never be shared across visitors.

Route Used by Cache
/wc/store/v1/products Product Grid block, Product Collection block HIT
/wc/store/v1/products/{id} Single Product block HIT
/wc/store/v1/products/categories Product Categories block, Filter by Category block HIT
/wc/store/v1/cart Cart block, Mini Cart block BYPASS
/wc/store/v1/checkout Checkout block BYPASS
/wc/store/v1/order/{id} Order Confirmation block BYPASS

WP REST Cache does not cache wc/store/v1 endpoints by default — its allowlist only covers wp/v2. WooCommerce does not register itself with the plugin. Manual configuration through the WP REST Cache admin screen is required before any Store API response is cached, and even then responses are stored as WordPress transients: WordPress still boots on every cache hit (~230ms).


How these numbers were measured.

🖥 Environment

  • Local by Flywheel
  • WordPress 7.0
  • PHP 8.2
  • WooCommerce 9.x
  • nginx · MySQL 8.4

⚗️ Test method

  • 50 requests per endpoint per mode
  • curl --time-total end-to-end
  • Cache warmed before HIT run
  • MISS uses per-request cache buster

📐 Cache path

  • advanced-cache.php drop-in active
  • HIT exits before WordPress loads
  • No WooCommerce bootstrap on HIT
  • MISS pays full WP + WC boot cost

Core WordPress API benchmark.

Results for standard WordPress REST API endpoints — posts, pages, and categories. The drop-in reaches ~15ms median there, compared to ~38ms here. The difference is payload size — WooCommerce product responses carry richer data.

WordPress Core Benchmark → CoCart API v2 Benchmark →

Ready to cache your
WooCommerce storefront?

Drop-in installation. Works on any WordPress host. Cart always stays fresh.