How to Randomize Your Browser Fingerprint for Better Privacy
Patrick Bushe
November 2, 2025 · 5 min read
Why randomization is the goal
Fingerprint blocking and fingerprint randomization are different strategies with different tradeoffs.
Blocking: refuse to execute fingerprinting APIs. Protects you from fingerprinting but breaks websites and creates a very distinctive "blocking browser" profile that is itself identifiable.
Randomization: execute the APIs normally but inject controlled noise so the output varies. Sites still get a fingerprint, but it changes over time, making it impossible to build a persistent profile across sessions.
Randomization wins for most users because it preserves site functionality while defeating persistent tracking.
What to randomize and how often
Canvas fingerprint: randomize per session (when you close and reopen the browser) or per tab, depending on your threat model. Per-session is the common default — consistent within a session (so a site doesn't see you as a different user mid-visit) but different across sessions.
WebGL renderer: randomize per session. Changing GPU renderer mid-session might cause issues with WebGL applications.
Audio fingerprint: randomize per session. Audio context fingerprints are rarely used for session-level tracking.
Navigator properties (hardware concurrency, device memory): these change less frequently in real life, so per-session randomization is appropriate.
User agent: if you're spoofing the UA string, per-session randomization is good. Same-session consistency is important to avoid triggering bot detection.
Screen resolution: hard to randomize without affecting rendering. Skip this or use a fixed alternative value.
Setting up Ghost Browser
Ghost Browser is a Chrome extension that handles randomization for the high-value signals. Install it from the Chrome Web Store.
After installation, open the settings (extension icon → gear icon):
1. Randomization frequency: set to "Per Session" as a default
2. Canvas spoofing: enable. Mode: "Noise injection" (recommended over "Block")
3. WebGL spoofing: enable. This randomizes the renderer and vendor strings
4. Audio context: enable
5. Navigator properties: enable. Set memory and CPU cores to "Randomize within realistic range"
For tabs with different identities (if you're using multiple accounts on the same site): switch the randomization frequency to "Per Tab." Each tab will present a different fingerprint, keeping your sessions siloed.
Whitelisting sites where consistency matters
Some sites benefit from consistent fingerprinting:
- Your bank (fingerprint recognition is part of fraud detection)
- Accounts where 2FA is tied to device recognition
- Sites where you're logged in and the fingerprint is helping maintain your session
For these, add them to Ghost Browser's whitelist. On whitelisted domains, the extension passes through the real fingerprint values. On all other domains, randomization applies.
Verifying randomization is working
Visit coveryourtracks.eff.org. Note the canvas fingerprint hash shown. Close the tab. Open a new one, visit the same URL. With per-session randomization, the hash should be the same (same session). Restart Chrome, visit again — now the hash should be different.
For per-tab testing: with per-tab randomization enabled, open coveryourtracks.eff.org in two tabs simultaneously. The canvas hash should differ between tabs.
If the hash isn't changing, check that canvas spoofing is enabled in the extension settings and that you're not on a whitelisted domain.
Conclusion
Randomizing your browser fingerprint converts you from a stable, trackable identity into a moving target. It doesn't make you invisible — sophisticated fingerprinting can sometimes detect that noise injection is happening — but it defeats the persistent tracking that relies on a consistent identifier across sessions. Ghost Browser implements this correctly and lets you preserve site functionality while protecting your privacy.