Methodology

How the test works

Same engine, same servers, same maths as Cloudflare's own speed test. The only thing we changed is the screen you look at.

Why another speed test?

Most speed tests fall into two camps. Some flash a single big number and hide everything else behind ads. Others — built for engineers — show a dozen charts, percentiles and acronyms. Neither helps a normal person answer the real question: "Is my internet good enough for what I want to do?"

Speedtesty shows the six measurements that actually decide that, explains each in one sentence, and gives you a verdict in plain words. The numbers are the same ones a network engineer would want — we just don't make you dig for them.

The engine

Every measurement is performed by @cloudflare/speedtest, the open-source (MIT-licensed) TypeScript engine that powers speed.cloudflare.com. We do not modify it or re-implement any of its calculations. Our code only draws the results.

The servers

Tests run against Cloudflare's measurement endpoints on its global edge network. When your browser connects, Cloudflare's anycast routing sends you to the nearest of its data centres — for most people, one in their own metro area. That keeps the server side out of the equation, so what you measure is your connection and your provider's network, not a distant test server.

What we measure, in order

  1. Ping (idle latency). Around twenty requests for a zero-byte file. The engine records the time from request start to first byte for each one and reports the median. The average distance between consecutive samples is your jitter.
  2. Download. Files are requested in rounds of increasing size — 100 KB, 1 MB, 10 MB, 25 MB, 100 MB, 250 MB. Once a single request takes longer than about one second, larger rounds are skipped. So a slow line finishes fast and a gigabit line gets files big enough to measure properly. Speed is the 90th percentile of all samples, which ignores the slow start-up of each transfer.
  3. Upload. The same ramp in the other direction, posting data to the server.
  4. Latency under load. While download and upload are running, the engine keeps sending small ping requests roughly every 400 ms. The median of those is your latency while the line is busy. We show the worse of the two directions.
  5. Packet loss. 1,000 small UDP packets are sent in batches of ten through a Cloudflare TURN relay and echoed back. Whatever doesn't return within three seconds of the last packet counts as lost.

The verdict and the "good for" labels

When the test finishes, the engine computes Cloudflare's Aggregated Internet Measurement scores for streaming, gaming and real-time communication from the measurements above. We translate those into Excellent / Good / Okay / Likely to struggle, and write a one-line summary based on simple, published thresholds (for example, Netflix's 15 Mbps recommendation for 4K). The colour chips on each tile use the same thresholds; they never change the measured values.

Why only six numbers

Because these six answer every practical question. Download and upload tell you about capacity. Ping and latency under load tell you about responsiveness — and the gap between them reveals bufferbloat, the hidden reason fast connections feel slow. Jitter and packet loss tell you about stability, which decides whether a call stays clear. Everything else a speed test could show is a detail of one of those six.

Tips for an accurate result

  • Use a cable if you can. Wi-Fi is the most common bottleneck, especially a room or two from the router.
  • Pause big downloads, cloud backups and streaming on other devices.
  • Run the test twice; the second run usually reflects your steady-state connection.
  • Close VPNs unless you want to measure the VPN.

Open source

The measurement engine is open source under the MIT licence and maintained by Cloudflare. Speedtesty is an independent project and is not affiliated with or endorsed by Cloudflare, Inc.

Ready?

Run the test now. It takes about 20 seconds.

Run speed test