Table of contents of the article:
The NGINX team and F5 Networks are excited to announce the release of the version 1.29.0 mainline of NGINX, a milestone that brings with it native support for status code HTTP 103 Early Hints. This is an important evolution for performance-oriented developers and sysadmins, as it allows the browser to load critical resources earlier, significantly improving the perceived speed of web page loading.
The team has emphasized that its mission has always been to offer concrete tools to build fast, efficient and scalable web experiences. The adoption of Early Hints fits into this perspective, a feature designed to reduce latency and improve metrics Core Web Vitals with minimal impact on your existing configuration.
What are 103 Early Hints?
The status code 103 Early Hints represents an “informative” HTTP response that can be sent before purchasing, of the final answer. When the server is busy generating the main content of a page, it can send a 103 message that suggests to the browser which resources should be loaded soon — such as CSS, JavaScript, or fonts.
This way, the browser can start downloading these resources while waiting for the final answer, taking advantage of the so-called “dead time”. The result is a 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 ed Edge, making it a technology ready for use in real production environments.
Why Early Hints are Important
The performance of a website directly affects user experience, loyalty and even search engine rankings. A page that loads faster not only improves user interaction, but reduces abandonment and increases conversions. Early Hints fit into this context as a smart optimizer e minimally invasive, 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 purchasing, 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?
While Early Hints are also compatible with HTTP/1.1, It is good practice to enable them only for modern clients. Some browsers or legacy tools may not properly 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-mode
to 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 are not limited to mere speed: improving the Core Web Vitals, you also get a best SEO score has always been 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_hints
based 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 store, or a mission-critical app, Early Hints can give you that competitive edge which today makes the difference between an abandoned visit and a conversion.