About this tool
Get fast and accurate speed test results for your network.
The Internet Speed Test measures your connection from inside the browser using the Fetch API and performance.now(), with no app to install and no account. Download speed is measured by opening four parallel streams to picsum.photos with caching disabled, counting bytes as they arrive through the response's ReadableStream reader, then dividing total bits by elapsed seconds. Upload is measured by generating 1 MiB of random bytes locally and POSTing them as multipart form data to httpbin.org, timed the same way. Latency is a single cache-busting request timed round-trip, and the whole run — ping, then download, then upload — can be cancelled mid-test with an AbortController.
Open Internet Speed Test on AltFTool — it loads instantly in your browser.
Press "Start Test" — there is nothing to install, sign up for, or configure first.
The tool measures latency, runs four parallel downloads with caching disabled, pauses briefly, then uploads 1 MiB of locally generated random data.
Read download and upload in Mbps and ping in ms on the summary card, then press "Test Again" to rerun — or "Stop Test" to cancel mid-run.
One button returns all three numbers — receive speed in Mbps, send speed in Mbps, and round-trip latency in milliseconds — instead of only a headline download figure.
A single connection under-reports on fast links because of TCP slow start, so the download test opens four simultaneous requests to push the connection harder before timing it.
It is plain JavaScript on the page you are already on — no signup, no app, no extension, and no result history: the numbers live in the page and clear when you reload.
The Stop button aborts every in-flight request immediately through an AbortController, so a test on a slow or metered connection never has to run to completion.
Press Start Test — that is the whole process. The tool measures latency first, then downloads four 2000×2000 images in parallel with caching disabled to measure download speed, pauses half a second, then uploads 1 MiB of generated data to measure upload speed. There is no signup, no payment, and nothing to install.
Mostly three reasons. First, the result is calculated by dividing by 1024×1024 rather than 1,000,000, which makes the displayed figure about 5% lower than the decimal megabits ISPs quote. Second, it is a short burst of four downloads, so TCP slow start and the TLS handshake are counted inside the elapsed time and drag the average down on fast links. Third, the ceiling is whichever is slower — your connection or the image CDN the test pulls from.
It is the round-trip time in milliseconds of one cache-busting HTTP request, measured with performance.now() and rounded to a whole millisecond. Browsers cannot send ICMP packets, so this is HTTP latency rather than a true ping, and it usually reads a little higher than the ping command in a terminal because DNS lookup and connection setup are included.
No files and no personal data. The upload test creates 1 MiB (1,048,576 bytes) of random values with Math.random inside your browser and posts that throwaway payload — nothing from your device is read or sent. Results are not saved to an account or a server; they exist only in the open page and disappear when you reload it.
It depends on what you are doing, not on a single number. HD streaming and video calls generally need only a few Mbps, 4K streaming is typically quoted around 15–25 Mbps, and a household with several simultaneous streams wants considerably more. As a visual reference, the download gauge on this tool fills completely at 100 Mbps.
Yes — it measures the whole path from your device to the internet, so Wi-Fi is included in whatever you see. To tell Wi-Fi apart from your broadband line, run the test once over Wi-Fi and once on an Ethernet cable, or once beside the router and once in the far room; the gap between the readings is the wireless part.
Two things are usually at play. Most consumer broadband is asymmetric by design, so the upload line is genuinely slower than the download line. On top of that, the upload test sends only 1 MiB, and a transfer that short spends a large share of its time in connection setup and TCP ramp-up — which means a very fast upload link will be under-reported here.
Check whether an ad blocker, corporate firewall, VPN, or an offline connection is blocking the test's requests. When a request cannot complete, the reading you see will not reflect your real connection, so allow the domains the test calls and run it again. You can also press Stop Test at any point to cancel a run in progress.