← Back to Tools
// Tool

Speed Test Comparison

Different speed tests use different methodologies, so they almost always give different numbers — that's the interesting part. This tool runs three free, open measurement engines back-to-back from your browser and lays the results side by side. You'll see who agrees, who disagrees, and by how much.

Total time: 60–120 sec
Data used: ~200 MB–1 GB
⚠ Mobile: may use a lot of cellular data
Cloudflare Waiting
Multi-stream HTTPS from speed.cloudflare.com. The methodology behind Cloudflare's own speed test.
ping
M-Lab NDT Waiting
Single-stream ndt7 over WebSocket. Used by Google's built-in speed test. Reads 40–60% lower than multi-stream tests by design — that's the comparison.
server
TravTeks Edge Waiting
Multi-stream HTTPS against this site's own Cloudflare Worker (/__speedtest/*). Measures the actual path you take to reach travteks.com.
ping

Frequently Asked Questions

Why do the three engines disagree on my speed?
They use genuinely different methodologies. Cloudflare runs adaptive multi-stream HTTPS against its measurement edge. TravTeks Edge runs the same multi-stream pattern but against this site’s own Cloudflare Worker. M-Lab NDT uses a single stream over WebSocket to a research server. M-Lab’s number is *expected* to read 40–60% lower than the multi-stream tests — that’s the protocol, not a bug. The gap between Cloudflare and TravTeks Edge tells you how much your path to this site differs from your path to Cloudflare’s measurement edge.
Which result is the "real" one?
There is no single "real" number. Cloudflare’s value is closest to a saturated download from a fast, well-connected site. TravTeks Edge tells you what to expect for travteks.com specifically. M-Lab’s single-stream number reflects what a single TCP connection sees, which is what many real applications use. The most useful answer is the range, not one figure.
Why doesn’t this include Speedtest.net or Fast.com?
Ookla’s Speedtest.net SDK is paid and license-restricted; Netflix’s Fast.com has no public API. All three engines used here are free and open: Cloudflare’s engine is the official @cloudflare/speedtest npm module, M-Lab’s is ndt7-js, and TravTeks Edge runs in this site’s own Cloudflare Worker.
What is M-Lab NDT?
M-Lab is an open measurement consortium (Google, Code for Science & Society, PlanetLab). NDT (Network Diagnostic Tool) is its standard single-stream throughput test, run over WebSocket against geographically distributed servers. Google’s built-in "Internet speed test" search result uses M-Lab under the hood. The single-stream design is intentional: it isolates the throughput a single TCP flow can achieve, which is what apps like video conferencing or game traffic actually rely on.
What is bufferbloat?
Bufferbloat is the rise in latency when your connection is saturated. Routers and modems often buffer packets aggressively to avoid drops, which inflates round-trip time under load — sometimes by hundreds of milliseconds. The Cloudflare engine reports both unloaded latency (when the link is idle) and loaded latency (during the download/upload phase). The difference is what shows up in this tool as a bufferbloat grade. Anything under 15ms is excellent; over 60ms degrades video calls and gaming.
Is my data shared?
The Cloudflare test sends measurements to Cloudflare. The M-Lab NDT test submits an anonymized measurement to the public M-Lab dataset used by researchers. TravTeks Edge runs entirely within this site’s own Cloudflare Worker — no third party involved. No personal identifiers are transmitted by the tool itself.
Why does running it use so much data?
Accurate throughput measurement requires transferring enough bytes to overcome TCP slow-start and ramp up to full speed. Each engine moves tens of MB to several hundred MB depending on your connection. On a slow connection less data is used; on a 1 Gbps connection a full run can approach a gigabyte.