Table of contents of the article:
The NGINX team and F5 Networks are excited to announce the release of NGINX version 1.29.0 mainline , a milestone that brings native support for the HTTP 103 Early Hints status code . This is an important evolution for performance-focused developers and sysadmins, as it allows the browser to load critical resources earlier, significantly improving the perceived speed of web page loading.
The team emphasized that its mission has always been to provide concrete tools for building fast, efficient, and scalable web experiences. This is precisely why they've adopted Early Hints, a feature designed to reduce latency and improve Core Web Vitals metrics with minimal impact on existing configuration.
What are 103 Early Hints?
The 103 Early Hints status code represents an "informative" HTTP response that can be sent before the final response. When the server is busy generating the main content of a page, it can send a 103 message that hints to the browser which resources will soon need to be loaded—such as CSS, JavaScript, or fonts.
This way, the browser can begin downloading these resources while waiting for the final response , taking advantage of the so-called "dead time." The result is smoother, faster, and more responsive loading for the end user.
Unlike obsolete techniques such as HTTP/2 Server Push, the Early Hints mechanism is more elegant and controlled: it does not force the loading of resources, but lets the browser decide based on the state of its cache, avoiding wasted bandwidth or duplications.
Additionally, suggestions are sent as headers Link, in a standard format and easily integrated into existing workflows. This makes them extremely flexible and suitable for multiple scenarios, from static sites to dynamic web applications with content generated on-the-fly.
As Google's Barry Pollard and Kenji Baheux explain:
“Early Hints helps the browser take advantage of server thinking time by performing some operations early, thus speeding up page loading.”
Today the feature is supported by all major browsers: Chrome , Safari , Firefox and Edge , making it a ready-to-use technology in real production environments.
Why Early Hints are Important
A website's performance directly impacts user experience, loyalty, and even search engine rankings. A faster-loading page not only improves user interaction, but also reduces abandonment and increases conversions. Early Hints fit into this context as an intelligent and minimally invasive optimizer , capable of delivering tangible results without requiring major changes to the existing infrastructure.
Main advantages:
- Reducing TTFB (Time To First Byte): The browser may start downloading critical resources before to receive the final response from the server. This means that the page begins to load in parallel with the processing of the response, significantly reducing the latency perceived by the user.
- Improvement of Core Web Vitals: Key metrics such as FCP (First Contentful Paint) e LCP (Largest Contentful Paint) benefit from preloading. Visible content appears faster, making the page more responsive and satisfying for the user.
- Cache efficiency: The browser can evaluate whether it already has the resources cached and decide autonomously whether to download them. This intelligent behavior avoids wasted bandwidth and improves the use of network resources.
- Easy adoption for NGINX users: There is no need to modify the site code or intervene in the frontend. With a few lines of server-side configuration, you can obtain a measurable and lasting benefit in terms of performance.
How Early Hints Work in NGINX
The support introduced in NGINX 1.29.0 allows the server to to proxy 103 responses from the backend and forward them to the client. This means that if the backend already knows that it will need to load certain resources (e.g. /main.css o /app.js), can communicate it to NGINX, which will in turn pass it on to the browser.
The functionality is activated via the new directive early_hints, which allows enable or disable forwarding initial suggestions based on certain conditions.
By default, Early Hints is turned off.
Example NGINX configuration:
map $http_sec_fetch_mode $early_hints { navigate $http2$http3; } server { listen 443 ssl http2; server_name www.example.com; location / { early_hints $early_hints; proxy_pass http://backend.example.com; } }
In this example, Early Hints are enabled only for browsers that send the header sec-fetch-mode with value navigate and that use HTTP/2 or HTTP/3. This avoids problems with older HTTP/1.1 clients, which may not handle code 103 correctly.
When to enable Ealy Hints?
Although Early Hints are also compatible with HTTP/1.1, it's best practice to enable them only for modern clients . Some browsers or legacy tools may not correctly recognize the 103 response, resulting in protocol errors or unexpected resource handling behavior.
In the worst case, an unsupported 103 response could be interpreted by the client as an error or cause a rendering failure. While most major browsers are now fully compatible, it is important to maintain a conservative approach in the early stages of adoption, especially in high-traffic or enterprise environments.
For this reason, the NGINX and F5 team recommends following some best practices:
- Enable Early Hints for HTTP/2 and HTTP/3 clients only, which offer advanced management of information responses and greater efficiency in parallel loading of resources.
- Use
sec-fetch-modeto further filter compatible clients, verifying that the browser is actually able to recognize and exploit the suggestions without causing regressions. - Test carefully in staging environments, monitoring real-world performance and overall stability before deploying to production. It is best practice to enable the feature gradually and evaluate its impact using observability tools and real-world metrics.
Performance Results: What Does the Data Say?
Tests performed by the NGINX team and F5 Networks show tangible improvements in loading performance:
- FCP reduced up to 30% on sites with large critical resources (e.g. fonts and CSS)
- Improved LCP in all tested configurations
- Shortest TTFB even with slow back-ends, thanks to preloading during processing
These benefits aren't limited to mere speed: by improving your Core Web Vitals , you also get a better SEO score and greater end-user satisfaction.
How to enable Early Hints in your infrastructure
Implementing Early Hints with NGINX is simple:
- Update NGINX to version 1.29.0+
- Configure the directive
early_hintsbased on client type - Make sure the backend sends suggestions 103 with header
Link: <...>; rel=preload; as=... - Monitor the results with tools like Lighthouse, PageSpeed Insights and WebPageTest
Conclusion: small efforts, big results
With the introduction of support for 103 Early Hints, the NGINX and F5 team once again demonstrates that they are at the forefront of providing tangible solutions to improve the user experience. This feature offers a free — or almost free — improvement in performance, leveraging a simple, standardized and increasingly adopted mechanism.
Whether you're running a personal blog, an eCommerce business, or a mission-critical app, Early Hints can give you the competitive edge that makes the difference between an abandoned visit and a conversion today.