Internet Speed Test
Measures your actual download speed, upload speed, and ping, not the theoretical maximum. Run it a few times at different times of day for a realistic picture.
Download
Upload
How it works
Ping & Jitter · 1 warmup + 10 HEAD requests to your server. Drops 2 slowest, averages the rest. Jitter = mean deviation between consecutive samples.
Download · 4 MB TCP warmup + two passes of 6 parallel streams from Cloudflare (150 MB each). TTFB excluded. Both passes averaged.
Upload · Two passes of 6 parallel streams posted directly to Cloudflare (60 MB each). Uses text/plain Blob to avoid CORS preflight. Both passes averaged.
Results may vary from ISP-provided tests due to server proximity and network conditions.
How to get an accurate speed test
One test gives you a number. A few tests at different times of day show you what you actually get.
- 01
Pause anything else using the connection
A streaming TV, a cloud backup or a game update on another device shares the same line, so the test only sees what's left over. Pause what you can for a cleaner reading.
- 02
Start the test and leave the tab open
It runs ping, then download, then upload. On a 100 Mbps line the whole thing takes well under a minute. On slower connections it takes longer, because the test moves a fixed amount of data (see the table below).
- 03
Repeat at a busy time and a quiet time
Evening speeds are often lower than morning ones, when more people on your street are online. Test at around 9 am and 9 pm and compare. The gap tells you more than either number alone.
What happens during the three stages
Ping comes first. The page requests a 1-byte file from Cloudflare's speed-test server 10 times, drops the two slowest replies and averages the other eight. Jitter is the average change from one reply to the next, so a steady 25, 26, 25 ms connection scores low jitter while 20, 60, 22 ms scores high. Because each ping is a full HTTPS request rather than a bare network ping, expect it to read a few milliseconds higher than a command-line ping.
Download starts with a 4 MB warm-up so the connection is already up to speed before timing begins. Then it opens six parallel streams, each pulling 25 MB from Cloudflare, and does that twice. The result is the average of the two runs. Several streams at once matter on fast lines, since a single connection often can't fill a gigabit plan by itself.
Upload sends six streams of 10 MB of random data, also twice, to this site's own server. Random data can't be compressed along the way, so it can't inflate the result. The upload figure therefore reflects the route to our server, which may be further away than the Cloudflare server used for download.
How long the test takes at your speed
The test moves a fixed amount of data rather than running for a fixed time: about 315 MB for the two download runs and 126 MB for upload. That's why it finishes in seconds on fibre and takes minutes on a slow line. These are the minimum times, worked out from the data size and the speed.
| Connection speed | Download stage | Upload stage (at the same speed) |
|---|---|---|
| 10 Mbps | About 4 min 12 s | About 1 min 41 s |
| 25 Mbps | About 1 min 41 s | About 40 s |
| 50 Mbps | About 50 s | About 20 s |
| 100 Mbps | About 25 s | About 10 s |
| 300 Mbps | About 8 s | About 3 s |
| 1 Gbps | About 2.5 s | About 1 s |
Most home plans upload much slower than they download, so the upload stage often takes longer than the table's right-hand column suggests. A 100 Mbps plan with 10 Mbps upload spends about 25 s on download and around 1 min 41 s on upload.