Bcorre

HTTP/2 and HTTP/3 in 2026: What Speeds Things Up and How to Enable It

HTTP/2 is already the standard; HTTP/3 over QUIC accelerates mobile. We break down what changes at each layer, how to configure nginx, and where the gains come from.

HTTP/1.1 was the standard for 20 years. HTTP/2 arrived in 2015, and by 2026 roughly 95% of websites support it. HTTP/3 over QUIC is the next step, and its adoption grows every year. If your site is still running HTTP/1.1, you are losing 200–500 ms on every page load — before any application-level optimisation. In this article we break down what these protocols actually deliver, how to configure them, and where the gains are.

What Is Wrong with HTTP/1.1

The core problem with HTTP/1.1 is its sequential nature. A browser opens 6 parallel TCP connections to a single domain (that is the limit) and fetches one resource at a time through each connection. If you have 30 resources in the <head>, 24 of them are waiting in line.

On top of that:

  • Head-of-line blocking — if one resource is slow to load, every resource behind it waits
  • Redundant HTTP headers — a large number of bytes is repeated with every request
  • One request per connection even with keep-alive — the transfers are still sequential

In practice, on a site with 50 resources, HTTP/1.1 alone introduces 800–1500 ms of protocol-induced latency.

What HTTP/2 Delivers

The headline feature is multiplexing. A single TCP connection carries all resources in parallel. The browser no longer has to wait for one request to finish before starting the next.

Additionally:

  • Binary protocol instead of text-based — faster to parse
  • HPACK header compression — 30–50% fewer bytes per handshake
  • Server Push (disabled in browsers since 2022 in practice, as it caused more problems than it solved)

The effect: on a typical site, 100–300 ms of LCP improvement. And it is free — just enable it in nginx.

Enabling HTTP/2 in nginx

nginx ≥ 1.13 supports HTTP/2 out of the box. You only need to add http2 to the listen directive:

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    # ...
}

Verification:

curl -I --http2 https://yourdomain.ru
# The response should show HTTP/2 200

In Chrome DevTools → Network → right-click on the column header → enable Protocol — you will see h2 for all requests.

Note: HTTP/2 works only over TLS (HTTPS). Without SSL it is unavailable. A handy extra incentive to finally set up Let's Encrypt.

What HTTP/3 Delivers

HTTP/2 is good, but it still has one remaining problem — head-of-line blocking at the TCP level. If a single TCP packet is lost (poor connection, mobile), the entire multiplexed transfer stalls until that packet is retransmitted.

HTTP/3 solves this through QUIC — a new transport protocol built on top of UDP. Each data "stream" is independent. A packet loss in one stream does not affect the others.

Additionally:

  • 0-RTT handshake — reconnecting to a known server requires no full TLS handshake. Saves 100–300 ms
  • Better recovery when switching networks (Wi-Fi → 4G) — the connection is not dropped; it continues seamlessly
  • Encrypted by default — TLS is built into QUIC and cannot be disabled

The effect is most pronounced on mobile in poor conditions (subway, elevator, moving vehicle) — there HTTP/3 delivers 30–50% faster load times. On a stable Wi-Fi connection the difference is 5–10%.

Enabling HTTP/3 in nginx

nginx ≥ 1.25 supports HTTP/3 (requires a build flag). It is often easier to use pre-built packages from nginx Inc. or OpenResty.

server {
    listen 443 ssl http2 http3 reuseport;
    listen [::]:443 ssl http2 http3 reuseport;

    ssl_protocols TLSv1.3;          # HTTP/3 requires TLS 1.3
    ssl_certificate ...;
    ssl_certificate_key ...;

    # Advertise HTTP/3 availability to clients
    add_header Alt-Svc 'h3=":443"; ma=86400' always;
}

You also need to open UDP 443 in your firewall:

ufw allow 443/udp

The alternative: Cloudflare and most modern CDNs support HTTP/3 out of the box. Route your traffic through them and you get h3 without touching your nginx configuration.

Real-World Benchmarks

Test site, 80 resources per page, measurements averaged across 50 loads:

ProtocolTTFBLCPTotal load
HTTP/1.1320 ms2400 ms4100 ms
HTTP/2280 ms1900 ms2800 ms
HTTP/3240 ms1700 ms2400 ms

On a stable wired connection the HTTP/2 → HTTP/3 difference is modest. On mobile over 3G:

ProtocolTTFBLCPTotal load
HTTP/1.11200 ms6800 ms12000 ms
HTTP/21000 ms5400 ms8200 ms
HTTP/3700 ms3900 ms5600 ms

On mobile, HTTP/3 delivers a real 30% improvement. That is a significant number for SEO — Google measures performance on mobile.

Pitfalls

HTTP/2 Does Not Help If the Server Is the Bottleneck

If your backend takes 2 seconds to respond, no protocol will change that. HTTP/2 accelerates the transfer between server and client, not the processing itself.

HTTP/3 Requires TLS 1.3

Older TLS 1.2 does not work with QUIC. If you use Let's Encrypt, you already have TLS 1.3. If you have old self-signed certificates, update them.

CDN Caching Can "Cut Off" HTTP/3

If your CDN does not support HTTP/3 between itself and your origin, clients get HTTP/3 from their browser to the CDN, but between the CDN and origin it falls back to HTTP/1.1. Part of the gain is lost. Modern CDNs (Cloudflare, BunnyCDN, KeyCDN) support HTTP/3 end-to-end.

Stateful Firewalls Block UDP

Corporate firewalls and mobile carriers sometimes block UDP 443 (which HTTP/3 runs over). In that case the browser automatically falls back to HTTP/2. Not critical, but worth checking.

Additional Configuration

Beyond switching the protocol, these nginx settings provide further speed gains:

# HTTP/2 priority hints
http2_push_preload on;  # disable if you are not using push

# Reduce TLS handshake overhead
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;

# OCSP stapling — faster certificate validation
ssl_stapling on;
ssl_stapling_verify on;

# Gzip + Brotli for all compressible content
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

Summary

HTTP/2 is a must-have in 2026 — it is free and takes 5 minutes to configure in nginx. HTTP/3 is a meaningful improvement for mobile traffic — 20 minutes of configuration, or simply enable it through a CDN. Both protocols require HTTPS — another good reason to have a proper SSL setup.

If you want a performance audit and protocol review for your site — get in touch. Free of charge, delivered within 2 business days.

Сайт + SEO + GEO/AEO

This is part of our service Видимость под ключ

Сайт, SEO, GEO/AEO, хостинг и аналитика в одной подписке

Go to service →
Take it further?

Need an expert eye on your project?

We do an express audit in 2 business days: showing where your site is losing traffic and what to fix first.

Discuss project