# 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.

Best practices · HTML version: https://getreport.app/learn/http2

## HTTP/2 server support

Passing looks like: HTTP/2 server support passes.

**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.

**How to fix it.**

1. 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.
2. Check the host's control panel; on Cloudflare, Netlify, Vercel and most managed WordPress hosts it is already on.

## HTTP/2 and HTTP/3

Passing looks like: Every request uses HTTP/2 or 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.

**How to fix it.**

1. Enable HTTP/2 (and HTTP/3 where available) on your server or CDN — it usually comes with HTTPS.
2. Move assets hosted on old HTTP/1.1 origins behind the same CDN.

## HTTP/2 or HTTP/3 requests

Passing looks like: Every request uses HTTP/2 or HTTP/3.

**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.

**How to fix it.**

1. Turn on HTTP/2 or HTTP/3 in your hosting or CDN panel; on Cloudflare and most managed hosts it is a checkbox.
2. Move assets that are still served over HTTP/1.1 (see the technical detail) to a host that supports HTTP/2.

## HTTP/3 advertised

Passing looks like: HTTP/3 is advertised via Alt-Svc.

**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.

**How to fix it.**

1. Enable HTTP/3 in your CDN or server (Cloudflare toggle, Caddy default, Nginx 1.25+ "listen 443 quic").
2. Make sure UDP port 443 is open in the firewall.

Check your own page: https://getreport.app/
