How do I read Vercel's request and cache response headers?

The Citead team, updated

In short. Read x-vercel-cache for CDN status, inspect request headers for domain and deployment context, and use runtime logs to review crawler response details.

Definition: Vercel response header inspection means reading the metadata returned with a deployment's HTTP response. As of 17 October 2026, Vercel documents x-vercel-cache for content delivery network (CDN) cache status and x-vercel-id for the regions involved in handling a request.

Key facts

Where are the headers visible?

Vercel's response header reference documents browser developer tools and this command, with the deployment URL substituted for the placeholder:

curl -I <DEPLOYMENT_URL>

The x-vercel-id value includes the Vercel regions reached by the request and the function execution region. The content-type field describes the response's media format.

Vercel's request header reference documents reading incoming headers through the function's Request object. For deployment diagnosis, host identifies the domain requested by the client, while x-vercel-deployment-url identifies the underlying deployment. These are useful fields when comparing a production domain with a deployment URL.

What does each cache status mean?

The cache status documentation defines the values returned in x-vercel-cache:

  • HIT means a stored response serves the request.
  • MISS means the function or origin generates the response after an unsuccessful cache lookup.
  • BYPASS means Vercel deliberately skips that lookup.
  • STALE means an older cached response is served during a background refresh.
  • PRERENDER means the response comes from static storage.
  • REVALIDATED means a deleted cache entry requires foreground regeneration.

The same documentation describes a crawler-specific bypass reason: on a path with a prerender fallback, Vercel can wait for the complete page for a matching crawler. A cache bypass therefore has a documented rendering use.

Why can the visible cache policy differ?

Vercel's Cache-Control documentation gives its CDN this priority order when multiple policy headers are present:

Vercel-CDN-Cache-Control
CDN-Cache-Control
Cache-Control

The proxy consumes Vercel-CDN-Cache-Control before sending the response to the client. When Cache-Control is the only cache policy header, Vercel removes its s-maxage directive before forwarding it. Consequently, inspecting the client response needs to be paired with reviewing the policy set by the application.

How are crawler responses checked in logs?

Vercel's runtime logs reference documents Request Path, Request Method, Host and Deployment filters. Its request details include Request User Agent and Firewall, which shows whether the request passed the firewall. Reviewing those details alongside the HTTP status and cache result helps distinguish access handling from cache handling for a recorded request.

FAQ

Does MISS mean my page failed?

Vercel's cache status reference describes misses as expected for dynamic routes generated on each request. You can inspect the response's HTTP status separately.

Which field helps me distinguish the requested domain from the deployment?

Vercel's request header reference documents host for the domain accessed and x-vercel-deployment-url for the underlying deployment. You can read both in the function's incoming Request object.

Sources

  1. Vercel, "System Headers", 11 August 2026
  2. Vercel, "Response headers", 11 August 2026
  3. Vercel, "Request headers", 13 December 2025
  4. Vercel, "Cache Status and Reasons", 15 September 2026
  5. Vercel, "Cache-Control headers", 14 September 2026
  6. Vercel, "Runtime Logs", 28 August 2026

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark