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
| Scenario | What happens | Action needed |
|---|---|---|
| Fresh install on 11.0+ | Feature enabled automatically | None |
| Existing store, feature was off | Remains off after upgrade | Enable manually if desired |
| Existing store, feature was on | Remains on after upgrade | None |
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.
Leave a Reply