Most speed testers are black boxes. We think you should know exactly what we're measuring and how. This page is the full methodology, no marketing, just engineering.
We measure against Cloudflare's global edge network ( speed.cloudflare.com ). Cloudflare runs points of presence in over 300 cities. When your browser connects, it's automatically routed to the nearest POP, New York, London, Frankfurt, Dubai, Singapore, Tokyo and dozens more. Wherever you are in the world, the test routes to a server close to you. This means the test measures your actual connection, not the speed to a distant server.
We surface the POP code (e.g. LHR for London Heathrow) and your detected ISP in the result panel so you can see exactly where the test ran.
We open a TCP/TLS connection with a warmup request, then send 12 small HTTP requests in quick succession. The round-trip time of each is recorded. We drop the worst 20% as outliers and average the rest. Jitter is calculated as the mean absolute deviation between consecutive samples, following the spirit of RFC 3550.
One short 5 MB stream tells us your connection class, slow ADSL, mid-tier cable, gigabit fiber. The result of this round picks the parameters for the full measurement so we don't over- or under-shoot.
Two rounds of parallel HTTP downloads . The number of streams (3-6) and the payload size (3-60 MB) are picked from the calibration. Parallel streams are essential because a single TCP stream cannot saturate a modern fiber line, TCP slow-start ramps too gradually, and multi-gig connections are now bottlenecked by per-flow congestion windows.
During each round we emit a live throughput sample every 150 ms so the gauge counts up smoothly instead of jumping at the end.
Same approach as download but reversed. We send randomized data (some servers compress zero-filled buffers, which would give an inflated score). Browsers don't expose upload progress for fetch bodies, so we interpolate the live counter from the calibration estimate and update it at round completion.
We sort all measurement rounds, drop the lowest, and average the rest. This protects against a single bad round dragging the result down, for example if a Steam download starts mid-test.
A 10-30% spread between FastSpeedTest, fast.com, and Ookla on the same connection is normal. Reasons: