HTTP/2 Server Push and 103 Early Hints both address the same problem: the browser cannot start fetching critical assets (CSS, fonts, JS) until it has received and begun parsing the HTML response. Early Hints tells the browser what to fetch before the HTML is ready — shaving 50–200ms from FCP and LCP on cold loads. ISO 25010:2011 time-behaviour captures the gain; for users on high-latency connections (mobile networks), this optimization is especially valuable because each round-trip is expensive.
Low because server push and early hints are additive optimizations that improve FCP on cold loads, but their absence does not cause correctness failures and the improvement is typically under 200ms on fast connections.
Configure 103 Early Hints for your critical CSS and font assets via deployment headers. On Vercel, this is handled automatically; for custom servers, emit the 103 response before awaiting the full render.
// vercel.json — early hints for font and CSS
{
"headers": [
{
"source": "/",
"headers": [
{ "key": "Link", "value": "</fonts/inter.woff2>; rel=preload; as=font; crossorigin, </styles/main.css>; rel=preload; as=style" }
]
}
]
}
ID: performance-deep-dive.network-waterfall.http2-server-push
Severity: low
What to look for: Count all critical assets (CSS, fonts, above-fold JS) that could benefit from server push. Enumerate the deployment config for 103 Early Hints. Examine server configuration or deployment settings for HTTP/2 Server Push or 103 Early Hints usage. Look in vercel.json, nginx config, or equivalent for server push directives. Measure whether critical assets (CSS, fonts) are pushed before the client requests them.
Pass criteria: HTTP/2 Server Push or 103 Early Hints is configured for critical assets. FCP or LCP is reduced by 50ms or more compared to unpushed baseline. At least 2 critical assets should be pushed or hinted.
Fail criteria: No server push or early hints configured, or configuration doesn't improve performance.
Skip (N/A) when: The project is not served over HTTP/2, or performance testing has not been conducted.
Cross-reference: For cache headers that complement server push, see cache-control-hashed-assets.
Detail on fail: "No HTTP/2 Server Push configured" or "Server Push configured but provides no measurable performance benefit"
Remediation: Configure server push for critical assets (main CSS, fonts) or use 103 Early Hints to reduce perceived latency.
// vercel.json — 103 Early Hints for critical assets
{ "headers": [{ "source": "/", "headers": [{ "key": "Link", "value": "</fonts/inter.woff2>; rel=preload; as=font; crossorigin" }] }] }