X-Cacheable

The HTTP X-Cacheable response header is an unofficial HTTP header indicating whether a CDN or reverse proxy considers the response eligible for Caching.

Note

The "X-" naming convention for HTTP headers, "X" referring to "experimental", has been deprecated and needs to be transitioned to the formal naming convention for HTTP headers.

Usage

CDN providers and reverse proxies add the X-Cacheable header to signal whether a response was stored in cache, and under what conditions. The header complements X-Cache by explaining the cacheability decision rather than the cache hit/miss outcome.

The values vary between providers and configurations. Some implementations use simple boolean values like YES or NO. Others include structured values with a reason code separated by a colon, such as NO:Private or YES:Forced. WP Engine and Flywheel hosting platforms use this header extensively, as do several managed WordPress and enterprise CDN setups.

The header helps diagnose why certain responses are or are not being cached. A value like NO:Private points to a Cache-Control directive preventing caching, while YES:Forced indicates the cache layer overrode default behavior to store the response.

Values

YES

The YES value means the response is cacheable and was stored by the cache layer. This is the standard positive indicator across most implementations.

YES:Forced

The YES:Forced value means the cache layer stored the response even though default rules do not cache the content. This often results from cache rules configured at the CDN or hosting level overriding origin headers.

YES:briefly

The YES:briefly value followed by a status code (such as YES:briefly:504) means the response was cached for a short duration. The appended status code indicates the HTTP status of the cached response. This pattern appears in WP Engine configurations where error responses are cached temporarily to protect the origin.

SHORT

The SHORT value means the response was cached with a reduced TTL. The exact duration depends on the CDN or hosting configuration. This value is common on managed WordPress hosting platforms.

NO:Private

The NO:Private value means the response was not cached because the Cache-Control header includes a private directive. Private responses are intended for a single user and are excluded from shared caches.

NO:Not Cacheable

The NO:Not Cacheable value means the response failed the cacheability check entirely. This applies to responses where headers, method, or status code prevent caching under any configuration.

non200

The non200 value means the response had a status code other than 200 and was treated as non-cacheable by the CDN. Many cache configurations only store successful 200 OK responses by default.

CacheAlways: forever

The CacheAlways: forever value means the response is always cached regardless of origin headers, with no expiration. This typically applies to static assets or resources like robots.txt on hosting platforms with aggressive caching rules.

Example

A simple positive cacheability indicator. The CDN evaluated the response and determined the content is eligible for caching.

X-Cacheable: YES

When the response includes a private Cache-Control directive, the cache layer marks the response as not cacheable and includes the reason.

X-Cacheable: NO:Private

On managed WordPress hosting, a short-lived cache entry is indicated by the SHORT value. The CDN stored the response with a reduced TTL based on the hosting platform's caching rules.

X-Cacheable: SHORT

A forced cache entry overrides origin headers. YES:Forced means the CDN configuration explicitly cached this response regardless of the origin's Cache-Control directives.

X-Cacheable: YES:Forced

Takeaway

The X-Cacheable header reports whether a CDN or reverse proxy considers a response eligible for caching, often including a reason code explaining the decision.

See also

Last updated: March 6, 2026