VPNs are often used to spoof the user’s location and access region-locked content and services. It does this by routing the device’s VPN connection through an intermediary server in a remote location. A user in the UK who connects to a VPN server in the USA can access content normally restricted to Americans, for example.
VPNs change your perceived location by swapping out your real IP address with that of the VPN server. IP addresses are unique sequences of numbers and decimals that identify every device on the internet. An IP address can be used to approximate a device’s location.
But what about all the other ways an app or website can determine your location? In addition to an IP address, you’ll also need to consider the following:
- GPS – Built into most smartphones these days, a GPS determines your location using satellite signals. A VPN on its own won’t change your GPS location.
- HTML5 Geolocation – Websites can obtain your location through a combination of GPS, nearby cell towers, and Wi-Fi networks. Google offers the most popular HTML5 geolocation API. Again, a VPN won’t hide you.
- DNS traffic – Requests for websites and other content are made through the Domain Name System, or DNS. Many VPNs fail to route DNS requests, which means they go to a default local nameserver that can in turn reveal your real IP address and location. In VPN terms, this is known as a “DNS leak“.
Even while connected to a VPN, apps and websites can determine your location using any of the above methods. Some apps even require you to enable your GPS before they’ll allow access to content, so turning it off won’t help. Other apps and websites require your GPS, IP address, geolocation, and DNS traffic to all match up with the same location.
We’ll discuss how to fake your location by combining a VPN with other tools.
VPN apps with location spoofing
A couple of VPN apps come with built-in location spoofing features on top of the usual IP address masking:
- ExpressVPN browser extension – ExpressVPN’s plugins for Chrome, Firefox, Edge, Brave, and Vivaldi can spoof your HTML5 geolocation. This is useful for websites that request your location before they’ll let you view content.
- Surfshark for Android – Surfshark’s Android app comes with a built-in GPS override function that allows you to set mock GPS locations to match your VPN server location. This is useful for apps that require access to your GPS location to access content.
As you can see, GPS and geolocation spoofing are not very common among VPN apps. See below for more solutions.
GPS mock locations
You can spoof your GPS location with a GPS spoofing app. There’s no shortage of apps like Fake GPS Location for Android and Location Faker for iOS. But these apps are not foolproof. In fact, they probably won’t work with apps that are strict about their location restrictions.
Apps can check your phone settings to see if you’ve allowed mock locations. If you have, the app knows you’re faking your location and won’t let you in. Apps like Pokemon Go and the MLB app are two examples.
Android GPS spoofing
Plenty of GPS spoofing apps that can be used to set mock locations are available on Google Play. As we mentioned, these might not work depending on the app that you’re trying to trick.
To use mock locations on Android, you’ll first need to enable developer options:
- On Android, go to Settings (cog icon)
- Scroll down to About phone
- Scroll down to the bottom and tap Build number seven times
- Go back to Settings and then to System > Advanced > Developer options
- Click Select mock location app and set it to the GPS spoofing app you chose
Now open your GPS spoofing app and select a location. If you open up Google Maps, you’ll see your mock location displayed.
If mock locations still don’t work, one solution is to root your Android phone, which will allow you to use mock locations without declaring it in the phone settings.
Once you’ve set a mock location, use a VPN to connect to a server near the same place. This will ensure your GPS location and IP address location match.
iOS GPS spoofing
None of the GPS spoofing apps on the Apple App Store actually work, according to their reviews. Instead, you’ll need to download a desktop app and then connect your iPhone to it via USB cable.
Once installed and running, you can choose your mock location on a map and send it to your iPhone.
Alternatively, iOS users can jailbreak their phones and install Protect My Privacy from Cydia, a mobile package manager for jailbroken iPhones. In the app, go to Location and select Protect. Here you can use a map to drop a pin on your desired fake location.
Once you’ve set a mock location, be sure to connect your VPN to a server in the same vicinity so that your IP address will match your fake GPS location.
How to fake your location in Google Chrome browser
Google’s developer tools allow you to set a fake location on Chrome using a simple override. Most sites that restrict users by location do so according to IP address, not browser geolocation, but some sites might use both. In that situation, you can use this method in combination with a VPN to spoof your location:
- In Chrome, click the three-dot icon in the top-right corner and select More tools > Developer tools
- In the developer pane that shows up, click the three dots near the bottom left next to Console, and select Sensors. This will add a new tab.
- Next to Location, click the dropdown to select an override location. Alternatively, you can click Manage to add more override locations, or enter specific GPS coordinates.
If you just want to hide your browser location and not fake one, you can select Error, location unavailable from the dropdown.
Once you’ve overridden your location in Chrome, you’ll still need to use a VPN to get an IP address associated with that location.
Preventing DNS leaks
Whenever you visit a website or load an app, your device first needs to know from where to download content. It does this using the Domain Name System, or DNS, which works like a phone book for the internet that translates IP addresses to domain names.
By default, DNS requests are sent to your internet service provider, which directs you to the location of content so your device can then establish a direct connection. Because ISPs are regional, a website or app can determine your location by analyzing DNS requests.
Many VPNs leak DNS requests outside of the VPN tunnel, revealing the user’s real IP address and location to websites and apps. This is called a DNS leak.
If you want to ensure that DNS leaks don’t happen, be sure to choose a VPN with strong leak prevention that uses its own private DNS servers. All of the VPNs we recommend, including ExpressVPN and Surfshark, come with leak prevention built-in and use private DNS servers.