Skip to content
Cloudflare Docs

How Workers interact with Cache Rules

Your Workers script can override cache rule behavior, whether it is applied to a zone using Cloudflare or a zone that is not proxied through Cloudflare.

For example, if there is a cache rule configured to bypass cache for example.com/foo, but your Workers script sets cacheEverything: true, the script's setting will take precedence, and the request will be cached. The same applies if the request is made to a non-Cloudflare zone — the Worker's cacheEverything setting will still override.

Precedence order

Cache behavior is determined by the following order of precedence:

  1. Workers script settings
  2. Cache rules
  3. Page rules

Cache rules override page rule settings, and Workers scripts override cache rules. Among rules at the same level, the one with the highest specificity takes priority.

Compatibility flags

This override behavior is controlled by compatibility flags:

  • For the Fetch API: request_cf_overrides_cache_rules
  • For the Cache API: cache_api_request_cf_overrides_cache_rules

These flags must be enabled to allow Workers scripts to override cache rules.

If your Worker has a compatibility date of 2025-04-02 or earlier, these flags are not enabled by default. In that case, cache settings defined in the Worker will not override existing cache rules.

Example (Older compatibility date)

If a cache rule is configured to bypass cache for example.com/foo, and a Worker with a compatibility date of 2025-04-02 or earlier tries to set cacheEverything: true, the cache rule will take effect — and the response will not be cached.