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.
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.
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).
🖥 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-totalend-to-end- Cache warmed before HIT run
- MISS uses per-request cache buster
📐 Cache path
advanced-cache.phpdrop-in active- HIT exits before WordPress loads
- No WooCommerce bootstrap on HIT
- MISS pays full WP + WC boot cost
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.
Ready to cache your
WooCommerce storefront?
Drop-in installation. Works on any WordPress host. Cart always stays fresh.