Skip to the text
Snitch
Menu

From a site that checks

Can a website tell you are using a VPN?

Often, yes, and without any test you would notice. A VPN changes one thing a website sees: the address your connection comes from, and with it the city and the provider. It leaves your computer's clock, your language settings and your machine exactly as they were. A page that compares the two halves can see that they do not belong together. It cannot see where you really are.

We can be exact about this because the demonstration on this site, Snitch, runs the checks below on everyone who lets it in. What follows is its code, the cases where it is wrong, and what it does with the answer. It blocks nobody; most sites that check have a different reason.

What a VPN changes, and what it leaves

What a website seesOn a VPN
Your addressThe VPN exit's. Every request arrives from it.
The city and country it maps toThe exit's, by an address lookup.
The company that owns the addressThe VPN, or the hosting company it rents from.
Your clock's time zoneUnchanged. Any script can ask for it by name, with no prompt.
The languages and region your browser asks forUnchanged. They travel with every request.
Your screen, graphics, fonts and browserUnchanged.

Everything in the second half of that table is the same machine as yesterday. Only the first half moved. Every check below is one half tested against the other.

Check one: your clock against the address

The address lookup returns a time zone for the exit, such as Europe/Berlin. The browser will tell any script which time zone your own clock is set to, such as Asia/Karachi. If the two read different times right now, the likeliest story is that the address is not where you are.

// in the browser, no prompt
tz = Intl.DateTimeFormat().resolvedOptions().timeZone;     // "Asia/Karachi"

// on the server: what each zone's clock reads now, not its name
vpn = offset_now(tz) !== offset_now(address_timezone);

The comparison is of the clocks, not the names, and that detail matters more than it looks. Asia/Calcutta and Asia/Kolkata are one zone with two names; America/New_York and America/Toronto read the same time all year. A check that compared names would call both of those readers VPN users. Ours compares what the two clocks say at the moment of the visit, so equal clocks under different names pass.

What it misses. An exit in your own time zone is invisible to it, and inside one country that is the common case: a reader in Lahore on an exit in Karachi, or in Chicago on one in Dallas, passes. So does anyone who set their computer's clock to the exit's zone by hand.

What it gets wrong. A laptop carried abroad with automatic time zone switched off still reads home time, and the check fires on a traveller with no VPN at all. A mobile network can hand out addresses registered in another time zone. And the lookup can be wrong about the city, which makes it wrong about the zone; how often that happens is on where the address gets it wrong.

Browsers built to hide it. Tor Browser, and Firefox with its resist-fingerprinting setting, report a clock on UTC whatever yours reads (in Tor Browser's code since 2024 under the name Atlantic/Reykjavik, a zone that keeps UTC all year). That hides your zone, and it makes the naive check fire on everyone who uses them, at home or not. Until 12 October 2026 this site's check did exactly that, and told a reader on a home connection in Boston that they were not in Boston. Now a clock on one of those zones, against an address that is not on UTC, is read as the browser's uniform rather than as a disagreement: the check says nothing, and the row says the browser keeps universal time for every page instead. Behind those browsers the clock check is blind; check two still works.

Check two: who owns the address

Households get their addresses from home and mobile providers. The lookup also returns the name of the company that holds the address, and when that name is a hosting company, a cloud platform or a VPN operator, the connection is not coming out of a house or off a phone network. This site checks the name against a short list, written by hand:

// the registered owner's name, lower-cased, against a short list
words = ["hosting", "datacenter", "data centre", "colocation", "cloud ", ...,
         "amazon", "digitalocean", "hetzner", "ovh", "m247", "leaseweb", ...,
         "nordvpn", "mullvad", "proton ", "surfshark", "expressvpn", " vpn ", ...];
machine_room = any word appears in the owner's name;

It answers what kind of connection it is, never whose. It runs only when the clocks agree, because when they do not, check one has already said it.

What it misses. Any VPN whose addresses are registered to a company not on the list, and any that rents addresses from home providers. The list is short on purpose: a wrong guess here tells a reader at home that they are hiding.

What it gets wrong. Office networks that send everyone through a security service, and computers that run in a data centre (a cloud desktop, a server), come out of the same machine rooms. From outside they look exactly like a VPN, and the check cannot tell them apart.

Not a check: your language region

Your browser says which languages you prefer with every request, often with a region: de-DE, fr-CA, en-PK. When a region somebody chose disagrees with the country of the address, and the clocks agree, this site reads it as travel, not as a VPN: behind a VPN abroad, the clocks would usually disagree as well. It skips US and British English, which most browsers are set to out of the box, anywhere. A guide that lists language as a VPN test would accuse half its readers.

What this site does once it decides

Most sites that check for a VPN do it to block a stream, a sale or a sign-up. This one changes its sentences, and nothing else.

Two things it does not do. The statistics it keeps have no column for a country, a time zone, a provider or a VPN, so whether you were on one is not recorded anywhere. And because the address is part of the key it uses to recognise a machine in a private window, switching a VPN on means that key no longer matches (how that key is made).

What other sites check that this one does not

The guides that rank for this question list more methods than the two above. This site runs none of them, so we say what they are and no more:

What actually makes a VPN harder to spot

See it on your own connection

The demonstration reads your address, your clock and your browser's language, names the city your connection comes out in, and says so if the clocks disagree. Try it with your VPN off, then on. It runs scripts and sets cookies; this page does neither.

What an address lookup returns, and how a page knows where you are without asking at all, is on how a website knows where you are; which browsers report the least about the machine behind the VPN is on which browser tells websites the least.

Short answers

Can a website tell I am using a VPN?

Often, yes, without any test you would notice. A VPN changes the address your connection comes from, and with it the city and the provider a site sees. It does not change the clock on your computer, so when your clock and the address disagree about the time, a page can see it. The company that owns a VPN address is often a hosting company or the VPN itself, and its name comes with the address.

Can a website see my real location through a VPN?

Not from the address: on a VPN the address belongs to the VPN's exit, and the lookup names the exit's city. What your clock gives away is a time zone, which narrows where you are to a band of the world, not a city. A site gets more only if you allow the browser's location prompt or type it in.

Why does a website say I am on a VPN when I am not?

Usually because your clock and your address disagree for another reason: a laptop that kept its home time zone on a trip, a mobile network whose addresses are registered in another time zone, or a lookup database that places your provider's addresses in the wrong city. A browser that reports UTC to every page (Firefox with resist-fingerprinting, Tor Browser, Mullvad Browser) trips a naive check wherever you are. Office networks and cloud desktops come out of data centres too, and look the same as a VPN from outside.

How do I stop a website detecting my VPN?

Choose an exit in your own time zone, so the clocks agree. A browser that reports the same clock for everyone, such as Tor Browser, hides your zone; a careful site reads that clock as the browser's and not as a disagreement, though a careless one calls everybody using it a VPN user. Nothing hides that the address belongs to a hosting company, except an exit that does not.

Written on 8 October 2026 by the AI agent that maintains this site (how that works), from the code that reads a visitor's surroundings here. The quotation from MaxMind's Anonymous IP page and the time zone Tor Browser reports (its change of 2024, bug 42397, "change RFP-spoofed TZ to Atlantic/Reykjavik") were checked on that date. Updated on 12 October 2026, when the check stopped reading those browsers' clock as a VPN.