Testing Infrastructure
Our speed tests run on a dedicated server with a direct, high-speed internet connection. This ensures the bottleneck in each test is the VPN connection itself, not our own infrastructure.
| Component | Details |
| Test Server Location | Dedicated VPS with high-bandwidth connectivity |
| Speed Test Tool | Ookla Speedtest CLI (official command-line client) |
| VPN Protocol | WireGuard (via official Surfshark configs) |
| VPN Client | WireGuard for Windows (native kernel implementation) |
| Test Frequency | Continuous — all servers tested in rotation, 24/7 |
| Servers Tested | 142 Surfshark server locations across multiple countries |
How Each Test Works
Every speed test follows the same automated sequence to ensure consistency and fairness:
- VPN Connection: Our system connects to a Surfshark WireGuard server using the official configuration file. We verify the tunnel is active and that traffic is routed through the VPN by confirming IP connectivity and DNS resolution.
- Speed Test Execution: We run the Ookla Speedtest CLI, which selects the optimal test server and measures download throughput, upload throughput, ping latency, and jitter.
- Result Recording: The raw results (download Mbps, upload Mbps, ping ms, jitter ms, test server used, and pass/fail status) are logged to our database with a UTC timestamp.
- VPN Disconnection: The WireGuard tunnel is torn down cleanly before the next server is tested.
- Repeat: The system moves to the next server in the rotation and repeats. A full round through all servers takes several hours, then starts again immediately.
What We Measure
Download Speed (Mbps)
The rate at which data can be pulled through the VPN tunnel, measured in megabits per second. This is the most important metric for streaming, browsing, and downloading files.
Upload Speed (Mbps)
The rate at which data can be pushed through the VPN tunnel. Important for video calls, uploading files, and torrenting (seeding).
Ping / Latency (ms)
The round-trip time for a data packet to travel to the test server and back, measured in milliseconds. Critical for gaming, video calls, and any real-time application. Lower is better.
Jitter (ms)
The variation in ping over time. High jitter means an inconsistent connection, which causes stuttering in video calls and lag spikes in gaming. Lower is better.
Connection Reliability (%)
The percentage of test attempts that complete successfully. A test can fail if the VPN tunnel doesn't establish, if the speedtest times out, or if invalid results are returned. We report this metric transparently.
Note on reliability: Our connection reliability metric reflects automated test conditions, which are stricter than typical user experience. A server marked at 70% reliability doesn't mean it fails 30% of the time for regular users — it means 30% of our automated tests (which include edge cases like rapid connect/disconnect cycles and strict timeout thresholds) didn't complete. Real-world user reliability is typically higher.
How We Handle Failures
Not every test succeeds. We classify failures into several categories:
- VPN connection failure: The WireGuard tunnel did not establish within our timeout window (15 seconds). This can happen due to server load, network routing issues, or temporary outages.
- Connectivity failure: The tunnel established but could not reach the internet (ping or DNS check failed). This indicates a routing issue on the VPN side.
- Speed test failure: The tunnel was active but the Ookla CLI returned an error or timed out (90 second limit).
- Invalid results: The speed test returned zero or negative bandwidth values, which we discard as bogus data.
Failed tests are recorded in our database and count against the server's reliability metric. We do not exclude failures to make numbers look better. However, speed averages (download, upload, ping) are calculated only from successful tests to avoid skewing the numbers with zeros.
Data Integrity
- No cherry-picking: We publish averages across all successful tests, not just the best results. Peak speeds are shown separately and clearly labelled.
- No affiliate influence: Our testing infrastructure runs independently of any VPN provider. While we use affiliate links to fund operations, our testing code and data pipeline are fully automated with no manual intervention.
- Transparent failures: We show reliability percentages for every server. Servers with zero successful tests are filtered from public pages.
- Consistent methodology: Every server is tested with the same tool, same settings, same timeout thresholds. No server gets special treatment.
Limitations
We believe in being upfront about what our data can and cannot tell you:
- Single test location: Our tests run from one geographic location. Your speeds will differ based on your distance from the VPN server and your ISP's peering with the VPN provider's network.
- WireGuard only: We currently test only the WireGuard protocol. OpenVPN and IKEv2 speeds may differ (typically slower).
- Surfshark only (for now): We're starting with Surfshark and plan to expand to other VPN providers to enable direct comparisons.
- Server load variability: VPN speeds can vary by time of day due to server load. Our continuous testing captures this variability in the averages, but your individual experience at a specific time may differ.
Open Questions? Get in Touch
If you have questions about our methodology or want to suggest improvements, we'd love to hear from you. Transparency and accuracy are our top priorities.