Vorla / The Bench / Internet Speed Test

Internet Speed Test

Measure download throughput, latency and jitter against this site's own server — the measurement runs entirely in your browser, with no app and no third-party service, and it never uses more than 25 MB.

download mbps
download MB/s
latency median ms
jitter ms
0.0 / 25 MBdata used / cap
Rolling 2-second throughput
Latency — 20 tiny round trips (HTTP, not ICMP ping)
min ms
median ms
mean ms
p95 ms
failed
Upload

Not measured yet.

Result
No test has been run yet.

Source file: /bench/speed-test/payload.bin — checked when the test starts.

No microphone, camera, screen or location access. The test downloads a file from vorla.dev and times it; your results are calculated inside this page and are never uploaded or stored anywhere. The upload step sends 8 KB to a URL that does not exist, purely to find out whether this host would accept a POST at all.

How to run it, and how to read the result

  1. Get off Wi-Fi if you can. If you want to know what the line does, test on Ethernet. If you want to know what your laptop gets, test where you actually sit. They are different questions and they give different answers.
  2. Stop other traffic first. A game updating, a cloud sync, someone else streaming — all of it comes out of the same pipe and all of it shows up in this number.
  3. Press start and leave the tab in front. Background tabs get throttled, so the test stops itself if you switch away rather than reporting a number it collected while nobody was looking.
  4. Read the big number as Mbps, the small one as MB/s. They are the same speed: Mbps ÷ 8 = MB/s. ISPs sell megabits, download managers show megabytes, and that factor of 8 is the single most common misreading of any speed test. 100 Mbps is 12.5 MB/s, not 100.
  5. Check the latency block, not just the throughput. Median tells you the typical round trip, p95 tells you how bad the slow ones get, and jitter tells you how unevenly packets are arriving. For games and calls those three matter far more than the headline.
  6. Look at the stop reason. "estimate stable" means the test saw a steady number and quit early. "data cap" or "15 s limit" means it ran out of budget first — on a fast line that makes the download figure a floor, not a measurement.

What this test actually measures

The download figure is bytes delivered to this page, divided by wall-clock seconds. Three fetch() requests pull payload.bin at once and each response is read through response.body.getReader(), so every chunk is counted the moment it arrives. That is why the graph fills in progressively instead of appearing at the end: the number is a rolling two-second average, not one big division at the finish line.

The first ~600 ms of the run is thrown away. A fresh TCP connection starts in slow start with a tiny congestion window and doubles it every round trip; TLS costs another handshake; the CDN may need a moment to find the file. Measuring through that ramp would drag the result down by a third or more on a fast link. On a very fast link the opposite problem appears — 600 ms is most of the budget — so the warm-up also ends early once 5 MB have moved, whichever comes first.

"Three parallel connections" is not literally true over HTTP/2, and that matters. Cloudflare serves this site over HTTP/2 or HTTP/3, so the three requests are three multiplexed streams sharing one connection, not three independent TCP flows. More streams still means more data in flight and a fuller pipe, which is why one stream under-reports, but a native speed test opening six real sockets to a nearby server has a genuine advantage this page cannot match. The gap is usually small on a home connection and large on a very fast one.

The latency figures are HTTP round trips: a one-byte range request to a small file on this origin, twenty times, with two uncounted probes first so the connection and TLS session are already established. This is not ICMP ping. It includes the server finding and returning the file, and each probe carries a unique query string so nothing is served from a cache — which also means the CDN edge cannot answer from its own cache and a few milliseconds of lookup are baked in. Expect these numbers to sit slightly above what ping in a terminal reports against the same host, and to bear no relationship at all to the ping you see in a game, which is measured against a different server on a different path.

Jitter here is the mean absolute difference between consecutive round trips. If the probes come back at 14, 15, 14, 16 ms the jitter is about 1 ms; if they come back at 14, 60, 15, 70 ms it is around 45 ms even though the median barely moved. That second pattern is what makes a voice call sound like a robot while a speed test still reports a healthy number.

The 25 MB cap, and what it costs you. Bandwidth is not free — not for the person running the test on a metered phone, and not for the site serving the file. So this test stops at 25 MB, or 15 seconds, or as soon as the rolling estimate holds within ±5% for a second and a half, whichever comes first. A typical home connection settles long before any cap and uses 8–15 MB.

The arithmetic of that decision, stated plainly: after warm-up there are about 20 MB left to measure — 160 megabits. A 50 Mbps line gets a comfortable three-second window. A 160 Mbps line gets exactly one second. A gigabit line gets about 0.16 s, which is not enough time for the transfer to even reach full speed, let alone hold steady. So above roughly 150 Mbps this page reports a lower bound, and on a gigabit connection it will typically read somewhere between 300 and 700 Mbps on a line that is genuinely fine. The page flags this on screen when it happens rather than quietly printing the small number.

When the number looks wrong

Speed tests are diagnostic, not decorative. If the result is well below what you pay for, work down this list before calling the ISP — in practice the fault is almost never the line.

Latency and jitter matter more than the big number

Bandwidth decides how fast a large file finishes. Latency decides how quickly anything at all starts, and almost everything you do online is a long conversation of small messages rather than one big file.

Loading a page means a DNS lookup, a TCP handshake, a TLS handshake and then the request — four or more round trips before the first byte of content. At 15 ms that is invisible. At 150 ms the same page feels sluggish on a gigabit line, because the delay is in the waiting, not the transferring. Going from 50 to 500 Mbps changes nothing about that; halving the latency changes everything.

For games it is worse, because the game state is a stream of tiny updates. Throughput is irrelevant — a competitive shooter uses a fraction of a megabit — while every millisecond of round trip is a millisecond of the world being out of date. Jitter is the real killer: a connection that varies between 20 and 90 ms feels worse than a steady 90 ms one, because prediction and interpolation can absorb consistent delay and cannot absorb a moving target. Video calls behave identically; the jitter buffer either grows (adding delay) or gives up (dropping audio).

So the useful reading of this page is: is the download roughly what I pay for, is the median latency under about 40 ms, and is the jitter in single digits? If all three are true the connection is healthy and any remaining slowness lives somewhere else.

FAQ

Why is this slower than the speed my ISP advertises?

Advertised speeds are a ceiling for the line into your building, not a promise for one browser tab. Between that line and this page sit your Wi-Fi, your router, the CPU decrypting TLS, the path to the CDN edge that serves the file, and everything else on your network using bandwidth right now. A result 10 to 20 percent under the advertised number on Wi-Fi is normal. A result at a third of it usually means Wi-Fi, not the line.

How much data does this test use?

At most 25 MB, and usually far less. The download stops as soon as the rolling estimate holds steady within 5 percent for a second and a half, so a typical run on a home connection transfers 8 to 15 MB. The latency probes add about 20 requests of a single byte each. The page shows exactly how much it used when the run ends.

What counts as a good ping and jitter for gaming?

Under 30 ms round trip feels instant, 30 to 60 ms is fine for almost everything, and over 100 ms starts to hurt in shooters and fighting games. Jitter matters just as much: under 5 ms is good, over 20 ms means packets are arriving in bursts and no amount of bandwidth will make the game feel smooth. Remember that this page measures the round trip to a CDN edge near you, not to the game server you actually play on.

Why can this page not measure my upload speed?

Measuring upload needs a server that will accept a POST and read the whole body. Vorla is static hosting, so it answers a POST with an error and there is nothing to time. The page tries anyway and tells you it failed rather than inventing a number, because an upload figure derived from a rejected request would be fiction.

Why does a browser speed test give a different number to a native app?

A native test opens several real TCP connections, often to a server picked for being close to you, and it does not pay for TLS inside a JavaScript engine. This page fetches one file over three HTTP/2 streams that share a single connection, decrypts it in the browser, and counts the bytes the page actually received. That is a fair measure of what a web page can pull, which is what most people care about, but it reads lower than a tuned native test on a fast line.

The test says my connection is fast but everything still feels slow. Why?

Throughput is only one of three numbers. Latency decides how long anything takes to start, jitter decides whether calls and streams stutter, and packet loss decides whether they stall completely. A 500 Mbps line with 120 ms of latency feels worse for browsing and gaming than a 50 Mbps line with 15 ms. If throughput looks fine and the internet still feels bad, look at the latency and jitter figures, and at whatever else on your network is saturating the upload.

Related tools