WooCommerce Compatibility

WooCommerce Compatibility

Cyclone Static can run on WooCommerce sites, but WooCommerce introduces pages that are inherently session-specific and must never be cached. With the correct exclusions in place, Cyclone delivers dramatic performance improvements for anonymous product browsing while ensuring cart, checkout, and account functionality works exactly as expected.

Required Exclusions

Before enabling Cyclone Static on a WooCommerce site, add the following paths to your exclusions list under Cyclone Static → Settings → Exclusions. One path per line:

/cart/
/checkout/
/my-account/
/wc-api/
/addons/
/?wc-ajax=

Why each matters:

  • /cart/ — The cart page is unique per visitor (different items, different totals). Caching it would show one visitor another visitor’s cart contents.
  • /checkout/ — Contains order details, payment fields, and shipping addresses. Must never be cached.
  • /my-account/ — The WooCommerce account area shows order history, saved addresses, and credentials specific to each user.
  • /wc-api/ — WooCommerce’s REST API endpoint used for payment gateway callbacks and webhooks. Caching would break payment processing.
  • /addons/ — If you use WooCommerce Product Add-Ons, this path may be used dynamically.
  • /?wc-ajax= — WooCommerce uses query strings for AJAX cart operations (add to cart, remove item, update quantity). These must reach live WordPress.

Note: Cyclone already bypasses all requests with query strings automatically, so /?wc-ajax= would not be cached regardless. Including it in exclusions is a belt-and-suspenders safeguard.

What Can Be Cached

  • Product pages — Static product pages load blazingly fast for anonymous visitors. Add to Cart operates normally via WooCommerce’s AJAX handler, which is never cached.
  • Shop archive pages — The main shop page and category archives can be cached safely for anonymous visitors.
  • Product category and tag archives — Enable “Include Category Archives” and “Include Tag Archives” in Cyclone Settings to cache these.
  • Regular pages — About, Contact, FAQ, and other static WooCommerce-adjacent pages cache perfectly.

Stock Levels and Dynamic Content

Cached product pages display the stock level at the time the cache file was generated. If a product sells out, the cached page may continue showing “In stock” until the page is regenerated.

To keep stock information reasonably current:

  • Cyclone regenerates a product page whenever the post is updated in WordPress. Publishing a post update (even a minor edit) queues it for regeneration.
  • Consider adding a hook in your theme’s functions.php to queue regeneration when an order is placed that affects a product’s stock. This is an advanced customization.
  • Automated WooCommerce-aware regeneration (triggering re-cache on stock changes) is planned for a future version of Cyclone Static.

WooCommerce Session Cookies

WooCommerce sets a session cookie (woocommerce_session_... or woocommerce_cart_hash) when a visitor adds something to their cart. Cyclone’s .htaccess rules bypass the static cache when any WooCommerce session cookie is present — so a visitor with items in their cart always receives a live WordPress response, never a cached page.

This means a visitor who has added products to their cart will not see cached versions of your pages until they clear their cart or their session expires. For most WooCommerce sites, this is the correct behavior — it ensures they always see live cart totals and product availability. For sites where the vast majority of visitors never add to cart (e.g. a digital downloads shop with high browse-to-buy ratio), this may slightly reduce the effective cache hit rate.

Membership and Subscription Plugins

If you use WooCommerce Subscriptions, WooCommerce Memberships, or similar plugins that gate content behind account status:

  • Gated content pages should be added to the Exclusions list to prevent anonymous cached versions from being served to non-subscribers.
  • Alternatively, these pages are typically inaccessible to logged-out visitors at the WordPress routing level — but it’s safer to exclude them explicitly.
  • Subscription management pages, member dashboard, and download areas should always be excluded.

Performance Impact

On a WooCommerce site with proper exclusions, the majority of traffic — anonymous product browsing — is served as static HTML with no PHP or database overhead. This is especially impactful during traffic spikes (sales events, holiday shopping) when standard WooCommerce sites commonly experience slowdowns or downtime. With Cyclone Static handling product page delivery, your server resources are freed up for the sessions that truly need live PHP: active carts, checkouts, and account management.