Browser Fingerprinting Explained: How Websites Track You Without Cookies
You've cleared your cookies, enabled Do Not Track, and maybe even installed a VPN. But websites can still identify you. Browser fingerprinting creates a unique ID from your device's characteristics — and it's nearly impossible to block completely. Here's how it works and what you can do about it.
What is Browser Fingerprinting?
Browser fingerprinting is a tracking technique that identifies users by collecting and combining dozens of technical characteristics from their browser and device. Unlike cookies (which store a unique ID on your device), fingerprinting doesn't store anything — it generates your identity from what your browser reveals about itself.
Think of it like identifying someone by their physical characteristics. No single trait is unique — lots of people have brown hair, or wear size 10 shoes, or have a specific accent. But the combination of all these traits together is often unique to a single person. Browser fingerprinting works the same way.
The key characteristics that make up a browser fingerprint include your User Agent string (browser type, version, OS), screen resolution and color depth, timezone and language settings, installed browser plugins, canvas rendering output, WebGL GPU information, audio processing characteristics, available system fonts, hardware specifications (CPU cores, device memory), and Do Not Track settings (ironically, enabling this makes you more unique).
Research has consistently shown that the combination of these factors is unique for 80-90% of browsers. In other words, your browser is almost certainly identifiable across the web, even in a fresh incognito session with all cookies cleared.
The Major Fingerprinting Techniques
Canvas Fingerprinting
Canvas fingerprinting exploits the HTML5 Canvas element. A tracking script draws an image (text, shapes, gradients) on a hidden canvas, then reads the pixel data. Because different devices and browsers render graphics slightly differently — due to GPU, drivers, font rendering, anti-aliasing, and operating system differences — the resulting image is unique to your specific hardware/software combination.
The rendering differences are invisible to the human eye but produce distinct binary data. The script hashes this data into a fingerprint ID. Canvas fingerprinting is extremely common — a 2026 study found it on 14% of the top 10,000 websites.
WebGL Fingerprinting
WebGL fingerprinting queries your browser's WebGL API to discover your GPU vendor, renderer (exact GPU model), supported extensions, and rendering capabilities. This information alone can narrow your identity significantly — there are thousands of GPU/driver combinations, and the exact one you have is a strong signal.
More advanced WebGL fingerprinting renders 3D scenes and analyzes the output, similar to canvas fingerprinting but in three dimensions. The precision of floating-point calculations on different GPUs creates measurable differences in the rendered output.
Audio Fingerprinting
Audio fingerprinting uses the AudioContext API to process an audio signal and analyze the output. Different devices process audio slightly differently due to hardware and driver variations. By creating an oscillator, processing the signal, and analyzing the frequency data, a tracking script can generate a unique fingerprint from your audio hardware.
Audio fingerprinting is newer and less commonly deployed than canvas fingerprinting, but it's extremely difficult to block because the AudioContext API is deeply embedded in web standards.
Font Fingerprinting
Your installed system fonts are another fingerprinting vector. A tracking script renders text in hundreds of font families and measures the width and height of the rendered text. By detecting which fonts are installed (the text dimensions change when a requested font isn't available and a fallback is used), the script can determine your installed font list — which varies based on your OS, language packs, and installed software.
Why Blocking Fingerprinting is So Hard
The fundamental problem with fingerprinting is the paradox of uniqueness. If you block canvas, you become one of the tiny percentage of users who block canvas — which itself is a distinguishing characteristic. If you fake your User Agent, but your screen resolution, timezone, and GPU don't match the faked agent, the inconsistency identifies you.
Effective fingerprinting protection requires not blocking but randomizing. Instead of refusing to draw on the canvas, you draw but add invisible random noise to the output. Instead of hiding your GPU, you report a slightly different one each session. The goal is to make your fingerprint inconsistent across time, so it can't be used to track you.
Best Protection Strategies
Brave Browser (Easiest)
Brave randomizes fingerprint values by default. Canvas, WebGL, and audio fingerprinting all return randomized results that change per session and per eTLD+1 (domain). This is the lowest-effort option and works well for most people.
Firefox with Extensions (Most Configurable)
Firefox's privacy.resistFingerprinting setting (accessible in about:config) enables a comprehensive set of anti-fingerprinting measures: it normalizes your timezone to UTC, reports a standard screen resolution, limits canvas output, and standardizes other fingerprinting vectors. Combine this with the CanvasBlocker extension for additional randomization.
Tor Browser (Maximum Privacy)
Tor Browser is specifically designed to make all users look identical. Every Tor user has the same screen resolution, timezone, language, user agent, and fingerprint values. This approach works through uniformity — if everyone looks the same, fingerprinting can't distinguish between users. The tradeoff is speed and the fact that some websites block Tor.
Test Your Fingerprint
Our PrivacyCheck tool tests canvas, WebGL, and audio fingerprinting in your browser. It generates your fingerprint hashes and tells you whether your browser is protecting against each technique. Run the test in your regular browser, then again in your privacy-focused browser to compare the results.
If you see consistent fingerprint hashes across multiple test runs, your browser is not randomizing and you're trackable. If the hashes change each time, your fingerprinting protection is working correctly.
The Bottom Line
Browser fingerprinting isn't going away — it's too useful for advertisers and too deeply embedded in web standards to be eliminated. But you can make your fingerprint unreliable as a tracking mechanism by using a browser that randomizes fingerprinting values and by avoiding the combination of unusual settings that make you stand out.
The perfect shouldn't be the enemy of the good. Even basic fingerprinting protection (Brave's defaults, or Firefox with CanvasBlocker) dramatically reduces your trackability compared to a stock Chrome installation. Start there, test your setup with our tool, and iterate.
Check Your Browser Fingerprint
Canvas, WebGL, audio — see if your browser is protecting you.
Run Fingerprint Test →