Broadband Internet Speed Test
Download, upload, latency and jitter, measured from this tab. Free, and runs entirely in your browser — nothing you enter is uploaded or stored.
About Broadband Speed Test
Download, upload, latency and jitter, measured from this tab by moving real data over real connections. It is the same method every browser-based speed test uses, and it is worth knowing what that method can and cannot tell you.
What it measures is HTTP throughput between this browser and one CDN edge. That is a good proxy for what a download will do and a poor proxy for what your line is rated at: a VPN, Wi-Fi rather than a cable, another device on the same connection, or simply the time of day will all move the figure, and none of them are faults in the line.
Three things are done to keep the number honest. The clock starts at the first byte rather than at the request, so DNS, the TCP handshake and the TLS negotiation are not counted as transfer time — without that, a fast connection to a distant server reads as a slow connection. Four transfers run at once, because a single TCP stream is capped by the bandwidth-delay product and cannot fill a fast pipe however healthy it is. And a small transfer runs first and is discarded, because the opening second of any connection measures TCP's caution rather than the link.
Packet loss needs explaining, because a browser cannot measure it. There is no ICMP here, no raw sockets, and TCP deliberately hides loss from the receiving end — a segment sent twice arrives looking exactly like one that never went missing, which is the entire point of the protocol. Counting failed requests instead would report zero on every connection that is merely bad rather than broken. So the count comes from the end that can count: Cloudflare's edge publishes its own socket statistics, including how many segments it had to send again. It is a real figure about one real thing — the path from the server to you — and it is not the number a ping would give you.
The counters are read twice, before the transfers and after, because a browser keeps connections alive between runs. Without the first reading a second test would report the first one's losses all over again, and a connection that had one bad moment would go on looking lossy for as long as the tab stayed open.
Jitter is reported separately from latency because it breaks different things. A steady 120 ms is a usable video call; 40 ms that swings to 200 and back is not, even though the average flatters it — the buffer has to be sized for the worst round trip, not the mean one.
The conditions are reported alongside the figures: your public address and which of IPv4 or IPv6 the route actually used, your network and its AS number, and which of Cloudflare's sites served the test. Those come from the far end because the browser cannot answer them about itself — it cannot see its own public address, and has no idea which of several hundred edges took the request. The distance between the two is printed with the round trip it implies, because a distance on its own invites the wrong conclusion: people read it as the explanation for a high latency, and it is usually nowhere near enough to be.
This is the one tool here that sends data somewhere. The transfers go to Cloudflare's public measurement endpoint, because measuring a connection requires a second end to measure against and it cannot be this page. Nothing about you is uploaded: the payload is random bytes.
Where it helps
- Download, upload, latency and jitter in one run, with what each one is good for spelled out.
- Timed from the first byte, so the handshake is not counted against the throughput.
- The dials move on measured bytes while the test runs, not on a timer — every position they pass through is a reading.
- Four parallel connections, without which a fast line reports its window size divided by its round trip.
- Jitter reported on its own, because a fast connection that swings is worse for a call than a slow one that does not.
- The payload size is yours to choose, including a small one when the data costs you money.
- Reports which address the route used, which network you are on and which edge served the test — the conditions that decide what the figures mean.
- Real packet loss, counted by the server's own TCP stack rather than inferred from failed requests, and scoped to this run rather than to the connection's whole life.
Limits
- It measures to one CDN edge, not to wherever you are actually downloading from — treat it as a ceiling rather than a promise.
- The upload figure reads slightly low: a browser reports no progress on a request body, so the upload is sent as a run of smaller requests to have something real to show you, and each one costs its stream a round trip of waiting.
- Wi-Fi, a VPN or another device on the connection will all show up as a slower line, and none of them are the line.
- It moves real data. A 100 MB run costs 100 MB of whatever allowance you are on.
- Unlike every other tool here, the transfers leave your machine — they go to Cloudflare's public endpoint.
Frequently asked questions
Is the packet loss figure the same as a ping's?
No, and it is worth knowing the difference. A ping measures loss in both directions with its own packets; this counts the segments Cloudflare's server had to send a second time on the connections carrying your test, so it describes the path from the server to you. It is the direction that matters for downloads and for the sound of a call coming in, but it says nothing about loss on the way out.
What does a bad loss figure look like?
Lower than most people expect. TCP treats every lost segment as a sign of congestion and backs off, so the effect on throughput is far out of proportion to the fraction — around one percent is enough to hold a long-distance transfer well below what the line can do, and a couple of percent will break up a call. Anything under a tenth of a percent is ordinary and worth ignoring.
Why is this slower than my provider's own speed test?
Usually distance and the path. Your provider tests to a server inside its own network, which is the shortest path you will ever have; this tests to a CDN edge over the public internet, which is closer to what a real download does. If the gap is large, the difference is in the path between them rather than in either measurement.
Why is upload so much lower than download?
Most consumer connections are asymmetric by design — cable and DSL allocate far more capacity downstream, and a 10:1 ratio is ordinary. It only becomes a problem when you are the one sending: video calls, backups and large uploads all live on the smaller number.
Does the amount of data matter?
On a fast line, yes. TCP takes a moment to open its congestion window, so a 10 MB transfer on a gigabit connection is mostly measuring the ramp rather than the ceiling. Use a larger payload the faster the line, and a smaller one when the data is costing you.
Why does it say IPv6 when I expected IPv4?
Because that is the route your browser took. Where both are available a browser will usually prefer IPv6, and the two can behave differently enough to matter — a different path, a different set of intermediate networks, sometimes a tunnel. If a figure here disagrees with one from a tool that reached you over IPv4, that is a real difference rather than a measurement error.
The server is in another city. Does that explain my latency?
Check it against the distance row, which prints what that round trip costs at the speed of light through fibre. Distance is a floor nothing beats, and it is usually a small part of the total — a few hundred kilometres is a couple of milliseconds. If your round trip is many times the floor, the delay is in the path rather than in the gap.
Why does it use Cloudflare?
Measuring a connection needs something at the other end with bandwidth to spare, and it cannot be this page. Cloudflare publish endpoints for exactly this and every browser-based test uses them. The alternative would be serving the data from this application, which would make it both expensive to run and an obvious thing to abuse.
Related tools
- Ping (TCP) — Measure connection latency with repeated TCP probes
- What Is My IP — Your public address, and what a browser reveals about you
- Website Speed Test — Where a page's time goes and what it weighs
- HTTP Headers — Grade a site's security headers from A+ to F, see every response header, and get the fix for your server
- DNS Lookup — Resolve A, AAAA, MX, TXT, NS, CNAME, SOA and CAA records
- IP Lookup — Resolve addresses and reverse DNS for a host or IP
More Network & DNS tools
- DNS Lookup — Resolve A, AAAA, MX, TXT, NS, CNAME, SOA and CAA records
- IP Lookup — Resolve addresses and reverse DNS for a host or IP
- Port Checker — Test whether TCP ports accept connections
- Nmap Port Scanner — Scan a host's common TCP ports, Nmap style, and see what each open service says it is
- Ping (TCP) — Measure connection latency with repeated TCP probes
- What Is My IP — Your public address, and what a browser reveals about you
- WHOIS — Registry records for a domain, an IP address or an AS number
- DNS Propagation Checker — The same name asked of resolvers worldwide, and of the zone's own servers
- Email Authentication Checker — SPF, DKIM, DMARC and MX for a domain, read together
- Email Header Analyzer — The delivery path, the authentication results, and what a forgery looks like
- DKIM Lookup — A domain's DKIM keys, for a selector or by trying the common ones, and whether each is worth anything
- DMARC Lookup — A domain's DMARC policy, and what it actually asks receivers to do
- Reverse DNS Lookup — The PTR record for an address, and whether it confirms itself
- IP Blacklist Checker — Whether an address is on the blocklists that actually stop mail
- Reverse IP Lookup — What an address says about itself: its name, its certificate, its network
- Traceroute — Every hop between this server and a host, with the time each one took
- HTTP Headers — Grade a site's security headers from A+ to F, see every response header, and get the fix for your server
- Redirect Checker — Follow a URL's redirects hop by hop, and flag loops, downgrades and temporary redirects doing a permanent job
- IP Address Converter — Write an IPv4 or IPv6 address as an integer, hex, binary, expanded or mapped form, and see what kind it is
- MAC Address Lookup — Find the manufacturer behind a MAC address, and see what kind of address it is
- MAC to IP Converter — Build the IPv6 address a MAC forms with SLAAC, recover the MAC from one, or find a MAC's IP in an ARP table
- IP to MAC Lookup — Find the MAC address behind an IP: computed for multicast and EUI-64 addresses, or read from an ARP table
- DNSSEC Checker — Whether a domain's DNSSEC validates, and if not, whether it is the DS, a key, an algorithm or an expired signature