← Back to Blog

Your server knows what the browser needs before the HTML arrives. Early Hints tells it.

Your server knows what the browser needs before the HTML arrives. Early Hints tells it.

When a browser requests a page, your server starts building the HTML response. That takes time. Database queries, template rendering, API calls. During that entire window, the browser is sitting idle, waiting.

HTTP 103 Early Hints changes that. Your server can send a preliminary response with Link headers before the final 200 response is ready. The browser sees those Link headers and immediately starts fetching critical resources like stylesheets, fonts, and preconnect targets.

This is dead time recovered. The browser was going to wait anyway. Now it's warming up connections and downloading assets while your server finishes its work.

How it works

The flow is simple:

  1. Browser sends GET request
  2. Server immediately returns 103 Early Hints with Link: </style.css>; rel=preload; as=style
  3. Browser starts fetching style.css
  4. Server finishes building the page, returns 200 OK with the HTML
  5. When the HTML references style.css, it's already downloaded or in progress

RFC 8297 defined this in 2017. Chrome supported it in 2022. Cloudflare, Fastly, and nginx all support sending 103 responses. But adoption is still minimal because most frameworks don't surface it and most developers don't know it exists.

The performance difference

The gains are proportional to your server think time. If your server takes 50ms to build a response, Early Hints saves you very little. If it takes 300-500ms (common for dynamic pages hitting databases and APIs), that's 300-500ms of browser idle time converted into parallel asset fetching.

For pages with render-blocking CSS and web fonts, that's often the difference between a 2.0s and a 1.5s LCP. No code changes. No architecture overhaul. Just a configuration change on your server or CDN.

What the tool checks

The Early Hints 103 Audit probes your URL and checks whether your server sends 103 responses, what Link headers it includes, and whether those links match the critical resources your page actually needs. It also checks for Link: preload and Link: preconnect in your final 200 response headers, since those accomplish similar goals without the 103 dance.

If your server doesn't send Early Hints, the tool shows you what the configuration would look like for common setups: Cloudflare, nginx, Apache, Caddy, and Node.js.

It pairs well with the Preconnect Hints Hygiene Audit for validating that the connections you're warming up are ones the page actually uses.

If you're spinning up sites on a budget and want to know which performance optimizations are worth the setup cost, The $97 Launch ranks them by impact per hour of effort.

Fact-check notes and sources

  • RFC 8297 "An HTTP Status Code for Indicating Hints": IETF RFC 8297
  • Chrome 103 Early Hints support shipped in Chrome 103 (June 2022): Chromium blog
  • Cloudflare Early Hints support: Cloudflare docs
  • Shopify reported 1-4% LCP improvement from Early Hints: Chrome Dev Summit 2022

Related reading

This post is informational, not performance-consulting advice. Mentions of Chrome, Cloudflare, Shopify, and IETF are nominative fair use. No affiliation is implied.

← Back to Blog

Accessibility Options

Text Size
High Contrast
Reduce Motion
Reading Guide
Link Highlighting
Accessibility Statement

J.A. Watte is committed to ensuring digital accessibility for people with disabilities. This site conforms to WCAG 2.1 and 2.2 Level AA guidelines.

Measures Taken

  • Semantic HTML with proper heading hierarchy
  • ARIA labels and roles for interactive components
  • Color contrast ratios meeting WCAG AA (4.5:1)
  • Full keyboard navigation support
  • Skip navigation link
  • Visible focus indicators (3:1 contrast)
  • 44px minimum touch/click targets
  • Dark/light theme with system preference detection
  • Responsive design for all devices
  • Reduced motion support (CSS + toggle)
  • Text size customization (14px–20px)
  • Print stylesheet

Feedback

Contact: jwatte.com/contact

Full Accessibility StatementPrivacy Policy

Last updated: April 2026