Methodology
No speed test can be error-free, because networks change from second to second. What we can do is be completely transparent about how sure we are.
Cloudflare’s anycast network routes you to its closest location. When SpeedLens test servers are enabled, the browser pings each one and picks the lowest median round-trip time.
Twenty small requests. We report the median round-trip time; jitter is the mean difference between consecutive samples.
Several connections run in parallel and transfer sizes grow until each request lasts about a second, so fast lines are filled. Ping is measured during transfers too (ping under load).
TCP starts slowly, and on distant servers it can take a few seconds to reach full speed. We find where the speed levels off — the first second at 85% of the steady level — and leave out the ramp before it: never more than 4 seconds, and never a slowdown later in the test.
On real lines data arrives in bursts: a quiet moment is followed by a catch-up burst. We never discard either — we add up all the bytes in one-second steps, so bursts and pauses cancel out exactly as they do on your line.
The headline is the sustained throughput: total data delivered ÷ time after the warm-up. The 95% confidence interval is the wider of a moving-block bootstrap and a Student-t interval over the one-second steps. Each direction stops once the margin is within ±3% and the speed has stopped climbing, or at its time limit.
The margin is half the width of a 95% confidence interval. If a result reads 84.6 Mbps ± 2.1, then 95% of repeated measurements under the same conditions would be expected between 82.5 and 86.7 Mbps.
We use a moving-block bootstrap because neighbouring samples are correlated, and check it against a Student-t interval, so a short or uneven test never shows a margin smaller than it really is.
Stability is 100 minus the coefficient of variation of the one-second steps, as a percentage. 75 or more is a steady line, 45–75 shows some fluctuation, and below 45 the line is unstable — usually because of Wi-Fi or other devices competing for bandwidth.
Light uses at most about 16 MB; Max can use a few hundred MB on very fast connections. Each direction stops after a few seconds — as soon as the result is precise, or at its time limit. The exact data limit is shown before you start, and the data actually used is shown with every result.
We compare SpeedLens with reference tests on the same device and connection, alternating them so time-of-day effects cancel out. Our target is a median difference of 3% or less; validation results are published here as they are completed.
Your history is stored in your browser. Saved results keep only a salted, irreversible hash of your IP address. Measurement results are not sent to Cloudflare’s results service.