HTTP throughput diagnostics via Cloudflare edge | no cookies, no tracking, results stay in your browser
backend: probing…
$ idle — press start
metric
result
ping (min RTT)
—
jitter (mean |Δ|)
—
download
—
upload
—
bufferbloat (ping under load)
—
> methodology
ping / jitter: 2 warm-up requests are discarded, then 10 timed requests to /ping on your nearest Cloudflare edge location. Ping = fastest sample; jitter = mean absolute difference of consecutive samples. This is HTTP RTT over TLS, not ICMP — expect slightly higher numbers than a terminal ping.
download: 8 parallel chunked streams for 10 s from /down; the first 1.5 s (TCP/TLS ramp-up) is discarded before the result is computed.
upload: 4 parallel ~8 MiB POSTs for 10 s to /up.
bufferbloat: pings fired while the download saturates the link; the median increase over idle ping is graded A–F (A ≤ 5 ms, B ≤ 30 ms, C ≤ 60 ms, D ≤ 200 ms, F above).
suitability badges: 4K streaming ≥ 25 Mbps, video calls ≥ 5/3 Mbps at ≤ 100 ms, gaming ≤ 50 ms ping and ≤ 10 ms jitter.
honesty clause: this measures HTTP throughput between your browser and Cloudflare's edge — not your ISP's rated line speed. Bottlenecks on your side (Wi-Fi, VPN, device) are included in the result.
> console
the last result is exposed as window.speedtest — poke it from devtools. And as usual: help() works, too.