GoIPScan

Fast, private, accurate IP lookup

What Is Browser Fingerprinting?

We ran our own browser privacy tool through six browser engines and configurations on one machine and recorded every attribute it reads. Fourteen of the twenty attributes differed between configurations; six were identical in all of them. The canvas hash was different in five of the six — the only two that matched were the same engine with nothing but its timezone and locale changed. Here is the raw comparison, what it shows about how fingerprinting works, and what the anti-fingerprinting settings actually changed.

What a fingerprint is

Your browser answers questions that websites are allowed to ask: what you are running, what your screen is, what time zone you are in, what fonts you have, how your graphics hardware draws a line of text. None of those answers identifies you on its own. Combined, they can form a signature stable enough to recognise you again without storing anything on your device.

That is the difference from a cookie. A cookie is something a site gives you and can be deleted. A fingerprint is assembled from what your browser volunteers, so clearing your data does not change it.

What we measured

On 29 September 2026 we loaded our own browser privacy analyser in six engines and configurations and recorded each attribute it reads, plus a canvas and WebGL hash of our own. Everything ran on the same Mac, so anything that depends on the machine rather than the browser should be constant — which makes the attributes that still differ the interesting ones.

Read this before the table. Six configurations on one machine is not a population study. We can say which attributes differ between these browsers and which of these settings changed them. We cannot say how rare any value is, how many bits of entropy it carries, or how identifiable any real person would be — that needs a large sample of real visitors, which we do not have and are not collecting. Rows highlighted in amber differ across configurations.

The results

What the tool readsChromiumChromium (tz+locale set)FirefoxFirefox RFPWebKit (Safari engine)Chrome
User agent engineHeadlessChrome/153.0.8010.12HeadlessChrome/153.0.8010.12Firefox/155.0Firefox/155.0Version/26.6HeadlessChrome/154.0.0.0
navigator.vendorGoogle Inc.Google Inc.(empty)(empty)Apple Computer, Inc.Google Inc.
navigator.languagesen-USfr-FRen-US,enen-US,enen-GBen-GB,en-US,en
TimezoneEurope/LondonAmerica/New_YorkEurope/LondonAtlantic/ReykjavikEurope/LondonEurope/London
navigator.languageen-USfr-FRen-USen-USen-GBen-GB
screen w×h1280x7201280x7201366x7681280x7201280x7201280x720
screen.colorDepth242424242424
hardwareConcurrency1212128812
deviceMemory3232undefinedundefinedundefined32
navigator.doNotTracknullnullunspecifiedunspecifiedundefinednull
plugins.length000555
Canvas hasha04681f0a04681f0bbf4ebcaf1b75cbd256faeb5b0c9a85b
WebGL vendorGoogle Inc. (Google)Google Inc. (Google)AppleMozillaApple Inc.Google Inc. (Apple)
WebGL rendererANGLE (Google, Vulkan 1.3.0 …ANGLE (Google, Vulkan 1.3.0 …Apple M1, or similarMozillaApple GPUANGLE (Apple, ANGLE Metal Re…
WebGL extensions hash380576aa380576aabec83635154a6a5c98968a81162a1e9
Fonts detected (of 8)777777
touch supportFalseFalseFalseFalseFalseFalse
cookies enabledTrueTrueTrueTrueTrueTrue
Service Worker APITrueTrueTrueTrueTrueTrue
WebRTC availableTrueTrueTrueTrueTrueTrue

Canvas hash is a 32-bit hash of the rendered PNG of a fixed string. WebGL extensions hash is a hash of the supported-extension list. Fonts were probed by measuring text width against a monospace baseline for eight common families.

What differed, and what did not

Fourteen of twenty attributes varied: user agent, vendor, languages, timezone, locale, screen size, hardwareConcurrency, deviceMemory, doNotTrack, plugin count, canvas hash, WebGL vendor, WebGL renderer and the WebGL extension list.

Six were identical everywhere: platform, colour depth, touch support, cookies enabled, Service Worker availability and the number of fonts detected. Most of those are identical because every run was on the same Mac — they describe the machine, not the browser. On a mixed population they would vary considerably.

The most discriminating value was the canvas hash: five distinct results from six configurations. Same machine, same GPU, same text. Chromium and Chrome — the same engine, different builds — produced different hashes, so a build number alone is enough to change it. The only pair that matched was Chromium against itself with the timezone and locale overridden, which is the point of the next section: changing what your browser claims leaves the drawing untouched.

What the browsers themselves give away

Three engines answered navigator.vendor three different ways: Google Inc. on Chromium, Apple Computer, Inc. on WebKit, and an empty string on Firefox. deviceMemory was reported as 32 by both Chromium builds and was undefined in Firefox and WebKit — the property is not implemented there, so a site learns something from the absence as well as the value.

navigator.doNotTrack came back three ways for what is nominally the same signal: null, unspecified and undefined. A field intended as a privacy preference is itself a distinguishing attribute.

What the privacy setting actually changed

The clearest comparison in the table is plain Firefox against Firefox with privacy.resistFingerprinting enabled, on the same machine, same version. It changed eight of the attributes we read:

That is a genuine reduction, and it is worth knowing it is measurable rather than theoretical. But note what it did not change: the user agent was byte-identical to unprotected Firefox, and the font probe still detected the same seven of eight families. The setting narrows the signal; it does not remove it.

We also ran Chromium with an overridden timezone and locale, which is roughly what a "spoof my location" extension does. Timezone, languages and locale all changed — and the canvas hash and WebGL extension hash did not move at all. Changing what your browser claims about where it is does nothing to the graphics signature underneath.

Why a VPN does not help here

Every measurement above was taken over the same connection. None of these values is derived from your IP address, so changing your exit point changes none of them. A VPN moves where your traffic appears to come from; fingerprinting works on what your browser says once it arrives. They address different halves of the problem, which is why our VPN leak test and the browser privacy analyser are separate tools.

Check your own

Our browser privacy analyser reads exactly the attributes in the table above and shows you what your browser reports, without storing it. The useful exercise is comparative: run it in your normal browser, then in a different engine, then with a privacy setting enabled, and watch which rows move. Our how we test page explains the method behind this and the other tools.

Method and limits

Six configurations — Playwright Chromium, Chromium with timezone and locale overridden, Playwright Firefox, Firefox with privacy.resistFingerprinting, Playwright WebKit and the installed Chrome — each loading our live browser privacy page on 29 September 2026, on a single macOS machine, over one connection. The raw JSON output is what the table is generated from.

Four limits worth stating plainly:

Frequently asked questions

Does private or incognito mode stop fingerprinting?

It does not change any attribute in the table. Private mode discards cookies and history for the session; it does not alter your user agent, timezone, hardware values or canvas output. A site using fingerprinting rather than cookies is unaffected by it.

Does a VPN stop fingerprinting?

No. Nothing we measured derives from the IP address. A VPN is the right tool for hiding where you connect from and stopping your ISP seeing the sites you visit; it does nothing about what your browser reports.

Does changing my user agent help?

Not on its own. In our runs the user agent was identical between plain Firefox and Firefox with anti-fingerprinting on, while five other attributes changed — and the Chromium run with an overridden locale kept exactly the same canvas and WebGL hashes. A mismatched user agent can also make you more distinctive, because the claim stops matching the rest of the evidence.

Which of these settings actually did something?

Of the configurations we tested, only privacy.resistFingerprinting changed values that are hard to change — timezone, core count, GPU strings and the canvas hash. The locale override changed only what it was asked to change.

See what your browser reports

The same attributes from the table above, read from your own browser, shown and not stored.

Run the Browser Privacy Analyser What Websites See