Use these tools to measure network throughput, latency, and jitter from your current location. Each test uses different server infrastructure and methodology — running multiple tests gives a more complete picture of your connection. Useful for validating SLA performance, troubleshooting slow links, or baselining a new circuit.
Run the same speed test five times and you'll get five different numbers. That's not a bug — it's the result of every test choosing its own servers, its own routing path, and running at its own moment. Cloudflare hits whichever Cloudflare POP is closest to you, which usually gives the best-case throughput your local last mile can deliver. Fast.com runs against Netflix's Open Connect CDN — the same infrastructure that streams Netflix to you — so it's the truest measure of your "Netflix experience." Speedtest.net uses servers hosted by ISPs themselves, which can be a problem: some ISPs zero-rate or prioritize traffic to their own Speedtest servers, inflating the result above what you actually get on the rest of the internet.
For most real-world complaints, raw throughput isn't the interesting number. Bufferbloat is — that's latency that spikes when the link is loaded. A connection rated for 1 Gbps that runs at 50 ms idle and 500 ms under load will feel terrible for video calls and gaming even though the speed test reads green. Waveform's bufferbloat test grades this directly (A–F); Cloudflare's test reports loaded vs unloaded latency as separate numbers. If a customer says "internet is slow during big downloads but the speed test looks fine" — that's bufferbloat.
Methodology matters too. Browser-based speed tests are limited by your browser's connection count and the test's parallelism — they often underreport on very fast (multi-gigabit) connections because no single TCP flow can saturate the link. For real ISP performance characterization, run multiple tests against multiple providers at multiple times of day, and don't trust a single sample. If you need defensible numbers (an SLA dispute, a baseline for a new circuit), run iperf3 between two endpoints you control instead.