How to stop browser fingerprinting: a platform-by-platform guide
Incognito mode, VPNs, and cookie-clearing all feel like privacy measures. Against fingerprinting, they do very little. This guide walks you through a concrete setup, matched to your platform, that blocks most fingerprinting scripts before they collect anything, reduces how reliably your sessions can be reconnected over time, and closes the adjacent mobile tracking channels that can nullify browser-level defenses entirely. By the end, you'll know exactly what to install, what settings to change, and what to expect from each step.
Complete prevention isn't realistic. The goal is meaningful reduction, and the setup below delivers that.
The fact that explains why conventional tools fail: in a case analyzed by the EFF last summer, Meta's tracking scheme identified users even when they had blocked cookies, used a VPN, and browsed in incognito mode, because none of those measures prevented the tracking code from loading and running. Browser fingerprinting doesn't rely on storing data on your device. It works by having scripts read your hardware and software characteristics in real time: GPU rendering output, installed fonts, CPU core count, screen resolution. Clearing your cookies doesn't touch any of it. As tighter privacy regulations eroded cookie-based tracking's value, tracking systems shifted toward browser fingerprinting, a shift documented in a February 2026 study noting that fingerprinting's rise tracks directly with the declining effectiveness of traditional storage-based methods.
The thesis that shapes every recommendation below: blocking fingerprinting scripts from loading beats trying to resist or spoof them. If the script never runs, it collects nothing.
What to expect: defining success before you start
Video of the Day
Before the setup steps, here's what a well-configured browser actually accomplishes and what it doesn't.
- Fewer tracking scripts loading. Most fingerprinting requires a script to execute. With Brave, Firefox Strict mode, or Privacy Badger in place, many known fingerprinting scripts are blocked before they read a single signal, per EFF testing.
- Lower cross-session reconnectability. A fingerprint that can't be read consistently is harder to reconnect to your previous sessions. The IRJAEH study found that even Brave with full shields enabled still generated a stable visitor ID within a session; the benefit is in reducing the fingerprint's useful lifetime, not preventing its generation entirely.
- Fingerprints degrade naturally over time. ACM research on DRAWNAPART confirmed that fingerprints evolve as software and hardware change, eventually becoming confused with those from similar devices. This is why persistent cross-session reconnection, not session-level identification, is the primary threat the setup below addresses.
Quick-reference setup by situation:
| Situation | Recommended setup |
|---|---|
| Everyday desktop | Brave (default shields on), or Firefox + Strict ETP + Privacy Badger |
| Android | Brave or Firefox (Strict) + Privacy Badger; no in-app browsers |
| iPhone/iPad | DuckDuckGo browser (primary) or Safari + content blocker app; no in-app browsers |
| Stuck on Chrome desktop | Privacy Badger + block third-party cookies in settings |
| Chrome for Android | Switch to Brave or Firefox; Chrome for Android has no extension support |
| Sessions requiring continuity break | Tor Browser + New Identity |
Run EFF's Cover Your Tracks before and after completing your setup as a directional comparison. It shows whether your browser blocks known tracking scripts and how distinctive your fingerprint appears. Use it as a before/after sanity check, not a definitive score.
Video of the Day
Why common tools don't work and why blocking scripts does
The user-agent string is just one of roughly two dozen signals a modern fingerprinting script reads, per a May 2026 technical breakdown by antidetectreview. Those signals include canvas rendering output, WebGL renderer strings, AudioContext hashes, installed font sets, CPU core count, screen resolution, and timezone data. Changing the user-agent string while leaving all of those intact creates a detectable contradiction. Detection systems flag the inconsistency.
Three tools that feel protective and aren't:
- Incognito mode clears cookies and storage at session end. It has no effect on canvas, WebGL, font, or hardware signals, which are read directly from your browser and OS in real time. Your incognito fingerprint is nearly identical to your regular one, per antidetectreview.
- A VPN changes your IP address. It doesn't touch any browser API. Canvas hash, GPU renderer string, installed fonts, CPU core count: all unchanged, per antidetectreview. The EFF confirmed that Meta's tracking still identified users behind VPNs, browsing in incognito, with cookies cleared.
- Spoofing your user-agent string was insufficient in 2022 and is less relevant now. It addresses one signal out of two dozen, and detection systems flag the inconsistency with unchanged hardware signals, per antidetectreview.
Why blocking wins over resistance. Two approaches exist: block scripts from loading entirely, or add noise and standardize attributes so that when scripts do run, they collect less useful data. Resistance reduces fingerprint persistence but doesn't prevent fingerprint generation. IRJAEH's controlled experiment found that Brave with full shields on still produced a stable visitor ID within a session, confirming that anti-fingerprinting is not the same as fingerprint prevention. Blocking is upstream of that problem entirely.
The structural ceiling worth knowing about. ACM researchers demonstrated last year that GPU execution behavior, accessed through the WebGPU API, can reidentify devices with 70% accuracy from a pool of 500 devices while bypassing standard privacy mechanisms, with that accuracy remaining stable across more than 2 million test fingerprints. Separately, DRAWNAPART research showed that manufacturing variances between physically identical GPUs allow distinguishing devices that share the same hardware and software configuration. Neither method is yet in widespread commercial use. But they establish the honest ceiling: software-level defenses have structural limits, which is exactly why blocking scripts at the source remains the priority. No mainstream browser addresses WebGPU-based fingerprinting by default.
The order matters: block first, then reduce persistence
Understanding why the steps below are sequenced the way they are makes the whole setup more useful.
Script blocking comes first because it's the only layer that eliminates data collection entirely. If a fingerprinting script never loads, it reads nothing. No amount of signal-spoofing or entropy-reduction matters for that request. This is why browser choice and tracker-blocking extensions are the foundation of the setup, not optional add-ons.
Browser-level anti-fingerprinting is the second layer. Brave's shields reduce the entropy of signals that fingerprinting scripts can read, making your device look more like others and less like a stable unique identifier over time. Useful, but only relevant when a script actually executes. The IRJAEH study showed that even with aggressive defenses active, a stable session-level visitor ID still gets generated. The gain is in cross-session persistence, not session-level invisibility.
Session resets are the third layer, and a niche one. Tor's New Identity is the only action that IRJAEH's testing confirmed reliably breaks cross-session fingerprint continuity. It's slow and impractical for routine browsing. Save it for situations where breaking the session thread actually matters.
How to prevent browser fingerprinting: platform steps in order
Choosing between Brave and Firefox for desktop: Brave is the lowest-friction option because its protections are on by default. Firefox requires one settings change (Strict mode) and one extension, but gives more control over exceptions. Use Brave if you want the simplest path. Use Firefox if you prefer a browser without Chromium's lineage and are willing to spend five minutes on configuration.
Desktop (Windows, macOS, Linux)
Step 1: Switch your browser or add protection to Chrome.
IRJAEH's February 2026 testing found Chrome exposes high-entropy attributes with no built-in protection, enabling stable fingerprinting across sessions. EFF testing confirmed Chrome failed to block a cross-site tracking scheme that Brave and Firefox Strict both blocked.
- Brave: Protections are on by default, and the EFF confirmed Brave blocked Meta's tracking pixel in the case examined. Some sites may need shields adjusted per-site via the lion icon in the address bar.
- Firefox: Go to Settings → Privacy & Security → Enhanced Tracking Protection → Strict. This enables blocklist-based fingerprinting script blocking and third-party cookie restriction. Per EFF testing, Firefox with Strict mode fully blocked the tracking technique that default Firefox settings only partially stopped. Strict mode occasionally breaks site functionality. To whitelist a site: click the shield icon in the address bar → "Turn off protections for this site." Protections remain active everywhere else.
- If you can't leave Chrome: Install Privacy Badger, then go to Settings → Privacy and security → Cookies → "Block third-party cookies." This helps, but leaves you without browser-level signal resistance.
Step 2: Install EFF's Privacy Badger on desktop.
Available for Chrome, Firefox, and Edge. Privacy Badger identifies and blocks trackers by behavior rather than matching against a static list, per the EFF. That lets it catch fingerprinting trackers that static lists can miss. It also sends the Global Privacy Control signal, which is legally binding in California, Colorado, and Connecticut, per EFF. No configuration required after installation.
After installing, you'll see a count on the Privacy Badger icon showing how many trackers were blocked on the current page. If something breaks: click the icon, then lower the slider for the problematic domain from red to yellow, or disable it for that site entirely. Blocking remains active everywhere else.
Android
Step 3: Choose Brave or Firefox for Android; install Privacy Badger on Firefox.
Brave for Android ships with the same default protections as the desktop version. The EFF confirmed Brave blocked Meta's tracking pixel by default. Firefox for Android with Strict mode follows the same settings path as desktop and supports browser extensions, including Privacy Badger. Chrome for Android does not support extensions. Per the EFF, this appears to be a product choice rather than a technical limitation, which means Chrome for Android users have no access to behavioral tracker blocking via extension.
Step 4: Stop opening links inside social apps.
This step addresses an adjacent tracking path, not browser fingerprinting directly. It's here because it bypasses your browser configuration entirely, making all prior steps irrelevant for those sessions.
When you tap a link inside Facebook, Instagram, or similar apps, it loads in the app's built-in browser. Your configured browser protections don't apply. EFF's reporting identified this as the mechanism that enabled Meta's tracking pixel to run in contexts where users believed they were protected. Set apps to open links externally: in each app's settings, look for "In-App Browser" or "Open Links" and set it to your default browser. On Android, confirm your preferred browser is set as the default link handler in system Settings → Apps → Default Apps.
iPhone and iPad
Because iOS requires all browsers to use Apple's WebKit rendering engine, Firefox and Brave on iOS cannot apply the same script-blocking protections as their desktop or Android versions. The iOS setup follows a different model.
Step 5: Use DuckDuckGo for iOS as your primary browser, or add a content blocker to Safari.
Two valid configurations:
- DuckDuckGo browser (iOS): Installs as a standalone browser that adds tracker blocking on top of WebKit. The EFF confirmed DuckDuckGo blocked Meta's tracking pixel by default. One install, blocking enabled from the start.
- Safari + content blocker: In Safari, go to Settings → Safari → Privacy & Security → enable "Prevent Cross-Site Tracking." Then install a reputable content blocker app from the App Store. Enable it in Settings → Safari → Extensions → Content Blockers. The content blocker adds script-level filtering that Safari's built-in settings don't cover alone.
Either configuration is adequate. DuckDuckGo involves fewer setup steps. The Safari model lets you keep Safari as the default while adding blocking. Avoid in-app browsers on iOS for the same reasons as Android (Step 4).
Sessions requiring a full continuity break
Step 6: Use Tor Browser's New Identity.
When session continuity must be fully severed, Tor's New Identity is the only action that IRJAEH's testing confirmed reliably broke the fingerprint connection in that experiment. Closing and reopening Tor without triggering New Identity did not break it. Within a session, Tor still generates a stable fingerprint; the break happens at the identity reset.
To trigger it: Tor Browser menu → New Identity (or Ctrl+Shift+U on Windows/Linux, Cmd+Shift+U on Mac). This closes all tabs, clears state, and establishes a new circuit.
Tor is significantly slower than standard browsers, and some sites block Tor exit nodes. Use it for specific high-sensitivity needs, not routine browsing.
What this setup does and where it stops
Completing these steps puts you in a meaningfully different position than any privacy approach built around incognito, VPNs, or user-agent changes.
| Setup layer | What it accomplishes | Honest limit |
|---|---|---|
| Brave / Firefox Strict | Blocks known fingerprinting scripts and pixels per EFF testing | Session-level fingerprinting still occurs if a script loads |
| Privacy Badger | Extends blocking to trackers identified by behavior, not just static lists | Doesn't add browser-level signal resistance |
| Avoiding in-app browsers | Closes a tracking channel that bypasses all browser settings | Doesn't affect fingerprinting on sites you visit normally |
| Tor New Identity | Breaks cross-session continuity per IRJAEH experiment | Slow; session-level fingerprinting still occurs within a session |
What remains structurally unsolved: hardware-based fingerprinting via WebGPU can reidentify devices while bypassing standard privacy mechanisms, 70% accuracy across 500 devices, stable across 2 million fingerprints, per ACM research published last year. No mainstream browser defends against this by default. That's where individual action meets a ceiling that only browser-vendor decisions and stronger privacy regulation can move.
The setup here makes your fingerprint less stable, less unique, and harder to reconnect across sessions, while closing the mobile tracking channels that can render browser-level defenses irrelevant. That's a real reduction in tracking exposure.