How to enable HTTP/2 and HTTP/3
HTTP/2 loads many files over one connection and HTTP/3 shortens the handshake. Most hosts and CDNs enable them with one switch.
Step by step, with screenshots: CDN basics: what a CDN fixes and what it does not →
Check your own site
Runs these 4 checks and the other 183, free, in about 45 seconds.
What a passing site looks like
- HTTP/2 server support: passeswarning · −2 ptseffort M
- Every request uses HTTP/2 or HTTP/3warning · −2 ptseffort M
- Every request uses HTTP/2 or HTTP/3warning · −1.5 ptseffort M
- HTTP/3 is advertised via Alt-Svcinfo onlyeffort S
1. The server does not offer HTTP/2
Why it matters. Without HTTP/2 the browser opens up to six connections and queues everything else. Turning it on is a server or CDN setting and makes pages with many files load faster with no code change.
- Enable HTTP/2 in your web server (nginx 1.25.1+: "http2 on;" in the server block, older: "listen 443 ssl http2"; Apache mod_http2) or put the site behind a CDN that speaks it.
- Check the host's control panel; on Cloudflare, Netlify, Vercel and most managed WordPress hosts it is already on.
2. HTTP/2 and HTTP/3
Why it matters. HTTP/2 and HTTP/3 load many files at once over one connection. HTTP/1.1 queues them, which hurts most on pages with many images and scripts.
- Enable HTTP/2 (and HTTP/3 where available) on your server or CDN — it usually comes with HTTPS.
- Move assets hosted on old HTTP/1.1 origins behind the same CDN.
3. HTTP/2 or HTTP/3 requests
Why it matters. HTTP/2 and HTTP/3 load many files over one connection at once; HTTP/1.1 queues them six at a time. Switching usually makes a page with many images or scripts noticeably faster with no code change.
- Turn on HTTP/2 or HTTP/3 in your hosting or CDN panel; on Cloudflare and most managed hosts it is a checkbox.
- Move assets that are still served over HTTP/1.1 (see the technical detail) to a host that supports HTTP/2.
4. HTTP/3 is not advertised
Why it matters. HTTP/3 (QUIC) shortens the connection setup and copes better with flaky mobile networks. Servers announce it with an Alt-Svc header; without it browsers never try.
- Enable HTTP/3 in your CDN or server (Cloudflare toggle, Caddy default, Nginx 1.25+ "listen 443 quic").
- Make sure UDP port 443 is open in the firewall.