To reduce page load times and improve responsiveness of busy sites, many Magento or WooCommerce stores use one or more caching solutions. These may be built-in tools or third-party apps, plugins or extensions that each work in slightly different ways.
By caching store and site content, you make it easier for that same content to be delivered to other browsers. While page and content caches do help a lot with speedy and reliable page delivery, they can also present some other challenges.
What the "Cache Duration Exceeded" error means
If you're getting a Cache Duration Exceeded error, SKULabs has detected that your store is sending heavily cached, old order data. This can hurt your fulfillment process, since SKULabs will be unable to see new orders for long periods of time while the result is cached.
SKULabs shows this error for WooCommerce stores. Magento stores don't show this error, but heavy caching of the Magento API can cause the same problem (new orders or stock changes showing up late), and the same fix applies.
How to resolve the error
Your system administrator must disable caching of the store's API, or at least reduce the cache duration to something much shorter (like 5 or 10 minutes instead of an hour or longer).
SKULabs shows the error when a write request (PUT/POST) is cached at all, or when a read request (GET) is cached for longer than 3599 seconds (just under one hour).
For WooCommerce, SKULabs uses these API paths, so these are the ones to exclude from caching:
/wp-json/wc/(the WooCommerce REST API)/wc-api/(the legacy WooCommerce API)
Where do you make the change?
There are many places where caching could be taking place, including but not limited to:
Content Delivery Networks (CDNs) such as Amazon CloudFront, Akamai or Cloudflare
Server configuration files for Apache, Lighttpd or Nginx, or
.htaccessfiles in your server rootReverse proxies such as Nginx, Squid or Varnish
Caching plugins such as WP Rocket, W3 Total Cache, Cloudways FPC, Turpentine, Phoenix PageCache, etc.
Your hosting provider may have its own caching, especially on shared hosting. For example SiteGround Speed Optimizer, Bluehost Performance Caching or GoDaddy WP Cache.
Who is responsible for making this change?
This is strictly an ecommerce store configuration issue managed by your system administrator or developer.
The full error message includes details that help track down where the cache is: the response age, the cache header detected and the API path. Keep it ready for your developer. SKULabs support can't directly change this for you, since it is a store configuration issue.
We recommend that all teams have contractors or staff who know their store's configuration well enough to keep its API available and correctly configured.
If it is not possible to maintain the store configuration on your own, platforms like Shopify and BigCommerce offer a compelling advantage in not requiring this type of knowledge or maintenance on your end.
Cloudflare example: bypass the cache for the WooCommerce API
In Cloudflare, create a Cache Rule (Caching > Cache Rules) that matches the WooCommerce API paths and set it to Bypass cache. For example, match requests where the URI Path contains /wp-json/wc/ or /wc-api/.
See Cloudflare's guide: Cache Rules.
The older Cloudflare Page Rules screen: a rule for */wc-api/* with Cache Level set to Bypass. Cloudflare is replacing Page Rules with Cache Rules, so new setups should use a Cache Rule instead.

