---
title: "WooCommerce Benchmark — FrostyCache REST API Cache for WordPress"
description: "FrostyCache benchmark for WooCommerce Store API — product grids, category filters, and FSE block endpoints served in ~38ms instead of ~860ms."
language: "en-GB"
canonical_url: "https://frostycache.com/woocommerce-benchmark/"
source_url: "https://frostycache.com/woocommerce-benchmark/"
content_type: "text/markdown"
---

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



---

  Store API Results
  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)



---

  Coverage
  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).


---

  Methodology
  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






---

  Also See
  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 →](https://frostycache.com/benchmark/)
    [CoCart API v2 Benchmark →](https://frostycache.com/cocart-benchmark/)


---




## Ready to cache your
WooCommerce storefront?



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


    [See Pricing](https://frostycache.com/pricing/)
    [Read the Docs](https://frostycache.com/docs/)
