How FastSpeedTest measures your connection

This page describes what the test code actually does, written by Saif Ullah, who builds and maintains the site. If something here stops matching the code, it is a bug; please report it .

Everything runs in your browser. It sends requests to Cloudflare's public speed test endpoints, which answer from the Cloudflare location your network reaches first. That location is shown with your result. The test does not pick a server by hand; the network routes you to the nearest one, which is usually close but not always in your own city.

Because these are web requests rather than raw network pings, the numbers include a little browser overhead and are usually a few milliseconds higher than a command line ping.

On this page

Upload follows the same pattern: a 1 MB calibration upload, then two rounds of 1 MB to 12 MB uploads over 2 to 4 parallel connections, with the result calculated from total bytes over time.

The score sums up one test on a scale of 0 to 100. Each part is scored, then weighted:

Ratings: 85 and above is Excellent, 70 Very good, 55 Good, 40 Fair, below 40 Poor. The thresholds are our own judgement for everyday home use, not an industry standard. The "good for" list uses fixed limits, for example about 25 Mbps per 4K screen and under 30 ms ping with under 5 ms jitter for competitive gaming.

For a fair picture, test a few times, at different hours, and once on a cable. The compare tool helps with that.

Results are saved only in your browser's local storage so your history works. The test reads your IP address and provider name from Cloudflare to show them to you; FastSpeedTest does not store them on any server. If you allow analytics, only coarse bands such as "fast" or "slow" are recorded, never your exact numbers or provider. Details are in the privacy policy .

More background is on how it works and about FastSpeedTest .

Key points

More from FastSpeedTest