Error message

  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /home/cay45lq1/public_html/includes/common.inc).
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /home/cay45lq1/public_html/includes/menu.inc).

Feed aggregator

New forum topics

As a PC gamer priced out of gaming laptops and PCs, these are the must-have PC gaming handhelds to get this Christmas

TechRadar News - Thu, 12/18/2025 - 10:37
RAM price rises are causing gaming laptops and PCs to get more expensive, but these gaming handhelds offer excellent, more affordable, alternatives.
Categories: Technology

Amazon's Fallout characters are coming to Call of Duty: Black Ops 7 and Warzone Season 01 Reloaded

TechRadar News - Thu, 12/18/2025 - 10:16
Microsoft has announced a new Fallout crossover that will see the Amazon TV series characters added to Call of Duty: Black Ops 7 and Warzone.
Categories: Technology

Having Windows app issues? Microsoft is making businesses reach out directly to get a fix

TechRadar News - Thu, 12/18/2025 - 10:05
The December 2025 Patch Tuesday update broke a few things - and the fix is not yet done.
Categories: Technology

Nimble CRM review 2026

TechRadar Reviews - Thu, 12/18/2025 - 10:04

NimbleCRM is an affordable contact management platform laser-focused on helping small businesses and solo entrepreneurs generate leads and nurture client relationships. While it lacks some of the advanced reporting and customization of enterprise CRM platforms, Nimble compensates with an array of unique prospecting tools I haven't seen in competing products at this price point.

Some highlights include a mobile app that scans and captures contact details from business cards, a browser plugin to find social media profiles and professional info for contacts, email signature parsing to automatically update CRM records, and a "prospector" feature to extract contact information from company websites.

The modern and intuitive interface centers around a customizable dashboard displaying deal pipelines, messages, events, and social network updates. A unified inbox provides two-way sync with Office 365/Outlook or Google Workspace to manage all client communications. Nimble's cheapest plan starts at $19/user/month and offers a generous 25,000 contacts and 2GB storage per user.

Nimble CRM core capabilities

(Image credit: Nimble CRM)

Nimble CRM offers a comprehensive set of core functionalities that address the essential needs of businesses for efficient contact management, sales pipeline tracking, task and activity management, and workflow automation.

Its intelligent contact manager automatically gathers and consolidates contact information from various sources, such as email, social media profiles, and business apps, into unified contact records. This enables users to easily access and manage extensive information about their contacts in one place.

I also found Nimble's task and activity management capabilities to be quite robust. Users can create, categorize, and sort tasks, and associate them with specific contacts for added context. The visual Kanban-style interface of the Workflows feature is great for project and process management, allowing teams to map out processes, identify bottlenecks, and optimize workflows.

For sales teams, Nimble Deals provides an effective way to manage opportunities through the sales pipeline. Deal stages can be customized to align with the business's unique sales processes. Nimble also delivers powerful sales analytics and reporting, with multiple custom dashboards, in-depth reports, and the ability to track individual and team performance. This enables sales forecasting and data-driven decision-making.

Another strength of Nimble is its mobile app for iOS and Android. It provides core CRM functionalities on the go, allowing users to access contact details, track deals, and stay on top of tasks while out of the office. Recent enhancements have further improved the mobile experience.

While Nimble checks the boxes for essential CRM capabilities, it could improve certain areas to be even more compelling. For example, the platform would benefit from deeper customization options for its reporting and stronger native integrations with a wider range of third-party business apps. But overall, Nimble provides a solid and affordable CRM solution, especially for small businesses and sales teams.

How easy is Nimble CRM to use?

(Image credit: Nimble CRM)

When I first logged into Nimble CRM, I was immediately struck by its modern, clean, and intuitive interface. For a feature-rich CRM with multiple modules, the layout felt accessible and easy to navigate from the get-go.

Nimble provides helpful new user onboarding that walks you through every step of the setup process. This made learning the ropes a painless experience, as the onboarding helps familiarize you with the key features and layout in a guided way. I felt I was able to start using the core functionality confidently in a short amount of time.

Customization is another area where Nimble shines in the user experience department. You can create multiple sales pipelines tailored for different needs, audiences or teams. Kanban-style pipeline views enable dragging and dropping deals visually through stages. Dashboards are able to surface the data and insights most relevant to your role.

Nimble offers mobile apps for iOS and Android, making it convenient to access contact records, communication history, deals, and tasks while on the go. Based on the easy learning curve I encountered, it seems realistic that a new user could get comfortable with the key features and workflows within a few hours to a couple of days max.

All in all, I'd say ease of use is one of Nimble's greatest strengths. The clean UI, helpful onboarding, and customization options make it an accessible yet powerful solution for users of varying technical comfort levels. The ability to get up and running quickly is a huge asset for busy sales and marketing teams.

Nimble CRM integrations

Nimble CRM offers a wide range of integrations and connectors to make it easy to sync data with other apps and services. The Nimble Marketplace lists over 120 pre-built integrations with popular business tools like Google Workspace, Microsoft 365, Slack, Mailchimp, Zapier, HubSpot, QuickBooks, and others.

I was also pleased to find that Nimble has direct integrations with iPaaS providers Zapier and Make. This opens up the possibility to connect Nimble with thousands of other apps not available natively. Setting up integrations via Zapier or Make is straightforward, only requiring your login credentials.

For custom integrations, Nimble provides a well-documented REST API. The API lets developers access most of the core Nimble data and functionality. However, it appears API access is not enabled by default, and admins need to explicitly allow it for each user account, which could be a hassle for larger teams.

In my experience testing some of the key integrations, like Google Contacts and Microsoft 365 calendar sync, the data syncing has been reliable with no noticeable lags or errors. Performance seems solid, even with a large number of records.

One area I think Nimble could improve is providing more fine-grained controls and filters for syncing. Currently, it's largely all-or-nothing. The ability to limit which fields get synced or filter records based on criteria would add flexibility.

How good is Nimble CRM's customer support?

While it provides some helpful support options, NimbleCRM's user reviews indicate that the overall quality and effectiveness of their customer support is mixed.

According to Nimble's website and third-party reviews, email is the main support channel, available Monday through Friday from 9 am-5 pm PT. They also offer phone support during those same hours. A chatbot is available for submitting requests, but it is not a true live chat.

Self-service resources include a knowledge base and support community. However, the depth and usefulness of these resources are unclear based on the information I could find.

One point of frustration for some users is the lack of 24/7 support or live chat, which many consider essential for a paid CRM. Support hours are limited to standard business hours in the Pacific time zone.

That said, a few reviewers reported positive experiences with support responsiveness. One reviewer noted that they received an email response and resolution within an hour of submitting a ticket after hours. They also got immediate responses via Twitter.

Other users praised the support as "solid and high quality" and noted "responsive customer support with less wait time." However, the average first response and resolution times are not published anywhere that I could find.

On the flip side, some reviewers were less impressed, with one saying that "customer support could be better." Another described it as just "fine," noting it sometimes took a full day to get a response.

So while Nimble does offer a few different support channels and has some fans of their service, support hours are limited, 24/7 live channels are lacking, and quality seems hit-or-miss based on user sentiment. There's definitely room for improvement in Nimble's customer care.

Nimble CRM plans and pricing

Plan

Business

Price

$24.90/user/month

Best For

Small to medium businesses prioritizing relationship management and social selling

Features

25,000 contact records

Customizable pipelines

Automated workflows

Limitations

2GB storage per user, no 24/7 support

Nimble keeps its pricing structure simple and straightforward, offering a single plan at a flat per-user rate. The Business plan is priced at $24.90 per user per month when billed annually, or $29.90 per user per month if you opt for month-to-month billing. That represents a savings of over 15% if you commit to a yearly subscription upfront.

For the price, each user gets access to Nimble's full set of CRM features, along with a generous 25,000 contact record limit and 2GB of storage per user. Should you hit the storage ceiling, additional space can be tacked on in 10GB increments at $10 per month, prorated for the remainder of the current billing period.

I appreciate that Nimble doesn't nickel and dime customers with complex pricing tiers or hidden fees. The only variables impacting your monthly cost are the number of user licenses and any extra storage you might need. Nimble simply charges a prorated amount for additional licenses or upgrades made mid-cycle.

It's also worth noting that Nimble doesn't require an annual contract or commitment. You can go the monthly route and cancel anytime if the platform doesn't meet your needs or your team size changes. Although the annual discount is attractive if you're confident Nimble is the right long-term CRM solution for your business.

For anyone on the fence, Nimble does provide a 14-day free trial to test drive the software risk-free. No credit card information is required. It's not as generous as the 30-day trials offered by some competitors, but two weeks is ample time to assess if the feature set justifies the expense.

All in all, while Nimble's entry point isn't the cheapest compared to some barebones entry-level CRM plans on the market, the pricing is reasonable considering its robust capabilities. Growing businesses that want to streamline sales and marketing on a single platform without breaking the bank will find Nimble's predictable, all-inclusive pricing appealing. Just be mindful of potential storage costs if you anticipate maintaining a large database of detailed customer records.

Nimble CRM review: Final verdict

After spending time testing and evaluating NimbleCRM, my overall impression is that it provides a solid set of core features at an affordable price point. It particularly excels at contact management, with helpful tools to aggregate contact data from various sources into unified records.

Nimble's visual deal pipeline and task management functionalities are intuitive and effective for keeping sales processes on track. The ability to customize deal stages and dashboards allows aligning the software to unique business needs.

I was also impressed by Nimble's mobile apps, which enable accessing key customer data and features on the go. The interface is modern and user-friendly across devices.

While it delivers essential capabilities, certain areas could still be enhanced. Reporting customization options are somewhat limited compared to higher-end CRM solutions. Some users might also wish for a wider breadth of out-of-the-box integrations.

But for small businesses and teams wanting an accessible yet fully featured CRM at a reasonable cost, Nimble is a compelling option. Its strengths in contact management, deal tracking, and mobile access make it well-suited for entrepreneurs and SMBs looking to foster sales growth and deepen customer relationships without undue complexity.

Categories: Reviews

Worried about ransomware? IDrive launches new Salesforce Backup tool for greater data protection

TechRadar News - Thu, 12/18/2025 - 10:01
One of our favorite cloud backup providers is launching a new solution for Salesforce safeguarding.
Categories: Technology

One Moment Changes Everything in This Holiday Classic Streaming on Hulu

CNET News - Thu, 12/18/2025 - 10:00
When a medical diagnosis changes everything for a store clerk, she decides to do everything she was always afraid to do.
Categories: Technology

How to watch Sports Personality of the Year 2025 — stream SPOTY free from anywhere

TechRadar News - Thu, 12/18/2025 - 10:00
With Hannah Hampton, Chloe Kelly, Ellie Kildunne, Luke Littler, Rory McIlroy and Lando Norris on the SPOTY shortlist, here's how to watch Sports Personality of the Year 2025.
Categories: Technology

We Had a Poke Around ChatGPT's New App Store. Here's What We Found

CNET News - Thu, 12/18/2025 - 09:55
After a call for app submissions from developers, ChatGPT's beta app feature has arrived.
Categories: Technology

Meta Quest 3S slashes price to £249.99! A perfect last-minute Christmas VR gift

TechRadar News - Thu, 12/18/2025 - 09:33
Meta Quest 3S slashes price to £249.99! A perfect last-minute Christmas VR gift
Categories: Technology

5 things businesses and users should remember when using AI chatbots

TechRadar News - Thu, 12/18/2025 - 09:20
Businesses and users overlook hidden risks in chatbot conversations. These five reminders keep AI use safer.
Categories: Technology

Auto giant LKQ says it's the latest firm to be hit by Oracle EBS data breach

TechRadar News - Thu, 12/18/2025 - 09:05
Cl0p claimed to have breached LKQ, but the attack was confirmed only recently.
Categories: Technology

Quordle hints and answers for Friday, December 19 (game #1425)

TechRadar News - Thu, 12/18/2025 - 09:00
Looking for Quordle clues? We can help. Plus get the answers to Quordle today and past solutions.
Categories: Technology

NYT Connections hints and answers for Friday, December 19 (game #922)

TechRadar News - Thu, 12/18/2025 - 09:00
Looking for NYT Connections answers and hints? Here's all you need to know to solve today's game, plus my commentary on the puzzles.
Categories: Technology

NYT Strands hints and answers for Friday, December 19 (game #656)

TechRadar News - Thu, 12/18/2025 - 09:00
Looking for NYT Strands answers and hints? Here's all you need to know to solve today's game, including the spangram.
Categories: Technology

The best laptop deal right now isn’t from Dell or HP - it’s this $430 Intel i9-12900H beast

TechRadar News - Thu, 12/18/2025 - 08:52
Core i9-12900H powered Hasee X5 15.6 laptop is just $429.99 - a massive $370 off its usual price.
Categories: Technology

Headphone Conversation Awareness Mode: How It Works and Why You Need It

CNET News - Thu, 12/18/2025 - 08:23
Taking off your headphones for a quick chat is practically Stone Age. Try conversation awareness mode to make things more seamless and truly hands-free.
Categories: Technology

Surfshark VPN review – a fully-featured, low cost privacy solution

TechRadar Reviews - Thu, 12/18/2025 - 08:18
How we tested Surfshark

There are two parts to our Surfshark review testing: lab testing and real world user experience. We do this to combine objectivity and subjectivity in our VPN reviews.

When I talk about “we” in this review, I’m referring to how Surfshark has performed in our VPN lab testing, as undertaken by TechRadar’s VPN Technical Editor, Mike Williams.

When I say that “I” did something in this review, I’m referring to me, Dan Sung, Editor in Chief of VPN at TechRadar, and I’m offering real world examples and insights from what I’ve learned using this product over many months.

Read more about our Surfshark testing methodology below▼

Surfshark review scores

Below is a breakdown of our Surfshark review scores for each category of testing. Click on the links in the Comments column for a deeper read on our thoughts.

Category

Score

Comments

Total

85 / 100

Excellent value with plenty of feature choice. One of the best value VPNs available. Read more ▼

Price plans & value

10 / 10

Surfshark is the best cheap VPN available. Choose the Surfshark One tier, which includes a full antivirus product, for the best value price plan. Read more ▼

Features

10 / 10

Surfshark’s Alternative ID fake profile feature is one of many useful in-app products in this very well put together VPN. Read more ▼

Server network

9 / 10

Surfshark is slightly lower on server locations than some but its global reach is excellent and the Nexus infrastructure brings huge network benefits. Read more

Read all of Surfshark's review scores ▼

Privacy

9 / 10

Surfshark has very high standards of privacy and extensive privacy features. This is only slightly tarnished by its choice of jurisdiction. Read more ▼

Security

9 / 10

Surfshark scores well for security thanks to its built-in antivirus and its near-flawless kill switch. Its PQE could be more developed though. Read more ▼

Speed

8 / 10

Still the fastest VPN at full tilt but the connection is less consistent than others, and speeds are more average using distant servers. Read more ▼

Unblocking streams

7 / 10

Surfshark unblocks Netflix libraries, Disney Plus, Prime Video and BBC iPlayer but it struggles with some niche streaming services where rival VPNs don't. Read more ▼

P2P & Torrenting

4 / 5

Torrenting is solid and seamless with Surfshark but there's no help from the company itself on how to do it. There's no port forwarding either. Read more ▼

Apps & Compatibility

5 / 5

Surfshark has excellent apps covering all modern platforms. Its iOS app is uncommonly good; iPhone users should definitely consider Surfshark. Read more ▼

Usability

4 / 5

Surfshark is easy on the eye and a pleasure to use. Any quibbles we have on the kill switch toggle are really very minor. Read more ▼

Accessibility

2 / 5

Surfshark is a reasonable choice for partially sighted users but there are better VPNs for accessibility. Language support is average and keyboard-only access is poor. Read more ▼

Customer support

4 / 5

Surfshark has excellent customer service. Its support site is one of the best out there its live chat and email channels bring timely solutions. Read more ▼

Track record

4 / 5

Surfshark has a clean record for data breaches. It passed a no-logs audit in 2025 but that ought to be repeated annually, and we'd like apps and infrastructure audits, too. Read more ▼

Surfshark price plans
  • Surfshark starts at $1.99 per month and is the best cheap VPN.
  • Surfshark One is the best value of the three plans.
  • Surfshark is the only premium VPN company with a 7-day free trial.

Surfshark starts at $1.99 per month, which is an excellent price for a top VPN, but there are actually three different Surfshark plans to choose from – Starter, One and One+.

You can sign up for just 1 month, 1 year or 2 years. Obviously, the longer you commit to, the cheaper the price you can get.

Whichever you choose, you get unlimited device connections, i.e. you can install a Surfshark app on as many different devices as you like on a single Surfshark account. There is a fair usage policy you can read on this but you'll be fine with 10-15, or even more devices, unless they’re all on, constantly, and downloading all the time.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1765978796712-v2uzgy70t *, #fv-chart-1765978796712-v2uzgy70t *:before, #fv-chart-1765978796712-v2uzgy70t *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1765978796712-v2uzgy70t { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1765978796712-v2uzgy70t { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1765978796712-v2uzgy70t .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1765978796712-v2uzgy70t .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.25rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1765978796712-v2uzgy70t .fv-chart-subhead { font-size: 1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1765978796712-v2uzgy70t .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1765978796712-v2uzgy70t .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1765978796712-v2uzgy70t .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1765978796712-v2uzgy70t .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1765978796712-v2uzgy70t .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1765978796712-v2uzgy70t .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1765978796712-v2uzgy70t .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1765978796712-v2uzgy70t .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1765978796712-v2uzgy70t .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1765978796712-v2uzgy70t .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1765978796712-v2uzgy70t .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-row, #fv-chart-1765978796712-v2uzgy70t .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1765978796712-v2uzgy70t .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1765978796712-v2uzgy70t .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1765978796712-v2uzgy70t .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1765978796712-v2uzgy70t .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1765978796712-v2uzgy70t .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1765978796712-v2uzgy70t .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1765978796712-v2uzgy70t .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-bar-row, #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-stacked-product, #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-bar-label, #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-bar-container, #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1765978796712-v2uzgy70t.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1765978796712-v2uzgy70t .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-row, #fv-chart-1765978796712-v2uzgy70t .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-bar-container { width: 100% !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1765978796712-v2uzgy70t .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1765978796712-v2uzgy70t .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1765978796712-v2uzgy70t .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1765978796712-v2uzgy70t.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "Total cost of cheapest 2-year plan", "description": "All prices (from December 2025) are before tax", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2025-12-17T13:39:56.712Z", "citation": "Surfshark showing its credentials as the best cheap VPN.", "keywords": [ "NordVPN Basic", "Surfshark Starter", "ExpressVPN Basic", "Proton VPN Plus", "Total price", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "NordVPN Basic – Total price", "value": 80.73, "unitText": "USD" }, { "@type": "PropertyValue", "name": "Surfshark Starter – Total price", "value": 53.73, "unitText": "USD" }, { "@type": "PropertyValue", "name": "ExpressVPN Basic – Total price", "value": 97.72, "unitText": "USD" }, { "@type": "PropertyValue", "name": "Proton VPN Plus – Total price", "value": 71.76, "unitText": "USD" } ]} Total cost of cheapest 2-year plan

All prices (from December 2025) are before tax

Total price NordVPN Basic 80.73 Surfshark Starter 53.73 ExpressVPN Basic 97.72 Proton VPN Plus 71.76 0255075100 USD Total price Data ProductValue (USD) NordVPN Basic 80.73 Surfshark Starter 53.73 ExpressVPN Basic 97.72 Proton VPN Plus 71.76 Surfshark showing its credentials as the best cheap VPN. (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1765978796712-v2uzgy70t'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1765978796712-v2uzgy70t not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("All Charts" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "All Charts" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var placeholderSubhead = "Subhead to describe the test and what's being measured and why"; var placeholderCaption = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var globalSubheadJSON = "All prices (from December 2025) are before tax"; var globalCaptionJSON = "Surfshark showing its credentials as the best cheap VPN."; var globalSubhead = globalSubheadJSON === placeholderSubhead ? '' : globalSubheadJSON; var globalCaption = globalCaptionJSON === placeholderCaption ? '' : globalCaptionJSON; var subheadOverrides = {}; var captionOverrides = {}; var chartInfo = [{"id":"bar-Total price","title":"Total price"}]; var captionOverrideKeys = Object.keys(captionOverrides); var singleCaptionOverrideValue = captionOverrideKeys.length === 1 ? captionOverrides[captionOverrideKeys[0]] : null; if (singleCaptionOverrideValue === placeholderCaption) { singleCaptionOverrideValue = ''; } function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) { var subheadContent = (subheadOverrides[activeChartId] !== undefined) ? (subheadOverrides[activeChartId] === placeholderSubhead ? '' : subheadOverrides[activeChartId]) : globalSubhead; subheadEl.innerHTML = subheadContent; } if (captionEl) { var captionContent; if (captionOverrides[activeChartId] !== undefined) { captionContent = captionOverrides[activeChartId] === placeholderCaption ? '' : captionOverrides[activeChartId]; } else if (singleCaptionOverrideValue !== null) { captionContent = singleCaptionOverrideValue; } else { captionContent = globalCaption; } captionEl.innerHTML = captionContent; var captionContainer = captionEl.closest('.fv-footer-content'); if (captionContainer) { var hasContent = captionContent && captionContent.trim() !== ''; var shouldShow = hasContent || (captionContainer.parentElement && captionContainer.parentElement.querySelector('.fv-logo')); if (captionContainer.parentElement) captionContainer.parentElement.style.display = shouldShow ? 'flex' : 'none'; captionContainer.style.display = hasContent ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

Read more about Surfshark's price plans ▼

Even so, this unlimited connections policy is rare among the top VPNs and, for many, a good reason to choose it if you find the 10 device connections of NordVPN, ExpressVPN and Proton VPN, for example, not enough for your needs.

Like all VPNs, though, you do have to pay the total price for the entire length of and Surfshark plan upfront. The graph below is a good comparison of the total cost of each of the best VPN services we recommend at TechRadar.

Do be warned that unlike all other VPN companies (apart from NordVPN) Surfshark adds local tax to its advertised prices at checkout. So, if you’re in the UK, for example, you’ll have to pay VAT on top. And, of course, remember that these prices will fluctuate over the year.

Total price of each Surfshark plan (without tax)

Surfshark Starter

Surfshark One

Surfshark One+

1-month total price

$15.45

$17.95

$20.85

1-year total price

$47.85

$50.85

$94.35

2-year total price

$53.73

$61.83

$113.13

Surfshark is considerably cheaper than its biggest rivals. NordVPN’s cheapest 2-year plan is about 50% more expensive than Surfshark's. ExpressVPN Basic is nearly twice the price!

Normally, Proton VPN is comparable with NordVPN but there's an excellent Black Friday Proton VPN deal on right now which brings the price right down to Surfshark's level, making a very tempting offer.

The table above shows the total prices for each Surfshark tier and plan length.

What sticks out to us from these totals are two things. First is that the 1-month prices are terrible. Given Surfshark has a 7-day free trial, we’d advise you to sign up for a week instead and decide in that time if you want to commit for longer. Then either go for the one or two-year plan.

The second, and more obvious, point on value is that the two-year plans are pretty tempting. You get the second year of Surfshark Starter, for example, for less than $10. That’s pretty compelling at that band but, arguably, it’s not quite as good for Surfshark One with the extra year only effectively half-price.

Per month cost of the three Surfshark plans

Surfshark Starter

Surfshark One

Surfshark One+

1-month price

$15.45/month

$17.95/month

$20.85/month

1-year price

$3.19/month

$3.39/month

$6.29/month

2-year price

$1.99/month

$2.29/month

$4.19/month

In other words, there's little point in going for 1-year Starter plan when the 2-year version isn't much more, but there's a decent argument for only shelling out for 12 months of Surfshark One.

If you’re looking for a real value proposition, though, it’s in the difference between Surfshark Starter and Surfshark One on the 1-year contract – just a couple of bucks, really which feels like a real no-brainer. There’s no point in going for the 1-year Starter when you can pick up Surfshark’s antivirus and ID breach alerts with the One plan instead.

Above is a table of the price per month for each Surfshark plan which is a slightly easier way to appreciate the value offer of each one.

There are cheaper VPNs out there – PrivadoVPN ($1.11) is a good option – but Surshark is an undeniable pound-for-pound sweet spot for price and features.

Score: 10/10

Features: What can Surfshark do?
  • Alternative ID is a superb email and postal address protection tool.
  • Surfshark is one of very few VPNs with a full antivirus included.
  • ID breach alerts didn't spot my leaked credit card information.

Don’t be fooled by the price. Surfshark Starter is a very well stocked bundle.

Alongside the VPN product itself, the most significant feature is CleanWeb. It’s a catch-all name for Surfshark’s advert and cookie consent pop-up blocking system which aims to allow you to surf the web in relative peace.

I've used similar systems from competitors, like NordVPN’s Threat Protection and Proton VPN’s NetShield. You can read more about CleanWeb in the Privacy section of this review.

Margarito Philip Leland – my Surfshark Alternative ID profile. Easy to edit. Ready to copy and paste. Available on all Surfshark plans. (Image credit: Future Publishing)

Alternative ID is an important feature to pay attention to. Other VPN providers, such as Proton VPN, offer fake email addresses that will front for your own while still allowing emails to get through.

Read more about Surfshark's features ▼

You get a randomly generated email address – to use to fill out online forms, or give to people you don’t like, or whatever your need – and it automatically forwards any mail it receives to your real email address. You then cut it off and generate another email alias when you’re done with receiving whatever marketing mail it’s now attracted.

Proton offers this too but Surfshark takes it further.

Alternative ID is, in fact, a broader ID. It’s a name, postal address, email and even phone number (US only) to plug in online and stop scammers, spammers, and everyone else seeing your real details.

Right now, for example, I’m Margarito Philip Leland of 21 North 28th Ave East, Duluth, Minnesota, DOB 07/26/2005. Don’t bother trying to contact me because I’ll have ditched this ID by the time you're reading this article.

Surfshark Starter

Surfshark One

Surfshark One+

VPN

Ad blocker

Cookie pop-up blocker

Alternative ID

Search

Web content blocker

ID breach alerts

Antivirus

Incogni data removal

I had a go at manually editing my Alternative ID persona. There are 10 email domains to choose from with options from the US, France, South Korea and Armenia, but I found I could write anything I wanted as the first part of the address.

For postal mail, the options I got were Australia, Brazil, Denmark, Germany Portugal and the US. Name and DOB can both be anything you want.

It's a great feature for signing up to services, giving to online stores and registering with news websites without having to worry about the spam. There's a handy quick-copy area on the homepage of the Surfshark app too which made filling in online forms all the faster. There's really very little not to love about it.

The only sad part is that the Alt number part is only in beta right now. It’s also only available in the States and you can’t use it to receive SMS verification codes, sadly, either. Still, I look forward to testing it out once it arrives in Europe.

Surfshark One

If you’re after antivirus too, then it’s time to step up to Surfshark One. PIA is the only other VPN we recommend to have a full antivirus built-in along with the VPN. (Although there are recognise AV brands, like Norton and Bitdefender, that also have separate VPN products.)

NordVPN's Threat Protection Pro does have some AV features but it won't scan any apps and files you download, install and use in real-time – and put a halt to any funny business before it’s too late – like Surfshark will.

The Surfshark antivirus ran daily scans of my entire device when I enabled it, and you can set to have it done at any time of day of your choosing. For obvious reasons, I opted for the dead of night.

You can toggle off either of these scans and you can even opt out of scans of your storage drives too.

None of these put our mobile battery life under any particular noticeable stress. With the real-time protection only kicking in when we installed apps and our daily scan set to night time when the phone was plugged in anyway, the extra processes were never a burden.

The clean look and feel of Surfshark Search – no sponsored links, no ads, just the search results you're looking for. Available with Surfshark One and One+. (Image credit: Future Publishing)

You can select to exclude certain apps if they keep pulling up false positives but it wasn't something I found I needed to do.

Surfshark One allows you to take the CleanWeb theme a little further with the Web Content Blocker tool, launched in October 2025. Still in beta, it still worked like a charm when I tried it.

It's very similar to Windscribe's content blocker. You choose from a list of eight different kinds of questionable content and decide what you don't want to be accessible through your browser. That includes adult sites, gambling, tobacco and vaping, hate and profanity, and others, as well as sites hosting phishing, scams, and malware.

What's really nice is that I was able to use it as a way of blocking access to these sites on my kids' phones without having to get involved with the often expensive and generally not particularly parental control apps.

That works because Web Content Blocker can be set up differently for each device you have and because you get unlimited devices connected to a single Surfshark account. I also really like that you don't have to have the VPN on to have Web Content Blocker activated, because I don't want the VPN masking my kids' browsing habits from me either.

The menu of content you can prevent access to with Surfshark's new web content blocker tool. (Image credit: Future Publishing)

Lastly, and definitely not least, is Surfshark’s own private search engine. It's a super-clean, advert and sponsored results-free experience. Apart from the fact that it didn’t rank TechRadar very high for the term ‘Surfshark review’, I loved using it.

you can search without seeing a single ad, with no cookies or trackers, and Surfshark promises that it won't store anything about your search habits

You can choose any search location you like from a list of about 40 different countries without seeing a single ad, with no cookies or trackers, and Surfshark promises that it won't store anything about your search habits. ‘The real incognito mode’ is how it describes itself. I found it useful for comparing prices of clothing between the US and UK.

It’s actually quite refreshing and a bit of a reminder of what search looked like back in the day. It’s pretty amazing to realise what all of Google’s small changes have done to its experience over time, in comparison, but that’s a discussion for another place.

Honestly, it would take a bit of a push for me to use Surfshark's search all the time – it's hard to break the habit of the last 25 years – but with tabs for Web, Images and Videos only and gloriously uncluttered results, I'll certainly make the effort every now and then.

ID breach alerts

Alerts is a section unto itself in the Surfshark app. It's available in Surfshark One and One+ but I wanted to draw special attention to it because of something that happened while I was writing this review. More on that in a moment

Alerts (or 'ID breach alerts' as you'll find it called in the literature) scans the internet for any data breaches featuring your email addresses, credit card numbers and ID numbers too. It felt a bit strange handing over my info to Surfshark so that it could run those checks but the company promises that it doesn’t retain it.

Now, here's the interesting thing: chance had it that I was the victim of an attempted scam as I was writing this very section. I got a phone call from someone very convincingly pretending to be my credit card provider. They knew my card details, my name, my home address and clearly my phone number too.

They knew my card details, my name, my home address and clearly my phone number too.

They claimed to be from the fraud department and were questioning two transactions apparently made on my card in the UAE for around 27,000 Dirhams, and was I aware of them? Clearly I was not. So, the well spoken operator said they would then refund the amount to my account.

He asked me to open the app where I'd see a request for the refund. I opened the app. There was a request. But it was not for a refund. It was to make a payment of 27,000 Dirhams, about £5000.

"Press Confirm," they said.

"This is asking me to confirm a payment," I replied.

"No, this is the refund. Press confirm."

"No. It says 'payment'. I don't trust you."

They hung up.

I froze my card. I contacted my issuer and, I'm still shaking a bit at how close I just came to being defrauded. With stories about different UK retail stores getting hacked popping up every week, perhaps it's of little surprise.

My compromised credit card showing as 'no leaks found' according to the Surfshark Alert credit card monitoring system. Not a feature that's worked for me. Available with Surfshark One and One+. (Image credit: Future Publishing)

I'm also a little bit scared about my details too, and I'm pretty glad I'm writing reviews about products like Surfshark and that I've got the tools to help deal with this.

So, with that in mind, I put this particular bank card's details into Surfshark's credit card monitoring system. Sadly, Surfshark Alerts said No Leaks Found after scanning for a breach of this information. Hopefully, it will register it as exposed in the coming months but it's been a few weeks and I've seen no change yet.

It doesn't mean that Alerts doesn't work. It's very possible that my information was hacked and not exposed on the internet. It's just a pity that Alerts wasn't able to help in this instance.

If you're looking for a VPN for a very complete set of privacy and security features, then Surfshark is a great option

Alerts did a lot better with my email address. When I put in my general junky email, used for online forms and shops and such – where was Alternative ID when I needed it years ago – I was unsurprised to see 25 leak alerts. Thanks Adobe, DuoLingo, Last.fm, Houzz, Kickstarter MyFitnessPal and a bunch of other sites and services that are lucky I don’t have time to name and shame.

Surfshark detailed what was leaked of mine in each breach and then makes recommendations of what to do next. Probably a good idea to do what it says but, quite honestly, with 25 breaches do deal with, there just isn't enough time in the day. Hopefully, I'll be able to lower that number with every update of this page.

Surfshark One+

Top of the Surfshark price plan tree is Surfshark One+ which adds the Incogni which is designed to prevent the misuse of your personal data online.

If Alerts is your data health examination, then Incogni aims to be the cure. It's a data removal service which is currently only available in the US, UK, Canada, EU and Switzerland because of legal reasons. Those reasons are that, in those regions, data brokers are legally required to remove your details from their records when asked. And that’s what Incogni does on your behalf.

I’ve definitely noticed getting less spam in that time

I’ve actually been lucky enough to use Incogni on a long-term test now for over two years and apart from the odd email report, there’s not much visible that actually happens. I’ve definitely noticed getting less spam in that time but part of that has also been down to being more careful what I sign up for and whether I’m using my real ID or not.

Ultimately, it’s really difficult to evaluate and I wish I could give better advice here given that it's over 60% extra on top of the Surfshark One price.

While the effectiveness of all of Surfshark's tools is not crystal clear, it's obvious by looking at the VPN feature comparison table that customers get lots of them to use – more so than most other VPN service providers.

If you're looking for a VPN for a very complete set of privacy and security features, then Surfshark is a great option, and at an excellent price point too.

Score: 10/10

Server network and locations
  • 99 countries with servers, 141 server locations, over 4,500 total servers.
  • Very few servers in Africa but that's similar to other VPNs.
  • FastTrack technology to bring higher network speeds in coming months.

Surfshark doesn’t cover quite as many countries (99) and locations (141) as the server network market leader NordVPN (127 countries and 165 locations) but it still gets top marks in this department.

That’s because its global spread is well chosen. It largely keeps up with just as many server countries in the traditionally less well covered continents of Asia, South America and Oceania as most of its rival VPNs.

In fact, the European sever network is as robust as the rest of the pack too. It’s only Africa and the Middle East were, like ExpressVPN, it's noticeably shorter than NordVPN and Proton VPN.

Server list on the Surfshark Windows app. Plenty of US server locations available. (Image credit: Future)

Surfshark's 34 North America server locations are competitive. If you are looking for coverage in every single State, though, you should try ExpressVPN or PIA instead.

Read more about Surfshark's server network ▼

Surfshark states on its server list that some of the locations are virtual, and that’s refreshing given that other VPNs hide that. We spot checked the actual likely location of 25 servers on Surfshark’s list. It was accurate in all but one case where the company had accidentally marked Peru down as a virtual server when it really is based in Lima. If there are to be mistakes, then we’re certainly glad that they’re false positive ones.

Sever networks are about more than just quantity, though. Surfshark uses RAM-only servers which brings important benefits that we discuss in the Privacy section.

That's more or less a VPN industry standard but where Surfshark elevates itself is with how it connects those servers together. It's developed a holistic use of all of those pathways in what it calls its Nexus network infrastructure. It connects users to the entire network rather than the single VPN server they're choosing.

Through that system Surfshark can offer a fair few benefits, not least of which is FastTrack smart routing technology which aims to speed up connection by choosing the most time efficient pathways through the network.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1762430134394-uni57yach *, #fv-chart-1762430134394-uni57yach *:before, #fv-chart-1762430134394-uni57yach *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1762430134394-uni57yach { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1762430134394-uni57yach { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1762430134394-uni57yach .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1762430134394-uni57yach .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.5rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1762430134394-uni57yach .fv-chart-subhead { font-size: 1.1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1762430134394-uni57yach .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1762430134394-uni57yach .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1762430134394-uni57yach .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1762430134394-uni57yach .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1762430134394-uni57yach .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1762430134394-uni57yach .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1762430134394-uni57yach .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762430134394-uni57yach .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1762430134394-uni57yach .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1762430134394-uni57yach .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762430134394-uni57yach .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1762430134394-uni57yach .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1762430134394-uni57yach .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1762430134394-uni57yach .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1762430134394-uni57yach .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1762430134394-uni57yach .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1762430134394-uni57yach .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1762430134394-uni57yach .fv-bar-row, #fv-chart-1762430134394-uni57yach .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1762430134394-uni57yach .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1762430134394-uni57yach .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1762430134394-uni57yach .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1762430134394-uni57yach .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1762430134394-uni57yach .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1762430134394-uni57yach .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1762430134394-uni57yach .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1762430134394-uni57yach .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1762430134394-uni57yach .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1762430134394-uni57yach .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1762430134394-uni57yach .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1762430134394-uni57yach .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1762430134394-uni57yach .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1762430134394-uni57yach .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1762430134394-uni57yach .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1762430134394-uni57yach .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1762430134394-uni57yach .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1762430134394-uni57yach .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1762430134394-uni57yach .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1762430134394-uni57yach .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1762430134394-uni57yach .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1762430134394-uni57yach .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1762430134394-uni57yach.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-bar-row, #fv-chart-1762430134394-uni57yach.mobile-view .fv-stacked-product, #fv-chart-1762430134394-uni57yach.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-bar-label, #fv-chart-1762430134394-uni57yach.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-bar-container, #fv-chart-1762430134394-uni57yach.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762430134394-uni57yach.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1762430134394-uni57yach .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762430134394-uni57yach .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762430134394-uni57yach .fv-bar-row, #fv-chart-1762430134394-uni57yach .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762430134394-uni57yach .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762430134394-uni57yach .fv-bar-container { width: 100% !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1762430134394-uni57yach .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762430134394-uni57yach .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762430134394-uni57yach .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762430134394-uni57yach .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1762430134394-uni57yach .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1762430134394-uni57yach.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "Server Network Comparison", "description": "Subhead to describe the test and what's being measured and why", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2025-11-06T11:55:34.394Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "NordVPN", "Surfshark", "ExpressVPN", "Proton VPN", "Total", "Africa", "Asia", "Europe", "Middle East", "North America", "Oceania", "South America", "Total countries", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "NordVPN – Total", "value": 127, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Total", "value": 99, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Total", "value": 108, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Total", "value": 126, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Africa", "value": 17, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Africa", "value": 6, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Africa", "value": 6, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Africa", "value": 26, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Asia", "value": 38, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Asia", "value": 31, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Asia", "value": 36, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Asia", "value": 44, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Europe", "value": 53, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Europe", "value": 54, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Europe", "value": 59, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Europe", "value": 49, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Middle East", "value": 10, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Middle East", "value": 5, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Middle East", "value": 5, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Middle East", "value": 14, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – North America", "value": 39, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – North America", "value": 34, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – North America", "value": 70, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – North America", "value": 32, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Oceania", "value": 8, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Oceania", "value": 6, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Oceania", "value": 8, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Oceania", "value": 6, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – South America", "value": 10, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – South America", "value": 10, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – South America", "value": 9, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – South America", "value": 7, "unitText": "number of server locations" } ]} Server Network Comparison

Subhead to describe the test and what's being measured and why

< Prev Total countries Next > NordVPN 127 Surfshark 99 ExpressVPN 108 Proton VPN 126 Total countries Data ProductValue (Number) NordVPN 127 Surfshark 99 ExpressVPN 108 Proton VPN 126 NordVPN 17 Surfshark 6 ExpressVPN 6 Proton VPN 26 Africa Data ProductValue (Number of server locations) NordVPN 17 Surfshark 6 ExpressVPN 6 Proton VPN 26 NordVPN 38 Surfshark 31 ExpressVPN 36 Proton VPN 44 Asia Data ProductValue (Number of server locations) NordVPN 38 Surfshark 31 ExpressVPN 36 Proton VPN 44 NordVPN 53 Surfshark 54 ExpressVPN 59 Proton VPN 49 Europe Data ProductValue (number of server locations) NordVPN 53 Surfshark 54 ExpressVPN 59 Proton VPN 49 NordVPN 10 Surfshark 5 ExpressVPN 5 Proton VPN 14 Middle East Data ProductValue (number of server locations) NordVPN 10 Surfshark 5 ExpressVPN 5 Proton VPN 14 NordVPN 39 Surfshark 34 ExpressVPN 70 Proton VPN 32 North America Data ProductValue (number of server locations) NordVPN 39 Surfshark 34 ExpressVPN 70 Proton VPN 32 NordVPN 8 Surfshark 6 ExpressVPN 8 Proton VPN 6 Oceania Data ProductValue (number of server locations) NordVPN 8 Surfshark 6 ExpressVPN 8 Proton VPN 6 NordVPN 10 Surfshark 10 ExpressVPN 9 Proton VPN 7 South America Data ProductValue (number of server locations) NordVPN 10 Surfshark 10 ExpressVPN 9 Proton VPN 7 1 of 8 Add your caption to explain the data, the learnings and the key takeaways of the data being visualized (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1762430134394-uni57yach'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1762430134394-uni57yach not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("Carousel" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "Carousel" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var globalSubhead = "Subhead to describe the test and what's being measured and why"; var globalCaption = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var subheadOverrides = {"bar-Oceania":"Total number of server locations across Oceania for each VPN","bar-Total":"Total number of countries covered by each VPN","bar-Africa":"Total number of server locations across Africa for each VPN","bar-Asia":"Total number of server locations across Asia for each VPN","bar-Europe":"Total number of server locations across Europe for each VPN","bar-Middle East":"Total number of server locations across the Middle East for each VPN","bar-North America":"Total number of server locations across North America for each VPN","bar-South America":"Total number of server locations across South America for each VPN"}; var captionOverrides = {"bar-Asia":"Again, it's Proton VPN that leads the way but the distance from the chasing pack is much smaller in Asia.","bar-Europe":"All of these VPNs have excellent server location coverage across Europe.","bar-Total":"Surfshark has the fewest number of countries with servers but isn't missing any key locations. All the same, do check it has one where you need.","bar-Africa":"Proton VPN is the clear front runner for server locations across Africa and the developing world. It's a great choice for locals in these areas and digital rights activists.","bar-Middle East":"Once more, Proton VPN is a great option for those outside of Europe, North America and Oceania. Surfshark's offering is limited across the Middle East.","bar-North America":"ExpressVPN has a server in every state of the US but Surfshark and the other top VPNs still have excellent coverage in North America.","bar-Oceania":"There is little difference in server spread across Oceania. Surfshark has 5 server locations in Australia and a single location in New Zealand.","bar-South America":"Surfshark's server network in South America is as good as anyone else's. It's a good choice for those living in that continent or who needs to access servers in those countries."}; var chartInfo = [{"id":"bar-Total","title":"Total countries"},{"id":"bar-Africa","title":"Africa"},{"id":"bar-Asia","title":"Asia"},{"id":"bar-Europe","title":"Europe"},{"id":"bar-Middle East","title":"Middle East"},{"id":"bar-North America","title":"North America"},{"id":"bar-Oceania","title":"Oceania"},{"id":"bar-South America","title":"South America"}]; function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) subheadEl.innerHTML = subheadOverrides[activeChartId] || globalSubhead; if (captionEl) { var captionContent = captionOverrides[activeChartId] || globalCaption; captionEl.innerHTML = captionContent; if (captionEl.parentElement) { captionEl.parentElement.style.display = (captionContent && captionContent.trim() !== '') ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

It uses globally distributed probes which monitor the Surfshark network in real-time. They keep track of capacity and performance. That way the FastTrack system can figure out how to route VPN traffic to ensure that users get the fastest possible connections while still taking them to the end-point server that they've selected, and with an appropriate IP address.

FastTrack launched in August, 2025. Right now, it's only available on macOS and only when connecting to the Seattle, Vancouver or Sydney servers but Surfshark claims it's made up to 70% speed improvements for customers. We look forward to the company rolling it out across the board soon.

Something a little closer to home for those in Europe is the arrival of Surfshark's first 100 Gbps servers as unveiled in Amsterdam in October 2025. That's a 10 times improvement in server bandwidth designed to cope for the modern demands of 4K streaming, gaming, VR, and remote work.

It's certainly a good headline but, cynicism aside, it's an excellent sign. Surfshark has been a market leader when it comes to investing in the future of its server network in 2025.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1762441191893-mvm4ek0o6 *, #fv-chart-1762441191893-mvm4ek0o6 *:before, #fv-chart-1762441191893-mvm4ek0o6 *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1762441191893-mvm4ek0o6 { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1762441191893-mvm4ek0o6 { position: relative !important; overflow: visible !important; --riv-primary: #AA1124; } #fv-chart-1762441191893-mvm4ek0o6 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1762441191893-mvm4ek0o6 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.5rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-chart-subhead { font-size: 1.1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1762441191893-mvm4ek0o6 .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1762441191893-mvm4ek0o6 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1762441191893-mvm4ek0o6 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1762441191893-mvm4ek0o6 .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1762441191893-mvm4ek0o6 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1762441191893-mvm4ek0o6 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-row, #fv-chart-1762441191893-mvm4ek0o6 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1762441191893-mvm4ek0o6 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1762441191893-mvm4ek0o6 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1762441191893-mvm4ek0o6 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-bar-row, #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-stacked-product, #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-bar-label, #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-bar-container, #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762441191893-mvm4ek0o6.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1762441191893-mvm4ek0o6 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-row, #fv-chart-1762441191893-mvm4ek0o6 .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-bar-container { width: 100% !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1762441191893-mvm4ek0o6 .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1762441191893-mvm4ek0o6.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "Global VPN server spread", "description": "Subhead to describe the test and what's being measured and why", "creator": { "@type": "Organization", "name": "Default" }, "isAccessibleForFree": true, "dateCreated": "2025-11-06T14:59:51.893Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Surfshark", "NordVPN", "ExpressVPN", "Proton VPN", "Africa", "Asia", "Europe", "North America", "Oceania", "South America", "benchmark", "comparison", "performance", "review", "Default" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Surfshark – Africa", "value": 6, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Asia", "value": 31, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – South America", "value": 10, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – North America", "value": 34, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Europe", "value": 54, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Surfshark – Oceania", "value": 6, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Africa", "value": 17, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Asia", "value": 38, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – South America", "value": 10, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – North America", "value": 39, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Europe", "value": 53, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "NordVPN – Oceania", "value": 8, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Africa", "value": 6, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Asia", "value": 36, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – South America", "value": 9, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – North America", "value": 70, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Europe", "value": 59, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "ExpressVPN – Oceania", "value": 8, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Africa", "value": 26, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Asia", "value": 44, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – South America", "value": 7, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – North America", "value": 32, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Europe", "value": 49, "unitText": "number of server locations" }, { "@type": "PropertyValue", "name": "Proton VPN – Oceania", "value": 6, "unitText": "number of server locations" } ]} Global VPN server spread

Subhead to describe the test and what's being measured and why

< Prev Surfshark Next > (function() { if (typeof google === 'undefined' || !google.charts) return; var chartDiv = document.getElementById('pie_chart_div_fv-chart-1762441191893-mvm4ek0o6_pieSurfshark'); if (!chartDiv) return; var chart = null; function drawChart() { var data = google.visualization.arrayToDataTable([["Attribute","Value"],["Africa",6],["Asia",31],["South America",10],["North America",34],["Europe",54],["Oceania",6]]); var options = {"backgroundColor":"transparent","chartArea":{"left":"5%","top":"5%","width":"90%","height":"90%"},"legend":{"position":"labeled","textStyle":{"color":"#4B5563","fontName":"Open Sans","fontSize":14}},"pieSliceText":"none","tooltip":{"trigger":"none"},"colors":["#4285F4","#DB4437","#F4B400","#0F9D58","#9C27B0","#009688"],"title":""}; if (!chart) { chart = new google.visualization.PieChart(chartDiv); } chart.draw(data, options); } google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(function() { drawChart(); var resizeTimeout; window.addEventListener('resize', function() { clearTimeout(resizeTimeout); resizeTimeout = setTimeout(drawChart, 200); }); }); })(); Data for Surfshark AttributeValue (number of server locations)Percentage Africa 6 4.3% Asia 31 22.0% South America 10 7.1% North America 34 24.1% Europe 54 38.3% Oceania 6 4.3% (function() { if (typeof google === 'undefined' || !google.charts) return; var chartDiv = document.getElementById('pie_chart_div_fv-chart-1762441191893-mvm4ek0o6_pieNordVPN'); if (!chartDiv) return; var chart = null; function drawChart() { var data = google.visualization.arrayToDataTable([["Attribute","Value"],["Africa",17],["Asia",38],["South America",10],["North America",39],["Europe",53],["Oceania",8]]); var options = {"backgroundColor":"transparent","chartArea":{"left":"5%","top":"5%","width":"90%","height":"90%"},"legend":{"position":"labeled","textStyle":{"color":"#4B5563","fontName":"Open Sans","fontSize":14}},"pieSliceText":"none","tooltip":{"trigger":"none"},"colors":["#4285F4","#DB4437","#F4B400","#0F9D58","#9C27B0","#009688"],"title":""}; if (!chart) { chart = new google.visualization.PieChart(chartDiv); } chart.draw(data, options); } google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(function() { drawChart(); var resizeTimeout; window.addEventListener('resize', function() { clearTimeout(resizeTimeout); resizeTimeout = setTimeout(drawChart, 200); }); }); })(); Data for NordVPN AttributeValue (number of server locations)Percentage Africa 17 10.3% Asia 38 23.0% South America 10 6.1% North America 39 23.6% Europe 53 32.1% Oceania 8 4.8% (function() { if (typeof google === 'undefined' || !google.charts) return; var chartDiv = document.getElementById('pie_chart_div_fv-chart-1762441191893-mvm4ek0o6_pieExpressVPN'); if (!chartDiv) return; var chart = null; function drawChart() { var data = google.visualization.arrayToDataTable([["Attribute","Value"],["Africa",6],["Asia",36],["South America",9],["North America",70],["Europe",59],["Oceania",8]]); var options = {"backgroundColor":"transparent","chartArea":{"left":"5%","top":"5%","width":"90%","height":"90%"},"legend":{"position":"labeled","textStyle":{"color":"#4B5563","fontName":"Open Sans","fontSize":14}},"pieSliceText":"none","tooltip":{"trigger":"none"},"colors":["#4285F4","#DB4437","#F4B400","#0F9D58","#9C27B0","#009688"],"title":""}; if (!chart) { chart = new google.visualization.PieChart(chartDiv); } chart.draw(data, options); } google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(function() { drawChart(); var resizeTimeout; window.addEventListener('resize', function() { clearTimeout(resizeTimeout); resizeTimeout = setTimeout(drawChart, 200); }); }); })(); Data for ExpressVPN AttributeValue (number of server locations)Percentage Africa 6 3.2% Asia 36 19.1% South America 9 4.8% North America 70 37.2% Europe 59 31.4% Oceania 8 4.3% (function() { if (typeof google === 'undefined' || !google.charts) return; var chartDiv = document.getElementById('pie_chart_div_fv-chart-1762441191893-mvm4ek0o6_pieProtonVPN'); if (!chartDiv) return; var chart = null; function drawChart() { var data = google.visualization.arrayToDataTable([["Attribute","Value"],["Africa",26],["Asia",44],["South America",7],["North America",32],["Europe",49],["Oceania",6]]); var options = {"backgroundColor":"transparent","chartArea":{"left":"5%","top":"5%","width":"90%","height":"90%"},"legend":{"position":"labeled","textStyle":{"color":"#4B5563","fontName":"Open Sans","fontSize":14}},"pieSliceText":"none","tooltip":{"trigger":"none"},"colors":["#4285F4","#DB4437","#F4B400","#0F9D58","#9C27B0","#009688"],"title":""}; if (!chart) { chart = new google.visualization.PieChart(chartDiv); } chart.draw(data, options); } google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(function() { drawChart(); var resizeTimeout; window.addEventListener('resize', function() { clearTimeout(resizeTimeout); resizeTimeout = setTimeout(drawChart, 200); }); }); })(); Data for Proton VPN AttributeValue (number of server locations)Percentage Africa 26 15.9% Asia 44 26.8% South America 7 4.3% North America 32 19.5% Europe 49 29.9% Oceania 6 3.7% 1 of 4 Add your caption to explain the data, the learnings and the key takeaways of the data being visualized (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1762441191893-mvm4ek0o6'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1762441191893-mvm4ek0o6 not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("Carousel" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "Carousel" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var globalSubhead = "Subhead to describe the test and what's being measured and why"; var globalCaption = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var subheadOverrides = {"pie-Surfshark":"Continental split of server network resources","pie-NordVPN":"Continental split of server network resources","pie-ExpressVPN":"Continental split of server network resources","pie-Proton VPN":"Continental split of server network resources"}; var captionOverrides = {"pie-Proton VPN":"With just over half of its server locations based outside North American and Europe, Proton VPN is a great choice for people all over the world.","pie-ExpressVPN":"ExpressVPN has most of its server network resources focused outside of the developing world with nearly 3/4 of its infrastructure in North America, Europe and Oceania.","pie-Surfshark":"Surfshark is definitely more skewed towards the US and Europe but still has respectable server location coverage across the globe.","pie-NordVPN":"There's a good worldwide balance of server locations with NordVPN but the majority of resources is in Europe and the US where most of its user base will be."}; var chartInfo = [{"id":"pie-Surfshark","title":"Surfshark"},{"id":"pie-NordVPN","title":"NordVPN"},{"id":"pie-ExpressVPN","title":"ExpressVPN"},{"id":"pie-Proton VPN","title":"Proton VPN"}]; function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) subheadEl.innerHTML = subheadOverrides[activeChartId] || globalSubhead; if (captionEl) { var captionContent = captionOverrides[activeChartId] || globalCaption; captionEl.innerHTML = captionContent; if (captionEl.parentElement) { captionEl.parentElement.style.display = (captionContent && captionContent.trim() !== '') ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

Everlink, released in June, 2025, is another network quality boost from Surfshark. It's a patented backup system for your VPN connection. The idea is that if the VPN drops, your app doesn’t disconnect immediately. Instead, Everlink automatically connects you to a new and working server.

It might take a few seconds and, if you happen to be browsing at the time, it’s possible you’ll find a web page that doesn't download properly. But, for the most part, Surfshark says you won’t even notice anything.

We don’t have a test for Everlink yet, but it sounds promising. Dropped connections aren’t just a usability hassle, they also risk data and IP leaks. If Everlink can reduce unexpected disconnections then that’s very good privacy news.

The other big benefits of Nexus, and its flexible, multi-server pathways, are Surfshark's rotating IP tech and its excellent MultiHop system. You can read more about those in the Privacy section.

For now, suffice to say that Surfshark's server network is cutting edge and, from everything we've seen, we're only expecting improvements over the next 12 months.

Score: 9/10

Privacy
  • Super clear, user-friendly privacy policy; no-logs system.
  • Top privacy features: Camouflage Mode, MultiHop & Rotating IP.
  • Subject to possible 'Nine Eyes' international information sharing agreement.

Surfshark operates using a no-logs system. Its servers do record some information to check user access (encrypted credentials, timestamps and billing information) but it’s lost around 15 minutes after each user session. It never stores anything to do with traffic data such as destination IPs, DNS queries, data transferred, downloaded files or browsing history.

This is exactly how a secure VPN should operate and, having read through Surfshark’s privacy policy, we’re satisfied that there’s nothing else amiss here either. Surfshark uses standard good practice all the way.

As privacy policies go, it’s actually incredibly user friendly and worth taking a look at for yourself. It’s organised into a set of easily digestible questions and answers rather than swathes of contract-style legalese.

Surfshark doesn’t have its own, proprietary obfuscation technology like Proton VPN’s Stealth protocol. So, if it’s vital that you’re not spotted using a VPN, Surfshark probably isn’t the best option.

Read more about Surfshark's privacy credentials ▼

Nonetheless, it still offers ‘Camouflage Mode’ which kicks into action whenever you choose OpenVPN. The company says that it hides your traffic to bypass content filters. OpenVPN also means you’ll be on Surfshark’s dedicated Obfuscated Servers which are designed to make it particularly hard for your ISP to see that you’re connected to a VPN.

You can use the OpenVPN protocol in both UDP and TCP form. The former is better when high speeds are important (streaming, gaming or VoIP) and TCP is good for the kind of reliability you need when web browsing, emailing or during P2P file transfer.

If you’d rather err on the side of speed, then just stick with Surfshark's default option of WireGuard. IKEv2 is also a choice on Android, Mac and iOS but not Windows.

Like most of the best VPNs, Surfshark uses RAM-only servers with no hard drives or SSDs where it could store data. That makes it both faster and safer, from the user's point of view.

Any time RAM-only servers are switched off, any data stored on them temporarily is lost. So, if those servers are seized, then the parties taking ownership of them get nothing but the hardware in their hands. Equally, changes from a malicious software attacks could be undone by Surfshark simply turning the servers off and on again – an IT help centre’s dream.

The effect here is that no user data is logged or kept in any way, so you can rest assure that your online activities are kept utterly private by Surfshark.

Surfshark received a number of user complaints when it changed its legal jurisdiction from the British Virgin Islands to the Netherlands, given that the Dutch are part of the Nine Eyes international information sharing agreement but given there are no logs to share, it's hard to see that there’s any real disadvantage here. Don't let it put you off unless you really feel like you need that double layer of protection.

no user data is logged or kept in any way, so you can rest assure that your online activities are kept utterly private by Surfshark

Surfshark has some interesting options for the privacy-conscious when it comes to server connection. Normally, you connect to a server and it assigns you a random IP address until you disconnect and then a different one next time. But you can choose to maintain a static IP instead. This means that it remains the same throughout your session.

Now, in terms of privacy that’s maybe not great. It leaves more browsing behaviour connected to a single IP that a third party could trace from start to finish and therefore have a clearer picture about what a single user is doing. Keep up that browsing behaviour pattern long enough and they might even be able to figure out who you are.

At the same time, a static IP can be useful. There are web services that work by white listing IP addresses. A static IP that’s known and accepted is going to make it easier to access them wherever you are. It might remove a layer of authentication each time you access.

In general, though, static IPs aren’t a great idea for VPN traffic because it makes it easier to track you. So, we’d recommend enable the Rotating IP option, even if that makes for more CAPTCHAs.

That said, if you do often get blocked trying to access a certain site, and then find a Surfshark server that works, you might want add that location as a favourite and use it as a static IP.

Rotating IPs makes it harder for a website or web service to track you in its logs. In a single, long session, you’ll appear as multiple visitors. So, this is a definite boost to Surfshark’s privacy credentials. Only ExpressVPN offers something similar with its ShuffleIP.

Multihop (available on all Surfshark plans) is fully customisable. Create a connection to travel through any pair of Surfshark servers to help maximize privacy. (Image credit: Future Publishing)

Quite the opposite to a static IP, then, the system automatically connects you via a different IP address after 2-10 minutes – and all without the real world experience of a disconnection. (Streaming was a little more glitchy when using IP rotation, though, so do consider switching it off if you run into problems.)

You get a little status message letting you know when your next IP rotation will be and what address you’re assigned, although, actually, in practice, the timing was often quicker than stated. And, when we checked with WhatIsMyIPAddress.com, the address reported by Surfshark was accurate every single time.

So, how does Surfshark manage to switch your IP without dropping the connection? That's down to its Nexus network infrastructure (see Server Network section) ensuring that there's always a server somewhere on the pathway to provide online access while the IP on the destination server is switched.

The other excellent privacy application of the Nexus structure is Surfshark’s brilliantly flexible MultiHop VPN system, which is one of the very best out there.

The joined up nature of the Nexus-powered servers means that, unlike other VPNs, you can create your own double jump server pathways between almost any locations available, instead of the small handful of pre-programmed routing options that most other VPN providers offer.

That allows users to design custom, faster MultiHop connections, with start and end point servers which aren’t too far away from you and from one another.

In fact, you can even choose Fastest Location or Nearest Country within the MultiHop menu for the Nexus system to make the best suggestion for you. We particularly like that you can see latency speeds next to the options on the list so that you can really aim for maximal performance.

We checked to see the kind of effect you can expect when using two servers per connection like this. Using a pathway of two servers nearby (in our case, two different Ireland server locations) produced speeds very similar a single hop transatlantic connection which we benchmarked at 391Mbps. It was only once we started picking huge journeys, around the word for the first hop and then back all the way for the second, that we noticed speeds dipping.

Of course, there’s no need to sacrifice speed on all your apps and services if you use Surfshark’s split-tunnel feature, Bypasser. It works on all four major platforms and allowed us to pick both individual apps and websites to either specifically exclude or include from the VPN tunnel.

This is a great way of working if you want to use Surfshark for something specific like torrenting, or if you want to watch your local streaming service without confusing it into thinking that you’re trying to tune in from somewhere else.

The only real privacy feature absent from the Surfshark roster is Tor Over VPN. We could still use the Tor browser manually after connecting to Surfshark on our Windows laptop but it’s not built into the app. If Tor's added layer of online anonymity is a feature you need, then you’ll want to use Proton VPN or NordVPN instead.

Unlike other VPNs, you can create your own double jump server pathways between almost any locations

Surfshark’s CleanWeb function takes care of your search by stripping out as many trackers and ads as possible. There’s a bit of a slow down when it comes to page load time but the results are well worth it.

It took all of the cookie consent requests out of our browsing as we read the football pages of the UK and European news sites. And the grey blocks where adverts used to be were certainly less distracting than all the sticky videos and other images that usually get in the way.

If you want to go the whole hog, though, try Surfshark’s very own in-app private search, available on Surfshark One and One+ plans. More details on that in the Features section above.

Score: 9/10

Security
  • Excellent kill switch available on all major platforms.
  • Strong phishing and malware protection boosted by browser extension .
  • Yet to embrace post-quantum encryption with much meaningful tech.

Surfshark's choice of VPN encryption, and it's platter of security features, give us plenty of reasons for confidence. It doesn't hit the same heights as the other top VPNs in all of our results below but then it's a fraction of the price of most of them and our tests are pretty exacting.

Surfshark’s AES-256-GCM and ChaCha20 encryption algorithms are pretty standard, solid stuff when it comes to incredibly hard to crack encoding of your internet traffic.

The company uses 2048-bit RSA encryption keys which is easily enough safeguarding. Proton VPN takes things a little further with 4096-bit keys just in case you have extreme security demands.

Kill switch warning on the Surfshark Windows app explaining how kill switches work. (Image credit: Future)

A more pressing for issue for Surfshark is its post-quantum encryption (PQE) credentials. It deserves increasing attention as quantum computers, and their extreme number crunching powers, arrive on the scene.

Read more about Surfshark's security credentials ▼

Surfshark doesn’t have a huge amount to say about PQE on its website, just that “Surfshark has implemented post-quantum protection on top of the WireGuard protocol”.

Other than that, the company told Technadu, in May 2025, that it was “working on launching cutting-edge post-quantum protection for our VPN”, so we expect to hear something more about it in the coming months.

This is nothing out of the ordinary currently. PQE technology in VPNs is still very much in the embryonic stage.

Only ExpressVPN has gone further in its 1200-word blog post about its implementation of PQE in its Lightway protocol. We can’t imagine that Surfshark will be comfortable with appearing to be behind the curve for long.

We can’t imagine that Surfshark will be comfortable with appearing to be behind the curve for long.

Until then, there’s still plenty to keep you safe with Surfshark.

Auto-connect is a solid feature for anyone looking to stop any accidental leaks of their actual IP address. We like Surfshark’s very much.

Once activated, it automatically connected using the VPN on any network that I specifically didn't marked as Trusted. I didn't want it to auto-connect on my home Wi-Fi, for example, where I want to choose what my ISP does and doesn't see depending on what apps and services I'm accessing.

What I really like is that I can also choose which VPN server I want Surfshark to auto-connect to. I set it to auto-connect the 'Fastest connection' preset no matter what.

Auto-connect looks and works the same across iOS, Windows and Mac. The only exception is on Android which also allows you to use it on mobile networks too – great for privacy on the go.

The gold standard for IP leak safety, though, is the VPN kill switch and Surfshark’s got full marks in our tests. There’s a kill switch on all platforms, as we would expect.

It comes in two forms: Soft Mode, which blocks your internet access if the VPN unexpectedly drops; and Strict Mode which simply blocks any internet access unless the VPN is connected in the first place.

Strict Mode is certainly the more secure but I found it slowed down speeds a little and seemed to dig up a few more CAPTCHAs and blocked websites, and problems with apps which weren’t compatible with the VPN. Ultimately, Soft Mode feels like the better option on balance, particularly as the kill switch itself performs very well.

Surfshark is one of the only VPNs with a full antivirus built in. This is the desktop version. It's available on Surfshark One and One+. (Image credit: Future Publishing)

We tried breaking the VPN connection in a few different ways – turning the router on and off, walking out of range of a Wi-Fi hotspot, stopping services, closing processes and more – and Surfshark blocked the internet every time.

The only difference between Surfshark and the very best in this department, NordVPN, is that Surfshark didn’t always manage to recover the application and reconnect every time. NordVPN’s activated the switch, spotted the precise problem, resolved it, and then got us up and running again without us really noticing that anything had happened.

Surfshark still performed far better than most VPNs, and correctly blocked our internet in every test, though, and that’s what most matters for security.

Surfshark’s CleanWeb feature helps out for security, as well as its ad blocking and cookie consent pop-up blocking features we mentioned in the Privacy section. It cuts out phishing and malware websites too.

We tested CleanWeb with 50 up-to-date URLs for each, from the very newest phishing and malware sites sourced on the day of testing itself.

You can see by the bar chart below that its effectiveness for blocking sites that host phishing attacks is a little sub-par. It's around half as effective as ExpressVPN and Proton VPN and a long way behind NordVPN.

It's comparatively better for ad blocking and if you use the Surfshark browser extension (available on FireFox, Chrome and Edge) alongside your platform app, you'll maximize its chances of succeeding.

Surprisingly, ExpressVPN and Proton VPN didn't manage to detect and block access to any of the latest malware hosting sites in our last lab test. So, the fact that Surfshark score 68% is actually a pretty strong result.

What's more, CleanWeb is available with all Surfshark plans which start as low as $1.99 per month. NordVPN's high scores come courtesy with Threat Protection Pro technology which is not included in its entry level tier. To get the benefits of Threat Protection Pro, you'd need to pay a minimum of $3.89 per month – nearly double the price.

/* CSS Reset for chart elements */ .embed-chart-wrapper *, .embed-chart-wrapper *:before, .embed-chart-wrapper *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } .embed-chart-wrapper { font-family: 'Open Sans', sans-serif; } /* CSS Custom Properties */ .embed-chart-wrapper { --riv-primary: #2E6E93; } /* Main Wrappers */ .embed-chart-wrapper { position: relative; max-width: 100%; overflow: visible; } .embed-inner-wrapper { color: #1F2937; background-color: #ffffff; padding: 1.5rem 1.5rem 2rem; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0; display: flex; flex-direction: column; } .embed-inner-wrapper.embed-no-outline { border: none !important; box-shadow: none !important; border-radius: 0 !important; padding: 0 !important; margin: 0 !important; } /* Typography */ .embed-chart-title { font-weight: bold; text-align: center; margin-top: 1rem; margin-bottom: 0.5rem; color: #1F2937; font-size: 1.5rem; line-height: 1.2; } .embed-chart-subhead { font-weight: 500; text-align: center; margin-bottom: 2rem; color: #6B7280; line-height: 1.5; } .rv-chart-caption { font-size: 13px; color: #6B7280; text-align: center; font-style: normal; font-weight: normal; line-height: 1.5; margin-bottom: 0.5rem; } /* Screen reader only content */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* Footer */ .embed-bottom-bar { display: flex; flex-direction: column; align-items: center; margin-top: 1rem; margin-bottom: 1.5rem; gap: 0.75rem; } .embed-footer-content { text-align: center; width: 100%; } .embed-carousel-counter { font-size: 14px; color: #6b7280; text-align: center; margin-top: 1rem; } .embed-logo { display: block; margin: 0 auto; width: 120px !important; max-width: 120px !important; height: auto; object-fit: contain; padding-bottom: 0.5rem; } /* Display Mode Controls - Dropdown button+chevron */ .embed-dropdown-container { text-align: center; margin-bottom: 16px !important; } .embed-dropdown { width: 100%; max-width: 350px; padding: 8px 12px; font-size: 13px; line-height: 1.2; border: 2px solid #d1d5db; border-radius: 8px; background-color: #ffffff; color: #374151; cursor: pointer; appearance: none; box-sizing: border-box; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e"); background-position: right 12px center; background-repeat: no-repeat; background-size: 14px; padding-right: 35px; height: auto; min-height: 36px; } .embed-dropdown:hover { border-color: var(--riv-primary); } .embed-dropdown:focus { outline: none; border-color: var(--riv-primary); box-shadow: 0 0 0 3px #2E6E9320; } /* Carousel Controls - Integrated with benchmark title */ .embed-carousel-title-controls { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; width: 100%; gap: 12px; } .embed-carousel-nav-btn { background: transparent; border: 1px solid #d1d5db; border-radius: 6px; padding: 6px 10px; cursor: pointer; font-size: 12px; line-height: 1.2; color: #6b7280; transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; display: flex; align-items: center; gap: 4px; box-sizing: border-box; white-space: nowrap; min-width: 60px; height: 32px; } .embed-carousel-nav-btn:hover { border-color: #9ca3af; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); } .embed-carousel-nav-btn.prev:hover { transform: translateX(-2px); } .embed-carousel-nav-btn.next:hover { transform: translateX(2px); } .embed-carousel-nav-btn:focus-visible { outline: 2px solid var(--riv-primary); outline-offset: 2px; } .embed-carousel-nav-btn svg { width: 14px; height: 14px; flex-shrink: 0; } /* Chart item containers */ .embed-chart-item { width: 100%; } .embed-benchmark-group { margin-bottom: 1.5rem; } .embed-benchmark-title { font-size: 16px !important; font-weight: 600 !important; margin-bottom: 16px !important; text-align: center; color: var(--riv-primary) !important; flex: 1; min-width: 0; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; } .embed-bar-row { display: flex; align-items: center; margin-bottom: 0.75rem; cursor: default; width: 100%; } .embed-bar-label { width: 150px; flex-shrink: 0; font-size: 13px; color: #4B5563; padding-right: 10px; text-align: right; font-weight: 500; cursor: text; padding: 2px 10px 2px 2px; border-radius: 3px; transition: background-color 0.2s; } .embed-bar-label:hover { background-color: #F3F4F6; } .embed-bar-label:focus { outline: 2px solid #3B82F6; outline-offset: 1px; background-color: #FFFFFF; } .embed-bar-container { flex-grow: 1; background-color: #E5E7EB; border-radius: 4px; height: 25px; border: 1px solid #D1D5DB; } .embed-bar { height: 100%; border-radius: 3px; display: flex; align-items: center; justify-content: flex-end; padding-right: 8px; box-sizing: border-box; transition: opacity 0.2s ease; } .embed-bar:hover { opacity: 0.8; } .embed-bar-value { font-size: 11px; font-weight: bold; color: white; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); } /* Grouped chart styles */ .embed-grouped-product-section { margin-bottom: 2rem; width: 100%; } .embed-grouped-product-title { font-size: 15px; font-weight: 600; margin: 0 0 12px 0; text-align: center; padding: 2px 4px; font-family: 'Open Sans', sans-serif; cursor: text; border-radius: 3px; transition: background-color 0.2s; } .embed-grouped-product-title:hover { background-color: #F3F4F6; } .embed-grouped-product-title:focus { outline: 2px solid #3B82F6; outline-offset: 1px; background-color: #FFFFFF; } .embed-grouped-product-title.primary { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked chart styles */ .embed-stacked-product { display: flex; align-items: center; margin-bottom: 1rem; width: 100%; } .embed-stacked-bar { height: 25px; border-radius: 3px; display: flex; align-items: center; border: 1px solid #D1D5DB; overflow: hidden; } .embed-stacked-segment { height: 100%; display: flex; align-items: center; justify-content: center; border-right: 1px solid rgba(255, 255, 255, 0.3); box-sizing: border-box; } .embed-stacked-segment:last-child { border-right: none; } .embed-segment-value { font-size: 10px; font-weight: bold; color: white; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); } .embed-legend { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin: 1rem 0; } .embed-legend-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; color: #6B7280; } .embed-legend-color { width: 12px; height: 12px; border-radius: 2px; } .embed-x-axis-wrapper { display: flex; width: 100%; margin-top: 0.75rem; margin-bottom: 0.25rem; } .embed-x-axis-label-space { width: 150px; padding-right: 10px; flex-shrink: 0; } .embed-x-axis-chart-space { flex-grow: 1; padding-right: 8px; } .embed-x-axis-line { border-top: 1px solid #D1D5DB; } .embed-x-axis-ticks { display: flex; justify-content: space-between; padding-top: 4px; font-size: 11px; color: #6B7280; } .embed-x-axis-unit { text-align: center; font-size: 12px; color: #6B7280; margin-top: 8px; } /* Primary product styling */ .embed-bar-label.primary { font-weight: bold !important; color: var(--riv-primary) !important; } /* Desktop centering - add small right margin */ @media (min-width: 640px) { .embed-bar-container, .embed-x-axis-chart-space { margin-right: 10px; } } /* Mobile view styles - can be forced on desktop with mobileViewOnDesktop */ /* Responsive Design */ @media (max-width: 639px) { .embed-logo { width: 60px !important; max-width: 60px !important; } .embed-carousel-counter { font-size: 12px; } .embed-carousel-title-controls { flex-direction: row; gap: 8px; align-items: center; justify-content: space-between; } .embed-carousel-nav-btn { padding: 6px 8px; font-size: 11px; min-width: 50px; height: 28px; flex-shrink: 0; justify-content: center; } .embed-carousel-nav-btn svg { width: 12px; height: 12px; } .embed-benchmark-title { font-size: 14px !important; line-height: 1.2 !important; flex: 1; min-width: 0; text-align: center; margin: 0 0 1.25rem 0 !important; padding: 0 4px !important; } .embed-bar-row, .embed-stacked-product { flex-direction: column; align-items: flex-start; margin-bottom: 1.25rem; padding-left: 1.5rem; padding-right: 1.5rem; } .embed-grouped-product-title { font-size: 14px; margin-bottom: 10px; } .embed-bar-label { text-align: left; margin-bottom: 5px; width: 100% !important; padding-right: 0; } .embed-bar-container { width: 100%; margin-right: 0 !important; } .embed-x-axis-wrapper { flex-direction: column; padding-left: 1.5rem; padding-right: 1.5rem; } .embed-x-axis-label-space { display: none; } .embed-x-axis-chart-space { padding-left: 0 !important; padding-right: 0; margin-left: 0 !important; margin-right: 0 !important; } .embed-benchmark-title { text-align: center; } .embed-logo { width: 60px !important; max-width: 60px !important; } }{ "@context": "https://schema.org", "@type": "Dataset", "name": "Phishing, malware and ad blocking", "description": "Surfshark CleanWeb compared to similar tools from other VPNs", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png", "url": "https://www.techradar.com" }, "isAccessibleForFree": true, "dateCreated": "2025-11-04T10:15:26.395Z", "citation": "Surfshark currently lags on phishing site blocking but works well for malware sites and for blocking adverts, when the browser extension is used in combination with the app.", "keywords": [ "NordVPN", "Surfshark", "ExpressVPN", "Proton VPN", "Surfshark browser ext.", "Phishing sites blocked", "Malware sites blocked", "Ads blocked", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "@id": "#item0", "name": "NordVPN – Phishing sites blocked", "value": 91, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Surfshark – Phishing sites blocked", "value": 38, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "ExpressVPN – Phishing sites blocked", "value": 76, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Proton VPN – Phishing sites blocked", "value": 88, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Surfshark browser ext. – Phishing sites blocked", "value": 8, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "NordVPN – Malware sites blocked", "value": 86, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Surfshark – Malware sites blocked", "value": 68, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "ExpressVPN – Malware sites blocked", "value": 0, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Proton VPN – Malware sites blocked", "value": 0, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Surfshark browser ext. – Malware sites blocked", "value": 8, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "NordVPN – Ads blocked", "value": 54, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Surfshark – Ads blocked", "value": 50, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "ExpressVPN – Ads blocked", "value": 86, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Proton VPN – Ads blocked", "value": 88, "unitText": "Percentage" }, { "@type": "PropertyValue", "@id": "#item0", "name": "Surfshark browser ext. – Ads blocked", "value": 66, "unitText": "Percentage" } ]} Phishing, malware and ad blocking

Surfshark CleanWeb compared to similar tools from other VPNs

Prev Phishing sites blocked (%) Next Performance data for Phishing sites blocked (%) Item Series Value NordVPN Phishing sites blocked 91 Surfshark Phishing sites blocked 38 ExpressVPN Phishing sites blocked 76 Proton VPN Phishing sites blocked 88 Surfshark browser ext. Phishing sites blocked 8 NordVPN 91 Surfshark 38 ExpressVPN 76 Proton VPN 88 Surfshark browser ext. 8 023466891 Percentage Performance data for Malware sites blocked (Percentage) Item Series Value NordVPN Malware sites blocked 86 Surfshark Malware sites blocked 68 ExpressVPN Malware sites blocked 0 Proton VPN Malware sites blocked 0 Surfshark browser ext. Malware sites blocked 8 NordVPN 86 Surfshark 68 ExpressVPN 0 Proton VPN 0 Surfshark browser ext. 8 022436586 Percentage Performance data for Ads blocked (Percentage) Item Series Value NordVPN Ads blocked 54 Surfshark Ads blocked 50 ExpressVPN Ads blocked 86 Proton VPN Ads blocked 88 Surfshark browser ext. Ads blocked 66 NordVPN 54 Surfshark 50 ExpressVPN 86 Proton VPN 88 Surfshark browser ext. 66 022446688 Percentage Surfshark currently lags on phishing site blocking but works well for malware sites and for blocking adverts, when the browser extension is used in combination with the app. 1 of 3 (function() { let currentChartIndex = 0; const totalCharts = 3; const uniquePrefix = 'rv-7s0zi2s-'; function showChart(index) { // Hide all charts for (let i = 0; i < totalCharts; i++) { const chart = document.getElementById(uniquePrefix + 'embed-chart-' + i); if (chart) { chart.style.display = 'none'; // Reset animation state for bars within this chart const barsToReset = chart.querySelectorAll('.embed-bar, .embed-grouped-bar, .embed-stacked-bar'); barsToReset.forEach(bar => { bar.dataset.animated = 'false'; // Reset the flag bar.style.width = '0%'; // Reset width to initial state bar.style.transition = 'none'; // Remove transition to allow instant reset }); } } // Show selected chart const selectedChart = document.getElementById(uniquePrefix + 'embed-chart-' + index); if (selectedChart) { selectedChart.style.display = 'block'; // Force reflow to ensure browser registers the 'display: block' and 'width: 0%' states selectedChart.offsetHeight; // Accessing offsetHeight forces a reflow // Animate bars when chart becomes visible (if function exists) setTimeout(() => { if (typeof animateBars === 'function') { animateBars(selectedChart); } }, 10); // Small delay after reflow } currentChartIndex = parseInt(index); // Update benchmark title for carousel mode (if function exists) if (typeof updateBenchmarkTitle === 'function') { updateBenchmarkTitle(); } // Update dropdown for dropdown mode const dropdown = document.getElementById(uniquePrefix + 'embed-chart-selector'); if (dropdown) { dropdown.value = index; } // Update counter for carousel mode const counter = document.getElementById(uniquePrefix + 'embed-chart-counter'); if (counter) { counter.textContent = (currentChartIndex + 1) + ' of ' + totalCharts; } } function animateBars(chartElement) { if (!chartElement) return; const bars = chartElement.querySelectorAll('.embed-bar, .embed-grouped-bar, .embed-stacked-bar'); bars.forEach((bar, index) => { // Skip if already animated if (bar.dataset.animated === 'true') return; const targetWidth = bar.dataset.targetWidth; if (!targetWidth) return; // Mark as animated bar.dataset.animated = 'true'; // Introduce a micro-delay to ensure the browser registers the element's visibility // before resetting width and applying transition. setTimeout(() => { bar.style.width = '0%'; // Reset width to initial state bar.style.transition = 'none'; // Remove transition to allow instant reset // Now, apply the animation after another micro-delay setTimeout(() => { bar.style.transition = 'width 0.8s ease-out'; bar.style.width = targetWidth + '%'; }, 10); // Small delay for animation to start }, 10); // Micro-delay for initial state reset }); } function updateBenchmarkTitle() { const titleElement = document.getElementById(uniquePrefix + 'embed-benchmark-title'); if (titleElement) { const chartNames = ["Phishing sites blocked (%)","Malware sites blocked (Percentage)","Ads blocked (Percentage)"]; titleElement.textContent = chartNames[currentChartIndex]; } } function previousChart() { const newIndex = currentChartIndex > 0 ? currentChartIndex - 1 : totalCharts - 1; showChart(newIndex); } function nextChart() { const newIndex = currentChartIndex < totalCharts - 1 ? currentChartIndex + 1 : 0; showChart(newIndex); } // Initialize on page load if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { setTimeout(() => { showChart(0); // Attach event listeners after DOM is ready const dropdown = document.getElementById(uniquePrefix + 'embed-chart-selector'); if (dropdown) { dropdown.addEventListener('change', function() { showChart(this.value); }); } const prevBtn = document.getElementById(uniquePrefix + 'embed-carousel-prev-btn'); if (prevBtn) { prevBtn.addEventListener('click', previousChart); } const nextBtn = document.getElementById(uniquePrefix + 'embed-carousel-next-btn'); if (nextBtn) { nextBtn.addEventListener('click', nextChart); } }, 100); // Initial delay for the first chart animation }); } else { setTimeout(() => { showChart(0); // Attach event listeners immediately if DOM is already ready const dropdown = document.getElementById(uniquePrefix + 'embed-chart-selector'); if (dropdown) { dropdown.addEventListener('change', function() { showChart(this.value); }); } const prevBtn = document.getElementById(uniquePrefix + 'embed-carousel-prev-btn'); if (prevBtn) { prevBtn.addEventListener('click', previousChart); } const nextBtn = document.getElementById(uniquePrefix + 'embed-carousel-next-btn'); if (nextBtn) { nextBtn.addEventListener('click', nextChart); } }, 100); // Initial delay for the first chart animation } })(); (function() { // Product name editing functionality const productNameMap = new Map(); // Initialize contenteditable elements const initProductNameEditing = () => { const editableElements = document.querySelectorAll('[data-product-name]'); editableElements.forEach(element => { const productName = element.getAttribute('data-product-name'); // Store original product name mapping if (!productNameMap.has(productName)) { productNameMap.set(productName, element.textContent.trim()); } // Prevent Enter key from creating new lines element.addEventListener('keydown', (e) => { if (e.key === 'Enter') { e.preventDefault(); element.blur(); } }); // Handle blur event to update all instances element.addEventListener('blur', () => { const newName = element.textContent.trim(); if (newName === '') { // Restore original if empty element.textContent = productNameMap.get(productName); return; } // Update all elements with the same product name const sameProductElements = document.querySelectorAll(`[data-product-name="${productName}"]`); sameProductElements.forEach(el => { el.textContent = newName; }); // Update the map productNameMap.set(productName, newName); }); // Select all text on focus for easy editing element.addEventListener('focus', () => { const range = document.createRange(); range.selectNodeContents(element); const selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); }); }); }; // Initialize on load if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initProductNameEditing); } else { initProductNameEditing(); } // Analytics tracking for embed if (window.dispatchEvent) { window.dispatchEvent(new CustomEvent('rivualizer-embed-loaded', { detail: { timestamp: new Date().toISOString() } })); } })();

Also, bear in mind that the bar we set for the test above is a high one. The figures above would be considerably higher if we tested CleanWeb, and the others, against threats that were even just two days old. Nonetheless, the biggest names in antivirus, such as Norton, Bitdefender, and Avira deliver results to the same tests that are up above 90%.

So, is Surfshark’s CleanWeb a replacement for the very best dedicated AV? Not quite, but it’s well worth using and, like most of Surfshark's features, a bargain. More to the point, it will protect users against most of the nasties out there. So, do switch it on if you have it.

Score: 9/10

Speed
  • Surfshark clocked the fastest WireGuard speed to local servers.
  • OpenVPN speeds are good too but long distance performance is poor.
  • Surfshark has considerably higher latency and jitter than other top VPNs.

Previously rated as the fastest VPN available, Surfshark has taken a bit of a dip in our latest round of speed testing but still has a strong claim to that title.

What’s more, we still think Surfshark is a good performer in the gran scheme of things.. Anyone looking for a fast VPN should not be put off.

We’ve recently broadened our VPN lab speed testing process. We take even more data points than before and have increased our maximum speed capacity from 1 Gbps up to 10 Gbps.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1766056032632-cm0lwfj8z *, #fv-chart-1766056032632-cm0lwfj8z *:before, #fv-chart-1766056032632-cm0lwfj8z *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1766056032632-cm0lwfj8z { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1766056032632-cm0lwfj8z { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1766056032632-cm0lwfj8z .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1766056032632-cm0lwfj8z .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.25rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-chart-subhead { font-size: 1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1766056032632-cm0lwfj8z .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1766056032632-cm0lwfj8z .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1766056032632-cm0lwfj8z .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1766056032632-cm0lwfj8z .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1766056032632-cm0lwfj8z .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1766056032632-cm0lwfj8z .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-row, #fv-chart-1766056032632-cm0lwfj8z .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1766056032632-cm0lwfj8z .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1766056032632-cm0lwfj8z .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1766056032632-cm0lwfj8z .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-bar-row, #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-stacked-product, #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-bar-label, #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-bar-container, #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1766056032632-cm0lwfj8z.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1766056032632-cm0lwfj8z .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-row, #fv-chart-1766056032632-cm0lwfj8z .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-bar-container { width: 100% !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1766056032632-cm0lwfj8z .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1766056032632-cm0lwfj8z.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "WireGuard/fastest VPN protocol", "description": "Subhead to describe the test and what's being measured and why", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2025-12-18T11:07:12.633Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Surfshark (WireGuard)", "NordVPN (NordLynx)", "ExpressVPN (Lightway Turbo)", "ExpressVPN (WireGuard)", "Proton VPN (WireGuard)", "Download speed (local)", "Download speed (long distance)", "Jitter (local)", "Jitter (long distance)", "Latency (local)", "Latency (long distance)", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Surfshark (WireGuard) – Download speed (local)", "value": 1615, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "NordVPN (NordLynx) – Download speed (local)", "value": 1256, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "ExpressVPN (Lightway Turbo) – Download speed (local)", "value": 1479, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "ExpressVPN (WireGuard) – Download speed (local)", "value": 694, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Proton VPN (WireGuard) – Download speed (local)", "value": 1521, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Surfshark (WireGuard) – Download speed (long distance)", "value": 355, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "NordVPN (NordLynx) – Download speed (long distance)", "value": 857, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "ExpressVPN (Lightway Turbo) – Download speed (long distance)", "value": 1374, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "ExpressVPN (WireGuard) – Download speed (long distance)", "value": 523, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Proton VPN (WireGuard) – Download speed (long distance)", "value": 1242, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Surfshark (WireGuard) – Jitter (local)", "value": 2.3, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN (NordLynx) – Jitter (local)", "value": 2.4, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (Lightway Turbo) – Jitter (local)", "value": 5.3, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (WireGuard) – Jitter (local)", "value": 2.4, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN (WireGuard) – Jitter (local)", "value": 5.2, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Surfshark (WireGuard) – Jitter (long distance)", "value": 27.5, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN (NordLynx) – Jitter (long distance)", "value": 4.7, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (Lightway Turbo) – Jitter (long distance)", "value": 5.7, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (WireGuard) – Jitter (long distance)", "value": 2.3, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN (WireGuard) – Jitter (long distance)", "value": 28.3, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Surfshark (WireGuard) – Latency (local)", "value": 21.7, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN (NordLynx) – Latency (local)", "value": 17.2, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (Lightway Turbo) – Latency (local)", "value": 14.8, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (WireGuard) – Latency (local)", "value": 13.6, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN (WireGuard) – Latency (local)", "value": 21.7, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Surfshark (WireGuard) – Latency (long distance)", "value": 171, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN (NordLynx) – Latency (long distance)", "value": 83, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (Lightway Turbo) – Latency (long distance)", "value": 75, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN (WireGuard) – Latency (long distance)", "value": 72.1, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN (WireGuard) – Latency (long distance)", "value": 90.6, "unitText": "ms" } ]} WireGuard/fastest VPN protocol

< Prev Download speed (local) Next > Surfshark (WireGuard) 1615 NordVPN (NordLynx) 1256 ExpressVPN (Lightway Turbo) 1479 ExpressVPN (WireGuard) 694 Proton VPN (WireGuard) 1521 05001,0001,5002,000 Mbps Download speed (local) Data ProductValue (Mbps) Surfshark (WireGuard) 1615 NordVPN (NordLynx) 1256 ExpressVPN (Lightway Turbo) 1479 ExpressVPN (WireGuard) 694 Proton VPN (WireGuard) 1521 Surfshark (WireGuard) 355 NordVPN (NordLynx) 857 ExpressVPN (Lightway Turbo) 1374 ExpressVPN (WireGuard) 523 Proton VPN (WireGuard) 1242 03757501,1251,500 Mbps Download speed (long distance) Data ProductValue (Mbps) Surfshark (WireGuard) 355 NordVPN (NordLynx) 857 ExpressVPN (Lightway Turbo) 1374 ExpressVPN (WireGuard) 523 Proton VPN (WireGuard) 1242 Surfshark (WireGuard) 2.3 NordVPN (NordLynx) 2.4 ExpressVPN (Lightway Turbo) 5.3 ExpressVPN (WireGuard) 2.4 Proton VPN (WireGuard) 5.2 01.534.56 ms Jitter (local) Data ProductValue (ms) Surfshark (WireGuard) 2.3 NordVPN (NordLynx) 2.4 ExpressVPN (Lightway Turbo) 5.3 ExpressVPN (WireGuard) 2.4 Proton VPN (WireGuard) 5.2 Surfshark (WireGuard) 27.5 NordVPN (NordLynx) 4.7 ExpressVPN (Lightway Turbo) 5.7 ExpressVPN (WireGuard) 2.3 Proton VPN (WireGuard) 28.3 07.51522.530 ms Jitter (long distance) Data ProductValue (ms) Surfshark (WireGuard) 27.5 NordVPN (NordLynx) 4.7 ExpressVPN (Lightway Turbo) 5.7 ExpressVPN (WireGuard) 2.3 Proton VPN (WireGuard) 28.3 Surfshark (WireGuard) 21.7 NordVPN (NordLynx) 17.2 ExpressVPN (Lightway Turbo) 14.8 ExpressVPN (WireGuard) 13.6 Proton VPN (WireGuard) 21.7 07.51522.530 ms Latency (local) Data ProductValue (ms) Surfshark (WireGuard) 21.7 NordVPN (NordLynx) 17.2 ExpressVPN (Lightway Turbo) 14.8 ExpressVPN (WireGuard) 13.6 Proton VPN (WireGuard) 21.7 Surfshark (WireGuard) 171 NordVPN (NordLynx) 83 ExpressVPN (Lightway Turbo) 75 ExpressVPN (WireGuard) 72.1 Proton VPN (WireGuard) 90.6 050100150200 ms Latency (long distance) Data ProductValue (ms) Surfshark (WireGuard) 171 NordVPN (NordLynx) 83 ExpressVPN (Lightway Turbo) 75 ExpressVPN (WireGuard) 72.1 Proton VPN (WireGuard) 90.6 1 of 6 Surfshark averaged the very highest download speeds of all of our top VPNs. (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1766056032632-cm0lwfj8z'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1766056032632-cm0lwfj8z not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("Carousel" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "Carousel" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var placeholderSubhead = "Subhead to describe the test and what's being measured and why"; var placeholderCaption = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var globalSubheadJSON = "Subhead to describe the test and what's being measured and why"; var globalCaptionJSON = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var globalSubhead = globalSubheadJSON === placeholderSubhead ? '' : globalSubheadJSON; var globalCaption = globalCaptionJSON === placeholderCaption ? '' : globalCaptionJSON; var subheadOverrides = {"bar-Download speed (long distance)":"Performance of the fastest available protocol for each VPN – speed, latency and jitter"}; var captionOverrides = {"bar-Download speed (long distance)":"But those download speeds dropped significantly when connecting to distant servers.","bar-Download speed (local)":"Surfshark averaged the very highest download speeds of all of our top VPNs.","bar-Jitter (local)":"Equally, jitter was well handled when connecting to the nearest servers.","bar-Jitter (long distance)":"But jitter went nearly off the chart over long distance.","bar-Latency (local)":"Similarly, Surfshark's latency is nothing to worry about when connecting to nearby servers.","bar-Latency (long distance)":"However, Surfshark's latency levels were far higher than the rest over long distance."}; var chartInfo = [{"id":"bar-Download speed (local)","title":"Download speed (local)"},{"id":"bar-Download speed (long distance)","title":"Download speed (long distance)"},{"id":"bar-Jitter (local)","title":"Jitter (local)"},{"id":"bar-Jitter (long distance)","title":"Jitter (long distance)"},{"id":"bar-Latency (local)","title":"Latency (local)"},{"id":"bar-Latency (long distance)","title":"Latency (long distance)"}]; var captionOverrideKeys = Object.keys(captionOverrides); var singleCaptionOverrideValue = captionOverrideKeys.length === 1 ? captionOverrides[captionOverrideKeys[0]] : null; if (singleCaptionOverrideValue === placeholderCaption) { singleCaptionOverrideValue = ''; } function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) { var subheadContent = (subheadOverrides[activeChartId] !== undefined) ? (subheadOverrides[activeChartId] === placeholderSubhead ? '' : subheadOverrides[activeChartId]) : globalSubhead; subheadEl.innerHTML = subheadContent; } if (captionEl) { var captionContent; if (captionOverrides[activeChartId] !== undefined) { captionContent = captionOverrides[activeChartId] === placeholderCaption ? '' : captionOverrides[activeChartId]; } else if (singleCaptionOverrideValue !== null) { captionContent = singleCaptionOverrideValue; } else { captionContent = globalCaption; } captionEl.innerHTML = captionContent; var captionContainer = captionEl.closest('.fv-footer-content'); if (captionContainer) { var hasContent = captionContent && captionContent.trim() !== ''; var shouldShow = hasContent || (captionContainer.parentElement && captionContainer.parentElement.querySelector('.fv-logo')); if (captionContainer.parentElement) captionContainer.parentElement.style.display = shouldShow ? 'flex' : 'none'; captionContainer.style.display = hasContent ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

We therefore expected ExpressVPN’s Lightway Turbo protocol to blow most of the competition out of the water – it’s important to remember that Lightway Turbo is only available on ExpressVPN’s Windows app – but that wasn't quite the case.

Read more about Surfshark's speed ▼

As it turns out, it's Surfshark's fastest protocol, WireGuard – available on all Surfshark apps – that clocked the top download speed when we connected to the nearest server to our lab's speed rig. At a median average of 1615 Mbps, it bested Lightway Turbo's 1479 Mbps.

Over long distance (Europe to the US) Surfshark didn't look so great, though. Its 355 Mbps score is considerably lower than the competition. That's something to consider if you're set to be accessing far flung servers on a regular basis.

We were pleased to see download speeds are good with the more privacy-focused OpenVPN protocol on Surfshark but, again, it dropped to about half that of NordVPN and ExpressVPN over long distance.

And Surfshark's speed claims start to look pretty thin when you consider overall performance. For almost all distances and protocols, we recorded latency and jitter rates than were pretty much twice as bad as the other top VPNs.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1766054641756-pvrf4ir00 *, #fv-chart-1766054641756-pvrf4ir00 *:before, #fv-chart-1766054641756-pvrf4ir00 *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1766054641756-pvrf4ir00 { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1766054641756-pvrf4ir00 { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1766054641756-pvrf4ir00 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1766054641756-pvrf4ir00 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.25rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-chart-subhead { font-size: 1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1766054641756-pvrf4ir00 .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1766054641756-pvrf4ir00 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1766054641756-pvrf4ir00 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1766054641756-pvrf4ir00 .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1766054641756-pvrf4ir00 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1766054641756-pvrf4ir00 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-row, #fv-chart-1766054641756-pvrf4ir00 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1766054641756-pvrf4ir00 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1766054641756-pvrf4ir00 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1766054641756-pvrf4ir00 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-bar-row, #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-stacked-product, #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-bar-label, #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-bar-container, #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1766054641756-pvrf4ir00.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1766054641756-pvrf4ir00 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-row, #fv-chart-1766054641756-pvrf4ir00 .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-bar-container { width: 100% !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1766054641756-pvrf4ir00 .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1766054641756-pvrf4ir00.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "OpenVPN performance", "description": "Subhead to describe the test and what's being measured and why", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2025-12-18T10:44:01.756Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Surfshark", "NordVPN", "ExpressVPN", "Proton VPN", "OpenVPN speed (local)", "OpenVPN speed (long distance)", "OpenVPN latency (local)", "OpenVPN latency (long distance)", "OpenVPN jitter (local)", "OpenVPN jitter (long distance)", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Surfshark – OpenVPN speed (local)", "value": 978, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "NordVPN – OpenVPN speed (local)", "value": 974, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "ExpressVPN – OpenVPN speed (local)", "value": 1038, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Proton VPN – OpenVPN speed (local)", "value": 240, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Surfshark – OpenVPN speed (long distance)", "value": 430, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "NordVPN – OpenVPN speed (long distance)", "value": 857, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "ExpressVPN – OpenVPN speed (long distance)", "value": 808, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Proton VPN – OpenVPN speed (long distance)", "value": 173, "unitText": "Mbps" }, { "@type": "PropertyValue", "name": "Surfshark – OpenVPN latency (local)", "value": 33.4, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN – OpenVPN latency (local)", "value": 14.6, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN – OpenVPN latency (local)", "value": 15.5, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN – OpenVPN latency (local)", "value": 14.7, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Surfshark – OpenVPN latency (long distance)", "value": 174, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN – OpenVPN latency (long distance)", "value": 83, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN – OpenVPN latency (long distance)", "value": 73.5, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN – OpenVPN latency (long distance)", "value": 73.8, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Surfshark – OpenVPN jitter (local)", "value": 9.8, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN – OpenVPN jitter (local)", "value": 4.2, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN – OpenVPN jitter (local)", "value": 6.8, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN – OpenVPN jitter (local)", "value": 7.3, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Surfshark – OpenVPN jitter (long distance)", "value": 15.9, "unitText": "ms" }, { "@type": "PropertyValue", "name": "NordVPN – OpenVPN jitter (long distance)", "value": 4.7, "unitText": "ms" }, { "@type": "PropertyValue", "name": "ExpressVPN – OpenVPN jitter (long distance)", "value": 11.5, "unitText": "ms" }, { "@type": "PropertyValue", "name": "Proton VPN – OpenVPN jitter (long distance)", "value": 8.1, "unitText": "ms" } ]} OpenVPN performance

Average download speeds, latency and jitter rates on local and long distance server connections.

< Prev OpenVPN speed (local) Next > Surfshark 978 NordVPN 974 ExpressVPN 1038 Proton VPN 240 03757501,1251,500 Mbps OpenVPN speed (local) Data ProductValue (Mbps) Surfshark 978 NordVPN 974 ExpressVPN 1038 Proton VPN 240 Surfshark 430 NordVPN 857 ExpressVPN 808 Proton VPN 173 02505007501,000 Mbps OpenVPN speed (long distance) Data ProductValue (Mbps) Surfshark 430 NordVPN 857 ExpressVPN 808 Proton VPN 173 Surfshark 33.4 NordVPN 14.6 ExpressVPN 15.5 Proton VPN 14.7 010203040 ms OpenVPN latency (local) Data ProductValue (ms) Surfshark 33.4 NordVPN 14.6 ExpressVPN 15.5 Proton VPN 14.7 Surfshark 174 NordVPN 83 ExpressVPN 73.5 Proton VPN 73.8 050100150200 ms OpenVPN latency (long distance) Data ProductValue (ms) Surfshark 174 NordVPN 83 ExpressVPN 73.5 Proton VPN 73.8 Surfshark 9.8 NordVPN 4.2 ExpressVPN 6.8 Proton VPN 7.3 02.557.510 ms OpenVPN jitter (local) Data ProductValue (ms) Surfshark 9.8 NordVPN 4.2 ExpressVPN 6.8 Proton VPN 7.3 Surfshark 15.9 NordVPN 4.7 ExpressVPN 11.5 Proton VPN 8.1 05101520 ms OpenVPN jitter (long distance) Data ProductValue (ms) Surfshark 15.9 NordVPN 4.7 ExpressVPN 11.5 Proton VPN 8.1 1 of 6 Surfshark is performs well on OpenVPN when connecting to a local server. (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1766054641756-pvrf4ir00'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1766054641756-pvrf4ir00 not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("Carousel" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "Carousel" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var placeholderSubhead = "Subhead to describe the test and what's being measured and why"; var placeholderCaption = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var globalSubheadJSON = "Subhead to describe the test and what's being measured and why"; var globalCaptionJSON = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var globalSubhead = globalSubheadJSON === placeholderSubhead ? '' : globalSubheadJSON; var globalCaption = globalCaptionJSON === placeholderCaption ? '' : globalCaptionJSON; var subheadOverrides = {"bar-OpenVPN speed (local)":"Average download speeds, latency and jitter rates on local and long distance server connections."}; var captionOverrides = {"bar-OpenVPN speed (local)":"Surfshark is performs well on OpenVPN when connecting to a local server.","bar-OpenVPN speed (long distance)":"But, as with its WireGuard performance, average download speeds drop significantly when connecting to a distant server.","bar-OpenVPN latency (local)":"Surfshark shows far higher latency than the other VPNs using OpenVPN.","bar-OpenVPN jitter (local)":"Surfshark's jitter rates on OpenVPN were also higher than the others.","bar-OpenVPN jitter (long distance)":"Jitter was still slightly higher when connecting long distance too.","bar-OpenVPN latency (long distance)":"Latency was high when connecting to a US server from our Dublin lab location."}; var chartInfo = [{"id":"bar-OpenVPN speed (local)","title":"OpenVPN speed (local)"},{"id":"bar-OpenVPN speed (long distance)","title":"OpenVPN speed (long distance)"},{"id":"bar-OpenVPN latency (local)","title":"OpenVPN latency (local)"},{"id":"bar-OpenVPN latency (long distance)","title":"OpenVPN latency (long distance)"},{"id":"bar-OpenVPN jitter (local)","title":"OpenVPN jitter (local)"},{"id":"bar-OpenVPN jitter (long distance)","title":"OpenVPN jitter (long distance)"}]; var captionOverrideKeys = Object.keys(captionOverrides); var singleCaptionOverrideValue = captionOverrideKeys.length === 1 ? captionOverrides[captionOverrideKeys[0]] : null; if (singleCaptionOverrideValue === placeholderCaption) { singleCaptionOverrideValue = ''; } function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) { var subheadContent = (subheadOverrides[activeChartId] !== undefined) ? (subheadOverrides[activeChartId] === placeholderSubhead ? '' : subheadOverrides[activeChartId]) : globalSubhead; subheadEl.innerHTML = subheadContent; } if (captionEl) { var captionContent; if (captionOverrides[activeChartId] !== undefined) { captionContent = captionOverrides[activeChartId] === placeholderCaption ? '' : captionOverrides[activeChartId]; } else if (singleCaptionOverrideValue !== null) { captionContent = singleCaptionOverrideValue; } else { captionContent = globalCaption; } captionEl.innerHTML = captionContent; var captionContainer = captionEl.closest('.fv-footer-content'); if (captionContainer) { var hasContent = captionContent && captionContent.trim() !== ''; var shouldShow = hasContent || (captionContainer.parentElement && captionContainer.parentElement.querySelector('.fv-logo')); if (captionContainer.parentElement) captionContainer.parentElement.style.display = shouldShow ? 'flex' : 'none'; captionContainer.style.display = hasContent ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

In real terms, that means we would expect higher levels of lag than usual when gaming and more buffering than most when streaming, the latter of which was certainly true in my home streaming experience. (More on that in the Streaming section just below.)

High jitter can lead to poor quality real-time applications, although I didn't notice any problems when I used Surfshark during WhatsApp voice calls or when video conferencing on Google Meet for work.

All in all, though, it's a mixed picture and not quite what we were hoping for.

A VPN engineer once said to me that, beyond certain speeds, it's really latency that's more important when considering VPN performance. If that's true, then Surfshark's fast download data feels a bit hollow.

Of course, speed testing is only ever a snapshot of a moment, with little regard for comparative server network conditions. All the same, despite the headline figures, we'd hope for a better show from Surfshark next time.

Score: 8/10

Unblocking streaming services
  • Surfshark unblocks Netflix libraries, and other services, all over the world.
  • Struggles to unblock US-only YouTube content from other countries.
  • CleanWeb needs disabling to stream ad-funded streaming services.

Surfshark isn’t quite in the same league as NordVPN when it comes to unblocking streaming services but it’s mostly a good choice on this front.

Like NordVPN, and most of the best VPN services, all of Surfshark’s servers are optimzed for streaming. I didn’t need to waste any time trying to find lists of streaming servers. I just found the country I wanted and connected to any server on the list.

We tested Surfshark to see if it could unblock Netflix in five different locations and it did so without hitch, the same as all the other top VPN providers. It’s behind the rest, though, when it comes to certain US streaming services.

Amazon US/UK

Disney+ US/UK

YouTube US

NordVPN Plus

Surfshark

ExpressVPN

Proton VPN

Surfshark is able to unblock Disney Plus in the US and UK but we did have to try a few different servers to get it to work. We've marked it down as a 'no' in the streaming table below for this reason which makes Surfshark look worse than it is, but many users will not have the patience or knowledge to try more than one server location before giving up.

Read more about Surfshark's streaming service unblocking ▼

We also found that Surfshark servers couldn't be used to unblock Amazon Prime Video in the US or UK, no matter how we tried. This is a change from our last test when Surfshark saw success with this service.

YouTube US is one that none of our VPN services managed to unblock this time. We choose a licensed US-geo-locked test video and we weren't able to stream it from the UK with Surfshark or any of the others. This is worth considering if you tend to watch YouTube more than any other platform, although most videos tend not to be geo-specific.

Surfshark proved useful at unblocking all of the free streaming services we tried in the UK and Australia, though. It has a cross next to ITV in the table below because Surfshark didn't manage to unblock it at the first attempt but, again, it did succeed after a server switch.

Surfshark had previously had similar issues when trying to access 10Play in Australia but there were no troubles in this round of tests.

BBC iPlayer

ITV

Channel 4

TVNZ Plus

NordVPN Plus

Surfshark

ExpressVPN

Proton VPN

It's worth noting that you may need to disable CleanWeb when trying to watch shows on ad-funded streaming services such as Channel 4 and ITV. CleanWeb's built-in ad-blocker, and the streamer's need to serve reels of ads before and between the programming, don't work well together and cause things to grind to a halt.

The only downside, of course, is that it does leave you without web-based malware blocking for a time. So, make sure you're watching a trusted service. And make sure to turn CleanWeb back on after.

When we tested Proton VPN we found the same problem but the significant difference there is that we could turn off just the ad-blocking of NetShield while leaving the malware protection running. We also didn’t have to disconnect and reconnect to change the setting, unlike with CleanWeb.

Ultimately, if you're not prepared to tinker – and why should you – then NordVPN is the best streaming VPN but let Surfshark's results in this department put you off. It's still good for unblocking streams.

Score: 7/10

P2P and torrenting
  • Torrenting supported at all of Surfsharks server locations.
  • Search for P2P optimized servers for best performance.
  • No port forwarding.

Surfshark works well for torrenting thanks to its high download speeds and reliable privacy.

I opted for the OpenVPN protocol using TCP to be doubly sure my ISP wouldn't be able to see what I was up to. Sure enough, I've had no nasty letters through the post.

Using uTorrent, I didn't notice anything out of the ordinary as I chose a selection of different file sizes to download. Knowing that Surfshark performs significantly better over short connection distances (see Speed section) I made sure to choose the closest server possible.

All of Surfshark’s locations support torrenting but only some are optimised for P2P use and they’re not so easy to find as with Proton VPN or NordVPN, both which have P2P filters on their server choice lists in the apps.

We figured out that you can type ‘P2P’ into the search field of the server location list with Surfshark and the system will narrow to include only the torrenting optimized servers, but even then it’s very hard to tell that that’s what you’re looking at. There’s nothing in the knowledge base or help sections about it. How most people are supposed to discover this is a bit of a mystery.

The actual torrenting experience, though, once connected, is very similar to any of the top VPNs. My connection speed was limited more by the number and quality of peers for the file I tried to download.

Like many VPNs these days, Surfshark does not support port forwarding for reasons of security – understandable given that’s a VPN’s prime function. You can read Surfshark’s take on it here.

The article even suggests a way you can set up port forwarding manually but, if that’s really something you want that much, then you’re best off choosing Proton VPN which supports the feature directly in its apps.

Score: 4/5

Compatibility
  • Surfshark is compatible with all modern platforms.
  • Exceptionally large feature set available for iPhone users.
  • Use browser extensions for maximum privacy.

Surfshark does a good job of keeping consistency in look, feel, and functionality across its suite of apps. In fact, it scores better than most top VPN vendors with almost all of its features supported on mobile as well as desktop.

iPhone users should take particular notice. Surfshark’s iOS app is exceptionally well stocked compared to the normally underpowered versions peddled by most VPN companies. Split tunneling, auto connect, and use of all three of Surfshark’s VPN protocols are present and correct on both major mobile operating systems.

Like all the very top VPNs, Surfshark is compatible with every modern platform you’d care to mention. There are apps for the likes of Amazon Fire TV, Apple TV and Linux as well as the usual big four of Windows, Mac, Android and iOS.

Features available on iPhone

Surfshark

NordVPN

ExpressVPN

Proton VPN

Kill switch

✅ (automatic)

Autoconnect

Split tunneling

✅ (websites only)

Protocols

WireGuard, OpenVPN, IKEv2

NordLynx, OpenVPN

Lightway, OpenVPN, IKEv2

WireGuard, Stealth

Malware blocking

GPS spoofing

Custom DNS

Read more about Surfshark's compatibility ▼

There are also Chrome, Edge and Firefox browser extensions and these are more important than you might think.

We’d recommend using Surfshark from within your browser to get the most out of the CleanWeb phishing, advert and malware blocking abilities of your VPN, for example. It’ll keep you a little safer online even if the VPN itself is turned off. See the Security section for more details.

But, there's more. Surfshark's browser extensions can mask your real location better than using just using your device's VPN app alone. That's because some websites can ask your browser its country-level location. That’s not something that’s related to your IP address.

We found we got fewer CAPTCHAs when we tried it. Searching Google for VPN-related terms often digs up request for bicycles, buses and road crossing identifications but it was a rare event with Surfshark's Chrome extension on.

We’d recommend using Surfshark from within your browser to get the most out of the CleanWeb phishing, advert and malware blocking abilities of your VPN

The browser extension doubles down on protecting your real location with its ‘Block WebRTC’ feature too. WebRTC (Web Real-Time Communications) is another internet technology which can be used by websites to find your real IP address. Surfshark’s browser extension should stop any red flags by making sure WebRTC doesn’t run on your device.

Putting a VPN onto your router is never a piece of cake but, like most good VPNs, it is possible with Surfshark. It requires a manual installation of the software but, beginners, be not afraid – there is an excellent post on the Surfshark blog of how to get this done, and a supporting article with information for specific routers, protocols (WireGuard/OpenVPN/IKEv3 and firmware (OpenWRT / OPNsense / TP-Link).

Surfshark does a good job of maintaining all of its apps with regular updates to many of them throughout the year.

We took a look at the number of updates that the big VPN providers made to their iOS apps between January and December 2025 for an indicator of how well they support their software. iOS apps are often the least well maintained.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1765979335374-rw1ncji75 *, #fv-chart-1765979335374-rw1ncji75 *:before, #fv-chart-1765979335374-rw1ncji75 *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1765979335374-rw1ncji75 { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1765979335374-rw1ncji75 { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1765979335374-rw1ncji75 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1765979335374-rw1ncji75 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.25rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1765979335374-rw1ncji75 .fv-chart-subhead { font-size: 1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1765979335374-rw1ncji75 .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1765979335374-rw1ncji75 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1765979335374-rw1ncji75 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1765979335374-rw1ncji75 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1765979335374-rw1ncji75 .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1765979335374-rw1ncji75 .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1765979335374-rw1ncji75 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1765979335374-rw1ncji75 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1765979335374-rw1ncji75 .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1765979335374-rw1ncji75 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1765979335374-rw1ncji75 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-row, #fv-chart-1765979335374-rw1ncji75 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1765979335374-rw1ncji75 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1765979335374-rw1ncji75 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1765979335374-rw1ncji75 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1765979335374-rw1ncji75 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1765979335374-rw1ncji75 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1765979335374-rw1ncji75 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1765979335374-rw1ncji75 .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-bar-row, #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-stacked-product, #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-bar-label, #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-bar-container, #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1765979335374-rw1ncji75.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1765979335374-rw1ncji75 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-row, #fv-chart-1765979335374-rw1ncji75 .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-bar-container { width: 100% !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1765979335374-rw1ncji75 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1765979335374-rw1ncji75 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1765979335374-rw1ncji75 .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1765979335374-rw1ncji75.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "iOS app updates in 2025", "description": "This is the number of updates the iOS apps of each of these VPNs has had in 2025", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2025-12-17T13:48:55.374Z", "citation": "Surfshark's apps are well cared for by the development team. The real outliers here are CyberGhost and PIA, neither of which appear to be putting much into app development right now.", "keywords": [ "NordVPN", "Surfshark", "ExpressVPN", "Proton VPN", "PureVPN", "Mullvad", "IPVanish", "Windscribe", "CyberGhost", "Private Internet Access", "iOS app updates", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "NordVPN – iOS app updates", "value": 23, "unitText": "number" }, { "@type": "PropertyValue", "name": "Surfshark – iOS app updates", "value": 21, "unitText": "number" }, { "@type": "PropertyValue", "name": "ExpressVPN – iOS app updates", "value": 25, "unitText": "number" }, { "@type": "PropertyValue", "name": "Proton VPN – iOS app updates", "value": 22, "unitText": "number" }, { "@type": "PropertyValue", "name": "PureVPN – iOS app updates", "value": 18, "unitText": "number" }, { "@type": "PropertyValue", "name": "Mullvad – iOS app updates", "value": 9, "unitText": "number" }, { "@type": "PropertyValue", "name": "IPVanish – iOS app updates", "value": 10, "unitText": "number" }, { "@type": "PropertyValue", "name": "Windscribe – iOS app updates", "value": 11, "unitText": "number" }, { "@type": "PropertyValue", "name": "CyberGhost – iOS app updates", "value": 0, "unitText": "number" }, { "@type": "PropertyValue", "name": "Private Internet Access – iOS app updates", "value": 3, "unitText": "number" } ]} iOS app updates in 2025

This is the number of updates the iOS apps of each of these VPNs has had in 2025

iOS app updates NordVPN 23 Surfshark 21 ExpressVPN 25 Proton VPN 22 PureVPN 18 Mullvad 9 IPVanish 10 Windscribe 11 CyberGhost 0 Private Internet Access 3 iOS app updates Data ProductValue (number) NordVPN 23 Surfshark 21 ExpressVPN 25 Proton VPN 22 PureVPN 18 Mullvad 9 IPVanish 10 Windscribe 11 CyberGhost 0 Private Internet Access 3 Surfshark's apps are well cared for by the development team. The real outliers here are CyberGhost and PIA, neither of which appear to be putting much into app development right now. (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1765979335374-rw1ncji75'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1765979335374-rw1ncji75 not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("All Charts" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "All Charts" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var placeholderSubhead = "Subhead to describe the test and what's being measured and why"; var placeholderCaption = "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized"; var globalSubheadJSON = "This is the number of updates the iOS apps of each of these VPNs has had in 2025"; var globalCaptionJSON = "Surfshark's apps are well cared for by the development team. The real outliers here are CyberGhost and PIA, neither of which appear to be putting much into app development right now."; var globalSubhead = globalSubheadJSON === placeholderSubhead ? '' : globalSubheadJSON; var globalCaption = globalCaptionJSON === placeholderCaption ? '' : globalCaptionJSON; var subheadOverrides = {}; var captionOverrides = {}; var chartInfo = [{"id":"bar-iOS app updates","title":"iOS app updates"}]; var captionOverrideKeys = Object.keys(captionOverrides); var singleCaptionOverrideValue = captionOverrideKeys.length === 1 ? captionOverrides[captionOverrideKeys[0]] : null; if (singleCaptionOverrideValue === placeholderCaption) { singleCaptionOverrideValue = ''; } function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) { var subheadContent = (subheadOverrides[activeChartId] !== undefined) ? (subheadOverrides[activeChartId] === placeholderSubhead ? '' : subheadOverrides[activeChartId]) : globalSubhead; subheadEl.innerHTML = subheadContent; } if (captionEl) { var captionContent; if (captionOverrides[activeChartId] !== undefined) { captionContent = captionOverrides[activeChartId] === placeholderCaption ? '' : captionOverrides[activeChartId]; } else if (singleCaptionOverrideValue !== null) { captionContent = singleCaptionOverrideValue; } else { captionContent = globalCaption; } captionEl.innerHTML = captionContent; var captionContainer = captionEl.closest('.fv-footer-content'); if (captionContainer) { var hasContent = captionContent && captionContent.trim() !== ''; var shouldShow = hasContent || (captionContainer.parentElement && captionContainer.parentElement.querySelector('.fv-logo')); if (captionContainer.parentElement) captionContainer.parentElement.style.display = shouldShow ? 'flex' : 'none'; captionContainer.style.display = hasContent ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

Looking at the table above, Surfshark is certainly one of the better companies for this with it pretty much on a par with other top VPNs Proton VPN, NordVPN and ExpressVPN.

The overall story for us here is that Surfshark has done a really good job, and we’re confident that it will continue to do so on whatever platform you wish to use.

Score: 5/5

Usability
  • Make sure to disable the auto-renew function on set-up.
  • Clear and consistent UX across all major Surfshark apps.
  • Kill switch mode should be clearer on the UI.

After signing up for a Surshark account (don’t forget to take advantage of the Surfshark 7-day free trial while it’s here), the Surfshark online dashboard is a good place to start.

There’s a handy set-up guide to make sure you get the best of all the features – connecting to the VPN, setting up Antivirus, data leak alerts, Surfshark’s search and how to use Alternative ID. All well worth your time.

It’s also a good place to download your apps and extensions. The Download apps panel is surprisingly complete. There are QR codes to scan and buttons both of which offer direct links to the relevant app stores for smart TVs, browser extensions and Linux as well as the big four laptop, phone and tablet apps. You can even pick up the Android APK for any side-loading you might need to do.

Read more about Surfshark's usability ▼

The only thing to watch out for is that we got a little confused by the Windows app installer. It said “Welcome to Surshark One Security Suite Setup Wizard”, when we’d only purchased Surfsharker Starter originally. Sadly, it wasn’t a free upgrade. Ignore it. That’s how the standard installer lookers.

You can access the help center, view the length left of your subscription and, of course, upgrade to a dedicated IP address and an Alternative ID phone number while you're there, should you wish.

Switch off auto-renew and avoid a nasty price hike

Our top tip of all, though, is to head immediately to the Payments tab in the Your Subscriptions section of the My Account menu where you can switch off auto-renew and avoid a nasty price hike once the term of your original subscription ends. Ignore this at your peril, or face paying about twice what you did originally per month on a 12-month contract.

If you do get stung by Surfshark’s auto-renewal, though, don’t panic. The company cares about its reputation and its customers. A little sweet talk to the customer support within a week and you’re highly likely to get a refund.

User Experience

The Surfshark user experience is pretty much identical across the range. There are differences – Android has a home tab, Windows and iOS don’t, for example – but the look and feel is consistent and all the features and settings are in very similar places.

Like all good VPN apps, there are short explainers next to most of the settings and that’s important because it’s by far and away the easiest way to learn about the product. Only Proton VPN stands out as superior on this front with an info button that opens up some really clear pop-up explainers, that are as easy to understand as they are to dismiss.

There’s no map on any Surfshark app. All server locations are listed in alphabetical order and that’s perfectly sensible and easy to navigate. There’s also a search bar to stop you having to scroll to the bottom for UK, US and everything else that’s useful down there.

You can even search for the kind of server you want, instead of the location. Type in ‘P2P’ if you want one for torrenting, for example. We typed in ‘Frank’ and got not only the main Frankfurt server but also a list of those with static IPs as well as the preset MultiHop route of Frankfurt via the GB-London server.

Surfshark home page running on Android. It's a very clear interface easy access to VPN server selection and connection. There is tabbed access to the settings and product features at the bottom. (Image credit: Future Publishing)

If that’s not fast enough for you, there are connection shortcuts with buttons for your recently used servers, your fastest available connection and your nearest country too. There are also stars next to each server in the list so that you can favourite ones that you like or use most often.

We prefer the tabbed layout on the Windows app compared to the mobile versions but then that’s not a huge surprise given that there’s more space to play with on a laptop screen. The tabs make a bit more sense on a computer (VPN, Alternative ID, Alerts, Antivirus, Search and Settings). It’s quick access to pretty much everything you need right there.

Compare that to the four tabs on Android – Home, Products, News, Settings. News doesn’t really offer much but head to Products and you’ll find a list of the same tabbed sections as on the Windows app. In other words, access to the same areas is one step removed. It’s not a big deal and it still works fine.

The desktop apps are still actually quite small – more than the budget mobile port look and feel of cheaper VPNs like Hide.me, Windscribe and PrivadoVPN but nothing like the luxury of space you get with NordVPN, Proton VPN or ExpressVPN.

We don’t really mind that. It’s still attractive, tidy and maybe a massive VPN software windows is exactly the kind of getting-in-the-way that VPNs shouldn’t do. It’s also kind of fitting of Surfshark’s more reasonable price point.

Surfshark's desktop application is not a full screen desktop experience but I don't have a problem with that. It's neat, tidy, easy to use and doesn't get in the way of your other apps and files. (Image credit: Future Publishing)

It’s also a misnomer to think that its size means less complexity. The Surfshark Windows app has 23 buttons, icons and other areas where you can click something. NordVPN’s Windows app also has 23. Proton VPN comes in at a similar 19.

If you want something really stripped back but still nicely put together, then go for ExpressVPN with its 8 – but then that does mean fewer functions at your fingertips. It depends what you’d rather trade off.

Probably the only part of the Windows UX that we find a bit odd is the VPN home page itself, or, more specifically, the information that’s on there. There’s data on connection time, VPN IP address, up and download data so far, what protocol you’re using and whether or not CleanWeb is on.

It’ll also tell you when the kill switch is enabled, but, the strange part is that it says nothing about the kill switch at all when it’s off – and that’s exactly when you need to know about the kill switch: when it’s not protecting you!

Oddly, Android users can tell if it’s off because it’s displayed as a toggle rather than the word On or Off.

Is it a problem? Well, potentially but you can avoid it by making sure your kill switch is activated by default. Otherwise, it would be a concern if your real IP was leaking and you didn’t know about it.

That aside, we really have no complaints to make about how Surshark has put its apps together. They’re easy on the eye and generally a pleasure to use.

Score: 4/5

Accessibility
  • Middling accessibility score for the Surfshark website.
  • Average language support.
  • Extremely poor for keyboard-only use.

Surfshark's accessibility credentials are so-so, at best with both the website and number of languages available in-app about average. Keyboard support is really quite but Siri voice commands for VPN functionality save the day for iOS users.

We used AccessibilityChecker to scan Surfshark’s home page and it came out with a score of 41%. It’s only a single page but it’s a good indicator of what to expect across its website.

That’s a long way behind the likes of Mullvad (89%) and NordVPN (83%), but it still outperformed big names like Proton VPN (35%), ExpressVPN (21%) and Private Internet Access (10%).

The audit report showed that Surfshark’s website passed all navigation tests. It was deemed to have excellent support for screen readers although it didn’t fully support them everywhere.

Read more about Surfshark's accessibility ▼

Equally, the site uses an appropriate color scheme, and text with strong contrast, even though it didn’t match color contrast standards across a few elements.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1762346638954-jzfscsy3p *, #fv-chart-1762346638954-jzfscsy3p *:before, #fv-chart-1762346638954-jzfscsy3p *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1762346638954-jzfscsy3p { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1762346638954-jzfscsy3p { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1762346638954-jzfscsy3p .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1762346638954-jzfscsy3p .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.5rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1762346638954-jzfscsy3p .fv-chart-subhead { font-size: 1.1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1762346638954-jzfscsy3p .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1762346638954-jzfscsy3p .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1762346638954-jzfscsy3p .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1762346638954-jzfscsy3p .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1762346638954-jzfscsy3p .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762346638954-jzfscsy3p .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1762346638954-jzfscsy3p .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762346638954-jzfscsy3p .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1762346638954-jzfscsy3p .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1762346638954-jzfscsy3p .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1762346638954-jzfscsy3p .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-row, #fv-chart-1762346638954-jzfscsy3p .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1762346638954-jzfscsy3p .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1762346638954-jzfscsy3p .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1762346638954-jzfscsy3p .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1762346638954-jzfscsy3p .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1762346638954-jzfscsy3p .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1762346638954-jzfscsy3p .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1762346638954-jzfscsy3p .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-bar-row, #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-stacked-product, #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-bar-label, #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-bar-container, #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762346638954-jzfscsy3p.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1762346638954-jzfscsy3p .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-row, #fv-chart-1762346638954-jzfscsy3p .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-bar-container { width: 100% !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1762346638954-jzfscsy3p .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762346638954-jzfscsy3p .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1762346638954-jzfscsy3p .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1762346638954-jzfscsy3p.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "VPN Accessibility", "description": "Accessibility score for the website home page of each VPN", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2025-11-05T12:43:58.954Z", "citation": "We used AccessibilityChecker to score each VPN's website. It's a single score for a single page but certainly an indicator of whether each VPN has considered the accessibility needs of their customers. Surfshark's accessibility score looks good but it isn't at the same levels of top performers.", "keywords": [ "NordVPN", "Surfshark", "ExpressVPN", "Proton VPN", "PureVPN", "Mullvad", "IPVanish", "CyberGhost", "AdGuard VPN", "PrivadoVPN", "Hotspot Shield", "TunnelBear", "Accessibility score", "Accessibility score (%)", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "NordVPN – Accessibility score", "value": 83, "unitText": "%" }, { "@type": "PropertyValue", "name": "Surfshark – Accessibility score", "value": 41, "unitText": "%" }, { "@type": "PropertyValue", "name": "ExpressVPN – Accessibility score", "value": 23, "unitText": "%" }, { "@type": "PropertyValue", "name": "Proton VPN – Accessibility score", "value": 35, "unitText": "%" }, { "@type": "PropertyValue", "name": "PureVPN – Accessibility score", "value": 35, "unitText": "%" }, { "@type": "PropertyValue", "name": "Mullvad – Accessibility score", "value": 89, "unitText": "%" }, { "@type": "PropertyValue", "name": "IPVanish – Accessibility score", "value": 71, "unitText": "%" }, { "@type": "PropertyValue", "name": "CyberGhost – Accessibility score", "value": 17, "unitText": "%" }, { "@type": "PropertyValue", "name": "AdGuard VPN – Accessibility score", "value": 17, "unitText": "%" }, { "@type": "PropertyValue", "name": "PrivadoVPN – Accessibility score", "value": 10, "unitText": "%" }, { "@type": "PropertyValue", "name": "Hotspot Shield – Accessibility score", "value": 23, "unitText": "%" }, { "@type": "PropertyValue", "name": "TunnelBear – Accessibility score", "value": 74, "unitText": "%" } ]} VPN Accessibility

Accessibility score for the website home page of each VPN

Accessibility score (%) NordVPN 83 Surfshark 41 ExpressVPN 23 Proton VPN 35 PureVPN 35 Mullvad 89 IPVanish 71 CyberGhost 17 AdGuard VPN 17 PrivadoVPN 10 Hotspot Shield 23 TunnelBear 74 Accessibility score (%) Data ProductValue (Percentage %) NordVPN 83 Surfshark 41 ExpressVPN 23 Proton VPN 35 PureVPN 35 Mullvad 89 IPVanish 71 CyberGhost 17 AdGuard VPN 17 PrivadoVPN 10 Hotspot Shield 23 TunnelBear 74 We used AccessibilityChecker to score each VPN's website. It's a single score for a single page but certainly an indicator of whether each VPN has considered the accessibility needs of their customers. Surfshark's accessibility score looks good but it isn't at the same levels of top performers. (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1762346638954-jzfscsy3p'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1762346638954-jzfscsy3p not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("All Charts" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "All Charts" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var globalSubhead = "Accessibility score for the website home page of each VPN"; var globalCaption = "We used AccessibilityChecker to score each VPN's website. It's a single score for a single page but certainly an indicator of whether each VPN has considered the accessibility needs of their customers. Surfshark's accessibility score looks good but it isn't at the same levels of top performers."; var subheadOverrides = {}; var captionOverrides = {}; var chartInfo = [{"id":"bar-Accessibility score","title":"Accessibility score (%)"}]; function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) subheadEl.innerHTML = subheadOverrides[activeChartId] || globalSubhead; if (captionEl) { var captionContent = captionOverrides[activeChartId] || globalCaption; captionEl.innerHTML = captionContent; if (captionEl.parentElement) { captionEl.parentElement.style.display = (captionContent && captionContent.trim() !== '') ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

There’s clearly room for improvement here, but this isn’t a bad score. If you’re partially sighted, then, there are better options out there than Surfshark.

Looking at Surfshark’s desktop apps, we found that the Windows application supports 13 languages including common options such as English, French, German, Italian, Polish, Portuguese, Japanese, Korean and Chinese (Simplified and Traditional.)

There are 13 languages supported on Surfshark. Not as many as other VPNs and a few key options missing. (Image credit: Future Publishing)

But it’s missing others – Arabic, Norwegian, Swedish, Turkish – and many VPNs provide more. Norton VPN supports 26 languages, for instance, and Proton VPN has 28. So, if you would rather have a VPN that talks your native tongue, you might find more luck elsewhere.

Next we tried ditching our mouse. If a user can’t operate a mouse, they should be able to access every feature of the app from the keyboard. Sadly, Surfshark has extremely poor keyboard support.

Pressing Tab allowed us to move around the window, but in many cases the app didn’t highlight the current element (the button, the list, or whatever else we were accessing), leaving us with no idea where we were.

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); #fv-chart-1762344716262-c2xu98f4x *, #fv-chart-1762344716262-c2xu98f4x *:before, #fv-chart-1762344716262-c2xu98f4x *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1762344716262-c2xu98f4x { font-family: 'Open Sans', sans-serif !important; } /* Main Wrappers */ #fv-chart-1762344716262-c2xu98f4x { position: relative !important; overflow: visible !important; --riv-primary: #2E6E93; } #fv-chart-1762344716262-c2xu98f4x .fv-inner-wrapper { color: #1F2937 !important; background-color: #ffffff !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; } /* Typography */ #fv-chart-1762344716262-c2xu98f4x .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: #1F2937 !important; font-size: 1.5rem !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; } #fv-chart-1762344716262-c2xu98f4x .fv-chart-subhead { font-size: 1.1rem !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #6B7280 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; } #fv-chart-1762344716262-c2xu98f4x .rv-chart-caption { font-size: 15px !important; color: #6B7280 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1762344716262-c2xu98f4x .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } /* Footer */ #fv-chart-1762344716262-c2xu98f4x .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1762344716262-c2xu98f4x .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; } /* Display Mode Controls */ #fv-chart-1762344716262-c2xu98f4x .fv-dropdown-container { text-align: center !important; margin-bottom: 16px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-dropdown { width: 100% !important; max-width: 350px !important; padding: 8px 12px !important; font-size: 14px !important; line-height: 1.2 !important; border: 2px solid #d1d5db !important; border-radius: 8px !important; background-color: #ffffff !important; color: #374151 !important; cursor: pointer !important; appearance: none !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 12px center !important; background-repeat: no-repeat !important; background-size: 14px !important; padding-right: 35px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762344716262-c2xu98f4x .fv-dropdown:hover { border-color: var(--riv-primary) !important; } #fv-chart-1762344716262-c2xu98f4x .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 13px !important; color: #6b7280 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1762344716262-c2xu98f4x .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1762344716262-c2xu98f4x .fv-carousel-counter { font-size: 14px !important; color: #6b7280 !important; text-align: center !important; margin-top: 1rem !important; } /* Legend */ #fv-chart-1762344716262-c2xu98f4x .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #4B5563 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } /* Chart Core Styles */ #fv-chart-1762344716262-c2xu98f4x .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-row, #fv-chart-1762344716262-c2xu98f4x .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #4B5563 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; color: white !important; font-size: 14px !important; font-weight: bold !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; overflow: hidden !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #4B5563 !important; white-space: nowrap !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } /* Stacked Bar */ #fv-chart-1762344716262-c2xu98f4x .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1762344716262-c2xu98f4x .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1762344716262-c2xu98f4x .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1762344716262-c2xu98f4x .fv-segment-value { font-size: 14px !important; font-weight: bold !important; color: white !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; } /* Grouped Bar */ #fv-chart-1762344716262-c2xu98f4x .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #4B5563 !important; text-transform: none !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-cluster .fv-bar-container { height: 20px !important; } /* Line Chart Grid */ #fv-chart-1762344716262-c2xu98f4x .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } /* X-Axis */ #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #6B7280 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #6B7280 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #6B7280 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1762344716262-c2xu98f4x .fv-y-axis-title { font-size: 15px !important; color: #6B7280 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; /* Aligns with Y-axis line inside SVG (35/600) */ margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } /* Mobile / Forced Mobile View */ #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-bar-row, #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-stacked-product, #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-bar-label, #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-bar-container, #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-bar-cluster { width: 100% !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-x-axis-label-space { display: none !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762344716262-c2xu98f4x.mobile-view .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } @media (max-width: 500px) { #fv-chart-1762344716262-c2xu98f4x .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-row, #fv-chart-1762344716262-c2xu98f4x .fv-stacked-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-bar-container { width: 100% !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-wrapper:not(.fv-grouped-x-axis) { margin-left: 0 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-label-space:not(.fv-grouped-x-axis .fv-x-axis-label-space) { display: none !important; } #fv-chart-1762344716262-c2xu98f4x .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1762344716262-c2xu98f4x .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-logo { width: 60px !important; max-width: 60px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-carousel-nav-btn { padding: 6px 8px !important; font-size: 11px !important; } #fv-chart-1762344716262-c2xu98f4x .fv-y-axis-title { padding-left: 5% !important; /* (30/600) for mobile view */ } #fv-chart-1762344716262-c2xu98f4x.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } } { "@context": "https://schema.org", "@type": "Dataset", "name": "Language support", "description": "Language options available in the Windows apps of each of these VPNs.", "creator": { "@type": "Organization", "name": "TechRadar", "logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png" }, "isAccessibleForFree": true, "dateCreated": "2025-11-05T12:11:56.263Z", "citation": "Very average levels of language support for Surfshark. Worth checking to see if the languages you need for your VPN are included before you subscribe.", "keywords": [ "NordVPN", "Surfshark", "ExpressVPN", "Proton VPN", "PureVPN", "Mullvad", "IPVanish", "Windscribe", "CyberGhost", "Private Internet Access", "Languages supported", "no. of languages available", "benchmark", "comparison", "performance", "review", "TechRadar" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "NordVPN – Languages supported", "value": 13, "unitText": "number" }, { "@type": "PropertyValue", "name": "Surfshark – Languages supported", "value": 13, "unitText": "number" }, { "@type": "PropertyValue", "name": "ExpressVPN – Languages supported", "value": 17, "unitText": "number" }, { "@type": "PropertyValue", "name": "Proton VPN – Languages supported", "value": 31, "unitText": "number" }, { "@type": "PropertyValue", "name": "PureVPN – Languages supported", "value": 12, "unitText": "number" }, { "@type": "PropertyValue", "name": "Mullvad – Languages supported", "value": 20, "unitText": "number" }, { "@type": "PropertyValue", "name": "IPVanish – Languages supported", "value": 8, "unitText": "number" }, { "@type": "PropertyValue", "name": "Windscribe – Languages supported", "value": 20, "unitText": "number" }, { "@type": "PropertyValue", "name": "CyberGhost – Languages supported", "value": 12, "unitText": "number" }, { "@type": "PropertyValue", "name": "Private Internet Access – Languages supported", "value": 18, "unitText": "number" } ]} Language support

Language options available in the Windows apps of each of these VPNs.

no. of languages available NordVPN 13 Surfshark 13 ExpressVPN 17 Proton VPN 31 PureVPN 12 Mullvad 20 IPVanish 8 Windscribe 20 CyberGhost 12 Private Internet Access 18 010203040 number no. of languages available Data ProductValue (number) NordVPN 13 Surfshark 13 ExpressVPN 17 Proton VPN 31 PureVPN 12 Mullvad 20 IPVanish 8 Windscribe 20 CyberGhost 12 Private Internet Access 18 Very average levels of language support for Surfshark. Worth checking to see if the languages you need for your VPN are included before you subscribe. (function() { function initialize() { var chartWrapper = document.getElementById('fv-chart-1762344716262-c2xu98f4x'); if (!chartWrapper) { console.error('Chart wrapper with ID fv-chart-1762344716262-c2xu98f4x not found.'); return; } function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; // Bars start at width: 0% in HTML, so we just animate them setTimeout(function() { bar.style.width = targetWidth + '%'; }, index * 50 + 100); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); // Animate initial view if ("All Charts" === "All Charts") { charts.forEach(function(chart) { var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); } else if (charts.length > 0) { var firstChart = charts[0]; var firstChartType = firstChart.dataset.chartType; if (firstChartType === 'Line') { animateLineChart(firstChart); } else if (firstChartType !== 'Pie') { animateBars(firstChart); } } if (charts.length > 1 && "All Charts" !== "All Charts") { var currentChartIndex = 0; var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var globalSubhead = "Language options available in the Windows apps of each of these VPNs."; var globalCaption = "Very average levels of language support for Surfshark. Worth checking to see if the languages you need for your VPN are included before you subscribe."; var subheadOverrides = {}; var captionOverrides = {}; var chartInfo = [{"id":"bar-Languages supported","title":"no. of languages available"}]; function showChart(index) { if (index < 0 || index >= charts.length) return; charts.forEach(function(chart, i) { chart.style.display = i === index ? 'block' : 'none'; }); currentChartIndex = index; var activeChart = charts[index]; var chartType = activeChart.dataset.chartType; if (chartType === 'Line') { animateLineChart(activeChart); } else if (chartType !== 'Pie') { animateBars(activeChart); } var activeChartId = chartInfo[index].id; if (subheadEl) subheadEl.innerHTML = subheadOverrides[activeChartId] || globalSubhead; if (captionEl) { var captionContent = captionOverrides[activeChartId] || globalCaption; captionEl.innerHTML = captionContent; if (captionEl.parentElement) { captionEl.parentElement.style.display = (captionContent && captionContent.trim() !== '') ? 'block' : 'none'; } } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.value = index; var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); if (carouselTitle) carouselTitle.innerHTML = chartInfo[index].title; var counter = chartWrapper.querySelector('.fv-carousel-counter'); if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; } var dropdown = chartWrapper.querySelector('.fv-dropdown'); if (dropdown) dropdown.addEventListener('change', function(e) { showChart(parseInt(e.target.value)) }); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); if (prevBtn) prevBtn.addEventListener('click', function() { showChart((currentChartIndex - 1 + charts.length) % charts.length) }); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); if (nextBtn) nextBtn.addEventListener('click', function() { showChart((currentChartIndex + 1) % charts.length) }); } chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) { var chartId = legend.dataset.chart; var chart = document.getElementById(chartId); // Uses page-unique ID if (!chart) return; var lines = chart.querySelectorAll('.riv-line-path'); var dots = chart.querySelectorAll('.riv-dot'); legend.querySelectorAll('.riv-legend-item').forEach(function(item) { var productName = item.dataset.product; var line = chart.querySelector('.riv-line-path[data-product="' + productName + '"]'); var productDots = chart.querySelectorAll('.riv-dot[data-product="' + productName + '"]'); var highlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); }; var clearHighlight = function() { if (legend.querySelector('.isolated')) return; lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); }; var toggleIsolate = function() { var isIsolated = item.classList.contains('isolated'); legend.querySelectorAll('.riv-legend-item').forEach(function(i) { i.classList.remove('isolated') }); if (isIsolated) { lines.forEach(function(l) { l.style.opacity = '1' }); dots.forEach(function(d) { d.style.opacity = '1' }); } else { item.classList.add('isolated'); lines.forEach(function(l) { l.style.opacity = '0.3' }); dots.forEach(function(d) { d.style.opacity = '0.3' }); if (line) line.style.opacity = '1'; productDots.forEach(function(d) { d.style.opacity = '1' }); } }; item.addEventListener('mouseenter', highlight); item.addEventListener('focus', highlight); item.addEventListener('mouseleave', clearHighlight); item.addEventListener('blur', clearHighlight); item.addEventListener('click', toggleIsolate); item.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleIsolate(); } }); }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initialize); } else { initialize(); } function sendMessageToParentWindow(typeOfMessage, message = null) { let url = (window.location.ancestorOrigins && window.location.ancestorOrigins.length > 0) ? window.location.ancestorOrigins[0] : '*'; window.parent.postMessage({ analytics: { ...message } }, url); } sendMessageToParentWindow('analytics', { type: "fv-loaded", timestamp: new Date().toISOString() }); })();

Even when we could see we had reached an important element, like the location list, it turned out not to be optimized for keyboard use.

For example, PIA’s Windows app allowed us to scroll up and down to highlight a country, and connected as soon as we hit Enter. That’s easy and intuitive, we figured it out right away.

With Surfshark, we could browse up and down the location list with the keyboard, but hitting Enter did nothing. Experimenting, hitting Tab and then Enter allowed us to connect some of the time, but we regularly got lost and had to use our mouse to start again.

Overall, if you need keyboard support then Surfshark’s Windows app isn’t a good choice. Check out PIA instead.

Score: 2/5

Customer support
  • Surfshark has 24/7 live chat, email and site customer support.
  • Handy and easy to use on-site knowledge base.
  • Email support will reply with a solution within 24-hours.

Surfshark offers customer support via a support site, live chat (24/7) and email (24/7).

We test VPN support sites by searching for common technical terms and issues, and exploring what comes up. Surfshark’s support site scores well for its vast number of articles.

When we searched for ‘DNS’, for instance, the site gave us 120 results including plenty of useful guides. That compares to 60 for ExpressVPN, and only 5 for Hotspot Shield (and only one of those was useful for setup or troubleshooting).

The only subject area almost completely absent was P2P and torrenting but perhaps for obvious thorny legal reasons.

Read more about Surfshark customer support ▼

All the help articles we read were well written, clear, nicely laid-out and very, very non-threatening.

Most Surfshark support users won't need the search, though, because the site is very well organised.

It displays links to its most important articles on the front page, grouped into topics such as ‘Getting Started’, ‘Fixing Issues’, ‘Billing’ and ‘Account’. It’s likely that many visitors will find the article they need in a couple of clicks.

We noticed that some of the support articles were a little out-of-date. Screenshots didn’t always match the latest version of the app, for instance. But that’s not unusual with VPNs that have a large number of articles, and we didn’t spot any guides where this genuinely had a significant negative result, like telling us to take an action which was no longer possible, for instance.

More to the point, all the articles we read were well written, clear, nicely laid-out and very, very non-threatening. Most people will feel confident of following the advice of this resource and rightly so.

Surfshark’s live chat appears to be well staffed. We were able to talk to helpful agents within a couple of minutes of opening a session. Getting some information about how to set the VPN up for P2P seemed like a good idea and the online agent did not let us down.

Surfshark’s live chat appears to be well staffed, and we were able to talk to helpful agents within a couple of minutes.

They said that all of their servers were fit to use for P2P, they suggested OpenVPN, with UDP for better speeds, and to make sure we had the kill switch on. All pretty sage stuff. And the whole chat took less than 5 minutes once we’d gone through a couple of layers of AI bot automation.

Email support isn’t as speedy. Proton VPN replied to a test question in minutes during its last review; Surfshark says it will reply in 24 hours, and our 21-hour wait suggests that’s about right.

Our reply was short, but friendly, accurate, and with an invitation to keep asking if we needed more help, and that earns a thumbs up from us.

Score: 4/5

User reviews

Like all user reviews, you should take Surfshark's scores on the Trustpilot and the mobile app stores with a pinch of salt, but they do paint the picture of a VPN that you can trust.

Across Google Play and the Apple App Store, it holds ratings on par with the very top VPNs. It's 4.4/5 Trustpilot rating is based on over 27,000 reviews. Around 9% of those are 1-star reviews.

Read them and you'll most find that they're complaints over the auto-renewal system that most VPNs use, and it's easy to make sure that you don't become one of those statistics. You can turn auto-renew off from any point after signing up. Please do it.

Google Play

App Store

Trustpilot

NordVPN

4.6

4.7

4.2

Windscribe

4.6

4.6

4.7

Surfshark

4.6

4.7

4.4

Proton VPN

4.6

4.6

2.0

ExpressVPN

4.7

4.7

4.0

Track record: can you trust Surfshark?
  • Surfshark has never suffered any hacks or data leaks.
  • Apps, logging policy and server infrastructure has all been audited.
  • We'd like to see audits undertaken on an annual basis.

Surfshark has not had to suffer the ignominy of any major hacks or bugs that have gone public, and the NIST Vulnerability Database doesn’t have a single item with the keyword 'Surfshark'. That’s quite unusual.

Proton VPN has three old bugs in the database; ExpressVPN has three; NordVPN also has three old vulnerabilities (all from 2018.) Surfshark does have the advantage of being the youngest of all of these VPNs, though, launched, as it was, in 2018. For the record, Proton VPN is only one year older.

It’s a positive sign that hackers and security researchers haven’t found any major issues in Surfshark’s apps.

The biggest uproar was when the company decided to switch its legal HQ from the British Virgin Islands to the Netherlands.

Surfshark did cause controversy when it added a ‘fake news detector’ feature to its browser extension. The idea was to highlight sources of misinformation, but the feature falsely flagged too many legitimate sites. It also raised a few eyebrows for privacy issues with the idea that this automated feature would decide, on its own, whether a particular source was trustworthy or not. Surfshark removed the feature in 2022 and the company hasn’t tried anything similar since.

Read more about Surfshark's track record▼

For sure, the biggest uproar, though, was when the company decided to switch its legal HQ from the British Virgin Islands to the Netherlands, as we mentioned in the Privacy section of this review.

Audited, but not as well or regularly as Proton VPN

Surfshark has had all the significant parts of its processes and infrastructure audited by third parties over the years but it could do with ramping up the frequency.

Surfshark had its no-logs policy reviewed by Deloitte in 2022. The report was released in January 2023 and agreed that Surfshark’s claims matched its real-life user data procedures. More recently its no-logs claims were audited in June, 2025, and, again, everything was found to be ship shape. (The full report is available to Surfshark users.)

It’s good to see any VPN provider have the courage to put itself through a public audit, but we'd like to see Surfshark do this a little more regularly.

Proton VPN has a no-logs audit every year, and Surfshark needs to do something similar. We’d like to see regular audits of the apps, too.

You’ll have to go back to April 2021 for Surfshark’s last VPN servers and infrastructure audit. That was undertaken by Cure53 and was broadly positive with only some minor “security-relevant discoveries” which were identified as possible weaknesses at the time.

It’s good to see any VPN provider have the courage to put itself through a public audit, but this can’t be a one-off event.

In 2018, the same external team described Surfshark’s apps as “robust” for both privacy and general security with particular praise for the Chrome and Firefox extensions.

Again, though, this was seven years ago now, and it may bear little resemblance to the current state of affairs.

Score: 4/5

Final verdict

(Image credit: Future / Gemini)

Surfshark is an excellent VPN. We rate it as the second best VPN for overall use. We also rate it as the best cheap VPN available.

We recommend the Surfshark Starter plan (from $1.99 per month) or Surfshark One (from $2.29 per month) which comes with antivirus built in. Both offer a 7-day free trial.

Surfshark is an excellent VPN. We rate it as the second best VPN for overall use. We also rate it as the best cheap VPN available.

We recommend the Surfshark Starter plan (from $1.99 per month) or Surfshark One (from $2.29 per month) which comes with antivirus built in. Both offer a 7-day free trial.

Who should use Surfshark?

✅ Anyone looking for cheap VPN: You can get two years of service for less than $70 total and there's a 7-day free trial which means you can try it out for nothing.

People who want an antivirus product with their VPN: Surfshark is one of the few VPNs with a full antivirus system. None of NordVPN, Proton VPN nor ExpressVPN offer this. Make sure to sign up to Surfshark One or One+ for antivirus.

P2P users looking for a good torrenting VPN: Surfshark gave us fast speeds when torrenting and is very easy to use.

Surfshark One – get the 7-day free trial

We rate Surfshark One as the best Surfshark plan. It's only a few dollars more than Starter and brings some worthwhile benefits:

✅ Full antivirus
✅ Data leak alerts
✅ Ad-free Surfshark search engine

Best of all, there's currently a 7-day free trial of Surfshark.View Deal

Who should try a different VPN instead?

Streamers: Surfshark can certainly unblock most streaming services from abroad but it can be a little fiddly for some important ones like Disney Plus and ITV. NordVPN is better for streaming.

1. NordVPN – from $2.99 per month
The best VPN overall and best for streaming
If watching geo-blocked streaming services is the main reason you want a VPN, then NordVPN is a better choice than Surfshark. It's our #1 rated VPN overall and unblocked every streaming service in our tests at the first attempt. It's easy to use and excellent at everything else too. The only downside is that it's more expensive than Surfshark but you get what you pay for. Try it for yourself with a 30-day money-back guarantee.View Deal

Surfshark FAQsDoes Surfshark have a free trial?

Yes, a free 7-day trial is available to new users signing up to 1 and 2-year contracts for any of Surfshark's plans.

Is Surfshark VPN owned by China?

No. Surfshark was founded in 2018 by Vytautas Kaziukonis. It has offices in Lithuania and Poland, where the company remains today. Surfshark was registered in the British Virgin Islands until 2021 when its legal home was switched to the Netherlands.

Surfshark merged with NordVPN in 2022. The company offices are on the same campus in Vilnius, Lithuania, but remain separate from one another.

Is Surfshark VPN trusted?

Yes. Surfshark operates according to secure and trustworthy VPN practices. It uses a RAM-only server network and has an audited no-logs policy to prove that it does not collect of store user data. Surfshark has never had a hack or data leak. You can read more about this in the Track Record section of this review.

Is Surfshark blocked by Netflix?

No. We were able to access five different global Netflix libraries. These were Japan, USA, Canada, UK and Australia. Surfshark was able to unblock Netflix in these locations at the first time of trying – so without switching to any different servers and without changing any settings. (Read more about it in the Streaming section of this review.) We recommend Surfshark as a good VPN for watching Netflix wherever you go.

What are the downsides of Surfshark?

Even though Surfshark is excellent for unblocking Netflix streams, it's not quite as great for streaming as some other VPNs, such as NordVPN and ExpressVPN.

Is Surfshark legal in the US?

Yes. Surfshark is legal to use in the US and in all other locations where VPN use is not banned. VPN bans exist in countries such as Russia, China, Iran, Turkey, India, Saudi Arabia and a few other places. Find out more about where VPNs are banned.

Surfshark testing methodology

I’ve tested and written about VPNs for over five years. I’ve had Surfshark installed on my Windows PC and my mobile phone during that time along with nine other VPNs. Of those, Surfshark is my go-to VPN for my phone even when I'm not reviewing it.

I like the Android app and I particularly like having my Alternative ID at hand to copy into registration fields when I’m signing up for new sites and services. You can read my thoughts on Alternative ID in the Features section.

I use Surfshark most days and I update this review with my thoughts on the service and new Surfshark features each month. The latest this time is the Web Content Blocker tool which you can read about in the Features section too.

Our VPN test lab is where we put all VPNs through the same battery of tests to ensure a level playing field. Mike has been lab testing VPNs for over 11 years and has developed TechRadar’s VPN testing methodology over that time.

Read more our Surfshark testing methodology ▼

Each VPN is put through full lab testing every six months. As with all the VPNs, Surfshark has been tested for speed, ad-blocking, anti-phasing and malware, streaming service unblocking, local IP address leaks and the server network has been spot-checked to confirm that the VPN server locations are accurate.

As well as this, Surfshark’s privacy and security credentials have been checked in-lab by reading through the company’s privacy policy in detail and by looking through VPN configuration files and monitoring connection logs to ensure that each VPN protocol will operate appropriately.

Surfshark is my go-to VPN for my mobile phone even when I'm not reviewing it.

I have subjectively user tested the rest of Surfshark’s in-app privacy and security features on my own devices in real-world situations – on my mobile connection, on public Wi-Fi and on my home network too. These include Search, Autoconnect, Alert, and Alternative ID. You can read our findings in the Privacy and Security sections.

As with all of our VPN lab tests, Surfshark’s speed testing took place on our cloud PC set-up over a 10 Gbps line. We took 10 measurements from two different server locations (Dublin and Los Angeles) and recorded both local and transatlantic VPN connection speeds. We did this on both WireGuard (for a measure of the fastest speeds) and on OpenVPN (for those who wish to use a more secure connection).

Surfshark apps running on the four major operating systems in the TechRadar VPN lab. (Image credit: Future)

Our final scores are a median average of each set of 10 to avoid any skew from outlier data points. As with all VPN speed testing, it only provides a snapshot in time but, in our experience, it’s representative of average performance.

I’ve added my real-world user experience of Surfshark's speed performance to Mike’s results. You can read about both in the Speed section of this review

Mike tested Surfshark’s CleanWeb tool (anti-phishing and anti-malware) by exposing it to the 100 latest phishing and malware websites and seeing what percentage of these it could detect and block. You can see results in the Security section where I’ve added my thoughts on what it’s like to browse websites using CleanWeb, whether it makes a difference to the number of ads seen on pages, and whether it was able to reduce cookie consent pop-ups.

To test streaming service unblocking, Mike built a tool to sequentially run through a series of streaming platforms, as accessed from a different set of global locations. These include Netflix access to content libraries in Japan, the US, UK, Australia and Canada, access to Prime Video, Disney Plus, and local free streaming services such as BBC iPlayer, ITV, Channel 4, 10Play, 9Now and more.

The streaming tool checks whether or not Surfshark is able to access these services from abroad. If it fails, we try to access these services using different servers or by making tweaks to Surfshark’s set-up. For us, there’s a big difference in usability between a VPN that we need to tweak and one which will offer access first time.

Surfshark has been tested for speed, ad-blocking, anti-phasing and malware, streaming service unblocking, local IP address leaks and the server network has been spot-checked

I do a lot of streaming from abroad using VPNs – particularly with services such as Peacock, Sling and FuboTV. I regularly use Surfshark on my Windows PC for this. You can read my thoughts about Surfshark’s streaming quality and consistency, as well as Mike’s lab results, in the Streaming section of this review.

Finally, and certainly not least for the lab testing, is kill switches. This is arguably the most important feature we test in the lab. Mike sets up software to record the reported IP address of his test devices and switches on the VPN. He then performs a series of ways to break the VPN’s operation and checks that the kill switch kicks in without registering any leaks of the lab’s actual IP address.

The last port of call in our Surfshark testing was to test out its customer support. Mike puts his VPN knowledge to some pretty fiendish use and approaches live chat and email support with a complicated but not impossible technical query. You can see how Surfshark did in our Customer Support section.

Do take a look at our VPN lab testing methodology for a more detailed idea of Mike’s process.

This review has been fact checked across the VPN team, as well as with information provided by Surfshark. We update this review each month to include any new Surfshark features, or information about the product, to make sure that what you’re reading is 100% up to date and as you would find the product if you downloaded and used it today.

If you notice anything in your experience of using Surfshark that does not tally with what you read on this page, please let us know in the comments, or by emailing us direct, and we will endeavour to provide you with product support information or include corrections and warnings to other users, depending on which is appropriate.

Categories: Reviews

New data shows that only 1.6 million units of video game hardware were sold in the US in November, making it the worst month since 1995

TechRadar News - Thu, 12/18/2025 - 08:15
Video game hardware and physical software sales just had their worst November in the United States since 1995, despite the holiday season.
Categories: Technology

Don’t gift earbuds or headphones ‘til you read this! My job is testing audio – these are 6 best cheap buys for 2025

TechRadar News - Thu, 12/18/2025 - 08:14
My pick of the 3 top headphones and 3 best earbuds to give as gifts this Holiday season; all TechRadar approved – and no product over $80
Categories: Technology

Fallout 5 will 'be existing in a world where the stories and events of the show happened or are happening', says Todd Howard

TechRadar News - Thu, 12/18/2025 - 08:11
Todd Howard, director and executive producer at Bethesda Game Studios, has teased the next Fallout game, confirming that it will be impacted by Amazon's Fallout TV series.
Categories: Technology

Pages

Subscribe to The Vortex aggregator