Vercel CDN no longer caches origin responses when Vary includes Cookie.
Vary tells a cache which request headers may change the response. Because cookies often contain visitor-specific values, varying by Cookie can create many cache entries that are rarely reused. The response is still served normally but isn't stored for future requests.
You can identify these responses by checking the x-vercel-cache header and Runtime Logs. The header is set to MISS, and Logs show vary_key_denied:cookie as the cache reason.


If Logs show vary_key_denied:cookie for a route you expect to be cached, check the Vary header returned by your origin:
If the response is the same regardless of cookies, remove
CookiefromVary. Vercel CDN can then cache it if it meets the other caching requirements.If the response depends on cookies, keep
CookieinVaryand useCache-Control: privateto prevent personalized responses from being stored in the shared CDN cache.
Caching behavior for other supported Vary headers is unchanged.
Learn more about high-cardinality headers and the vary_key_denied cache reason.