Skip to main content

Confirm

Are you sure?

Performance · Checked once per domain

HTTP/2 or HTTP/3 enabledWhat it checks and how to fix it

What it checks

Reads the HTTP version the server negotiates for the site. HTTP/2 and HTTP/3 pass; a server that only speaks HTTP/1.x fails.

Why it matters

HTTP/1.1 sends one request at a time per connection, so a page with dozens of assets queues them behind each other or opens many connections, each with its own TLS handshake. HTTP/2 multiplexes every request over a single connection and compresses headers, and HTTP/3 also avoids stalls on lossy mobile networks, so the same page loads noticeably faster.

How to fix it

Enable HTTP/2 (and HTTP/3 where available) on the server or proxy that terminates TLS. Browsers only use HTTP/2 over HTTPS.

nginx (1.25.1 or later; older versions use listen 443 ssl http2;)

server {
  listen 443 ssl;
  http2 on;
}

Apache (mod_http2)

Protocols h2 http/1.1

Cloudflare: HTTP/2 is always on for proxied hostnames; turn on HTTP/3 under Speed → Optimization → Protocol Optimization.

Rails: Puma speaks HTTP/1.1 only, so put a proxy that speaks HTTP/2 in front of it (nginx, Thruster, kamal-proxy, or a CDN).

Monitor this automatically

Full Stack Audit runs this check and 126 others on your site on a schedule, and emails you when one that passed starts failing.

More Performance checks