Test your VPN's speed

A VPN sends your traffic on a detour and scrambles it on the way, so some slowdown is normal. How much depends on your own line, on the server and on the time of day. This page shows how to measure your own slowdown fairly, what the numbers mean, and how our lab measures the same thing.

Measure it fairly, by hand

You need a speed test, and the same one for every run. Use Cloudflare's speed test in your browser. It is Cloudflare's, not ours, and it shows download, upload and delay. If you would rather use a terminal, there is a one-line download test below. Don't mix the two: they read differently, so pick one and stay with it.

  1. Get a fair start. Use a cable to your router if you can; Wi-Fi changes from minute to minute and would blur the difference you are looking for. Close other downloads, backups, updates and video, and ask anyone else at home to pause.
  2. VPN off: run the test three times, one after another, and write down each result.
  3. VPN on: run it three times, to the same server every time. Pick one server, connect, wait until the VPN says it is connected, then run the test.
  4. Compare the middle runs, not the best ones. Sort each set of three and take the one in the middle (the median). One run can come out high or low by luck, and the middle one is steadier. Don't pick the best run from either set.
  5. Work out what you kept. Divide the VPN-on middle result by the VPN-off one. If the middle run is 80 with the VPN on and 100 with it off, you kept four fifths of your speed. (That is only to show the sum, not what to expect.)
  6. Do it again at another time of day, for example a morning and an evening, and with another server if you like, one server per set of runs. If the answers agree, you can trust them more.

From a terminal. This line downloads 50 million bytes from Cloudflare's speed server and prints your download speed in megabits per second. Run it three times with the VPN off and three times with it on, and compare the middle results as above. It works on macOS and Linux; on Windows use the browser test. It measures download only, over one connection, so it reads lower than the browser test does.

curl -s -o /dev/null -w "%{speed_download}\n" "https://speed.cloudflare.com/__down?bytes=50000000" | awk '{printf "%.1f Mbit/s\n", $1*8/1000000}'

What is a normal slowdown?

Some drop is normal. Your data takes a longer route, and it is scrambled at your end and unscrambled at the other. How much you lose depends on the things in the next section, so we promise no figure. A small or moderate drop is common. If you lose most of your speed, look at those things first (a faraway server, a busy hour, a weak line or Wi-Fi) before blaming the VPN, and try another server.

Sometimes a VPN-on run comes out faster than a VPN-off one. Runs vary, which is why we take three and use the middle one.

What changes the result

How our lab does it

It is the same idea, made automatic. Each of our nodes is a machine of ours on one internet line. About once a day it runs one download of 50 MB and one upload of 15 MB through each tunnel it holds, one connection each way, from Cloudflare's speed-test server near where the tunnel comes out. Just before each tunnel's test, it runs the same test on its own line, outside any tunnel. That is your VPN-off run: the node's own line is measured too, so a slow tunnel can be told from a slow line. The tables show the middle value of the tests over the last 7 days.

Don't compare our figures with yours in megabits. Ours are a fixed-size transfer from the node's own line, so they read differently from a test in your browser. Compare within one method: your VPN-off with your VPN-on, and one of our rows with the line beside it. The full details are in Methodology: the speed test, the baseline, and what a speed test does and does not show.

What our data shows

Our nodes measure the slowdown the same way, line first and tunnel second, and show each tunnel's download and upload in the node's table. Each node has its own table, because a figure depends on that node's line and on how far it is from each server. Open one already sorted by download (sorting puts one column in order and nothing else: it is not a ranking):

Each number has the checks behind it, one click away in its row, with the node's own line beside it. See also what each column means and the known limits.

Coming soon

Our own speed test, for your own connection with the VPN off and on, is coming to this page. Until then, the steps above use Cloudflare's.