How the test works
No mystery numbers: this page explains exactly what we measure, how we compute it, and what can skew it.
Where we measure
Your browser talks to the nearest Cloudflare datacenter over the open measurement endpoints that power speed.cloudflare.com. Cloudflare operates in more than 300 cities, so the test server is usually just a few milliseconds away — which means the result reflects your access network, not a distant server.
The datacenter code you see in the results (for example SIN or FRA) is the IATA-style code of the site that served your test.
Download and upload
We open several parallel connections and stream data for a fixed time window (about 10 seconds down, 8 seconds up), ramping payload sizes so both slow and multi-gigabit lines are measured fairly.
Throughput is sampled continuously as bytes arrive. Your headline number is the 90th percentile of samples after the ramp-up period — close to what the connection sustains when fully warmed up, and the same aggregation speed.cloudflare.com uses. The peak value shown next to each chart is the single highest sample.
Latency, jitter and loaded latency
Idle latency is the median of ~15 small HTTP round trips to the test server before any heavy transfer starts. Jitter is the average change between consecutive probes.
While the download and upload run at full speed, we keep sending latency probes. The median of those is your loaded latency. On a healthy line it stays close to idle; on a line with oversized buffers it can grow by hundreds of milliseconds — that effect is called bufferbloat, and it is the number-one reason calls stutter “even though the internet is fast”.
Bufferbloat grades
The grade compares your worst loaded latency with your idle latency. We grade on the added delay:
| Grade | Added latency under load | What it feels like |
|---|---|---|
| A | < 20 ms | Imperceptible — everything stays smooth. |
| B | 20–60 ms | Fine for almost everything. |
| C | 60–150 ms | Calls may stutter during downloads. |
| D | 150–400 ms | Real-time apps struggle under load. |
| F | > 400 ms | The line chokes whenever it’s busy. |
Quality grades
Streaming looks at download headroom (4K needs roughly 15–25 Mbps per stream). Video calls look at upload capacity plus loaded latency and jitter — a call is only as good as your line under load. Gaming looks at idle latency, jitter and bufferbloat; raw bandwidth barely matters beyond a few Mbps.
Grades are deliberately conservative: an A means the activity should feel flawless even while the connection is busy.
What can skew your result
Wi-Fi is the most common bottleneck — test wired if you can. Other things that lower numbers: a VPN or proxy, other people or devices using the line, browser extensions that inspect traffic, a busy laptop CPU, and power-saving modes on phones.
Numbers can also differ between test sites (speedtest.net, fast.com, this site) because each uses different servers, connection counts and aggregation. Differences of 10–20% are normal and don’t mean either test is wrong.
What we don’t do
This site is completely static — there is no backend, no database, and no account system. Your results are computed in your browser and stored only in your browser’s local storage, where you can clear them at any time.
The IP address, provider and city shown in your results come from the test server’s response headers and are displayed locally only. We never receive, log or store them.