Why WooCommerce cache doesn’t update correctly

When a product is saved, most cache plugins clear the cache for that product’s own URL. That’s the easy part.

What they miss is everything else that displays that product’s data: the shop page, category archives, tag archives, related product sections on other product pages, upsell and cross-sell blocks. All of those pages are still cached with the old data.

WooCommerce product relationships are interconnected. A product belongs to categories and tags. It appears in upsell and cross-sell slots on other products. A grouped product depends on its variations. A cache plugin that only clears the product URL understands none of this.

Which changes affect which cached pages?

WooCommerce changePages that may need cache refresh
Product update (price, stock, description)Product page, shop page, category and tag archives
Product variation changeThe parent product page
Grouped product changeThe parent product page
Upsell or cross-sell assignmentAll products where this product appears as a related product
Product category changeAffected category archive pages
Product tag changeAffected tag archive pages

A single product update can require cache refreshes across many storefront pages — most of which were never directly edited.

Why this matters more for shops than other sites

Stale content on a blog is an inconvenience. Stale content on a shop is a trust problem. Wrong prices, incorrect stock status, outdated product information — these affect purchasing decisions. In some regions, displaying incorrect prices even temporarily creates legal exposure.

The default response is to flush the entire cache whenever products change. For a shop with frequent inventory updates or regular pricing changes, that means constant full cache clears — and constant cold-cache load on the server every time it happens.

What correct WooCommerce cache clearing looks like

A properly structured solution tracks the relationships between WooCommerce entities and refreshes all affected pages when a product changes — not just the product page itself.

When a product is updated, the system should refresh:

  • The product page
  • The shop page
  • Category and tag archives the product belongs to
  • Other products where it appears as an upsell or cross-sell
  • The parent product if a variation or grouped product changed

And nothing else. The rest of the cache stays intact.

How Cache Autopilot handles WooCommerce

Cache Autopilot does not replace your cache plugin. Cache Invalidator resolves WooCommerce product relationships out of the box. When a product changes, it automatically resolves the full set of affected pages — the product itself, its archives, its category and tag pages, its related products — and purges only those entries through your existing cache plugin. Cache Warmup then rebuilds them in the background, reducing the window in which visitors would encounter a cold cache.

Supported cache plugins:

For custom product relationships — bundles, custom product references — additional relationships can be registered via the developer filter ekesto_ci_relationship_meta_keys. Most WooCommerce shops require no configuration beyond installation.

See how Cache Autopilot works

Common WooCommerce cache questions

Why does the shop page show the old price after a product update?

The shop page is a separate cached entry from the product page. Most cache plugins only clear the product’s own URL when it’s saved. The shop page, which also displays that product’s price, stays cached with the old data until it expires or the full cache is flushed.

Which pages need to refresh when a WooCommerce product changes?

The product page itself, the shop page, any category and tag archives the product belongs to, and any other product pages where it appears as an upsell or cross-sell. If a variation or grouped product changed, the parent product page also needs refreshing.

Do upsell and cross-sell pages refresh automatically when a product changes?

Not with most cache plugins. Resolving upsell and cross-sell relationships requires querying which other products reference the changed product — most plugins don’t perform that lookup. Those related product pages stay cached with the old data until manually cleared or until the cache expires.

What happens to cached pages when a product variation changes?

When a variation changes, the parent product page needs to be refreshed — because the parent page displays variation data such as price ranges and availability. Most cache plugins clear only the variation’s own entry, leaving the parent product page stale.

Does Cache Autopilot work with WooCommerce alongside an existing cache plugin?

Yes. Cache Autopilot does not replace your cache plugin. Cache Invalidator resolves which WooCommerce-related URLs are affected by a product change and instructs your existing cache plugin — WP Rocket, LiteSpeed Cache, FlyingPress, and others — to purge those specific entries. Cache Warmup then rebuilds them in the background.