cfspeed how fast is your internet, really?
Getting ready

Download
Upload
Idle latency
Loaded latency
Jitter
Bufferbloat

Report

Throughput over time

Latency during the test

Distribution

Connection

What this connection handles

In real terms

World latency · how far away the internet feels

History · this device only

How this test works & why it's accurate

Parallel connections, for real

Bulk transfers fan out across up to 8 independent endpoints, each with its own TLS certificate. Because the certificates don't overlap, your browser cannot merge them into one multiplexed connection — the test genuinely opens many parallel connections, each with its own congestion window. That's how a modern line gets saturated; single-connection tests routinely under-report fast links.

Warm-up is off the record

Connection handshakes, preflights and the first second of ramp-up are excluded. Measurement starts at the first payload byte, and the reported number is the median of the best sustained stable window (≥3 s with rate variation < 12%) — what your line holds when it holds, with the peak and consistency figures showing the spread.

Latency under load

While the pipes are saturated we keep pinging on a separate connection. The difference between idle and loaded latency is bufferbloat — the thing that makes calls stutter while someone's uploading. Graded A+ (<5 ms added) to F (>400 ms).

Uploads measured at the socket

Upload lanes are pipelined POSTs of incompressible random data — the next body starts at 85% of the current one, so the connection never idles — and bytes are counted from upload progress events, which track what's actually handed to the network stack.

Test servers next door

Payloads are generated at a server close to you on a global edge network, so you measure your access link — not a distant datacenter. The world-latency panel does the opposite on purpose: it times tiny requests against major regions on every continent to show how far away the rest of the internet feels.

Privacy

Nothing about your test is stored on our side. Uploads are counted and discarded. History lives only in your browser. Share links are self-contained: the entire report — including your IP and provider, so the recipient sees the full picture — is compressed into the link itself. Nothing exists until you choose to share it, and nothing is ever stored on a server.