Product Object Caching Enabled by Default for New Stores in WooCommerce 11.0

WooCommerce 11.0 enables product object caching by default for new store installations. Existing stores are not affected and will continue to run with their current configuration.

Product object caching reduces duplicate product loads

The feature was introduced as experimental in WooCommerce 10.5. It intercepts wc_get_product() calls and serves product objects from a request-scoped in-memory cache:

  • The cache is non-persistent — it is cleared between requests.
  • Repeated calls for the same product ID within a request return cloned instances, not references, so callers cannot share mutable state by accident.
  • No manual cache management is required.

Performance numbers from the original announcement still hold — both are speed improvements. Variable products load roughly 9–12% faster on product pages, and bundle products process 6–12% faster during checkout.

Compatibility defaults changed in WooCommerce 10.6

The feature’s default plugin compatibility declaration was changed from INCOMPATIBLE to COMPATIBLE.

No compatibility issues were identified across the extension ecosystem during the experimental period, so extensions without an explicit declaration are now treated as compatible by default. Extensions that explicitly declare themselves incompatible with product_instance_caching continue to surface the standard incompatibility notice in the Features screen.

New WooCommerce 11.0 stores get the feature automatically

For stores installed fresh on WooCommerce 11.0 or later, product object caching is enabled automatically as part of the installation process.

The feature registration itself retains enabled_by_default => false — the enablement is written explicitly during a new install, not inferred from a flag change. This follows the same pattern used for HPOS and other features that graduate from opt-in to new-install default.

Existing stores that upgrade to 11.0 are not touched. If the feature was previously disabled (the default for stores installed before 11.0), it remains disabled after the upgrade. If it was previously enabled, it remains enabled.

Existing stores keep their current setting

ScenarioWhat happensAction needed
Fresh install on 11.0+Feature enabled automaticallyNone
Existing store, feature was offRemains off after upgradeEnable manually if desired
Existing store, feature was onRemains on after upgradeNone

To manually enable or disable the feature on an existing store, go to WooCommerce → Settings → Advanced → Features and toggle Cache Product Objects.

Extensions using standard WooCommerce APIs do not need changes

The compatibility guidance from the original announcement applies.

Extensions that perform direct SQL queries against product data without going through standard WordPress meta hooks may produce stale results if those queries bypass the hooks that trigger cache invalidation. Extensions that retrieve products exclusively through wc_get_product() and standard WooCommerce APIs are not affected.

What’s Next

This is not the final step. Once adoption across stores reaches a sufficient level, the feature will be enabled for all stores — including existing ones. No timeline is set yet; the decision will be based on adoption data.

If you encounter unexpected behavior, please open an issue in the WooCommerce GitHub repository.


One response to “Product Object Caching Enabled by Default for New Stores in WooCommerce 11.0”

  1. Deb Sawyers Avatar
    Deb Sawyers

    for most of my stores, this seems like a great feature. I have one store that uses the Ignitewoo Precious Metals plugin that changes the product pricing based on metal price fluctuations. this is definitely not a feature I’d want turned on without a lot of testing to make sure that the price isn’t caching and I would definitely want to be able to opt-out completely even if it’s widely adopted quickly.

Leave a Reply

Your email address will not be published. Required fields are marked *