What does a website know about my screen?
More than the size. Your screen dimensions, the window you are reading in, your display scaling and, most consequentially, the graphics chip drawing this page. That last one is read without a prompt and is the most identifying value anywhere on this site.
Display
The size, density and graphics of the screen you are reading on.Every display signal, with the call behind it
6 signals, none of which ask your permission first. The entropy column is this site's own estimate of how much each signal narrows a crowd, not a measured population statistic; the methodology page explains why that distinction matters.
| Signal | JavaScript call | Permission | Entropy (bits, estimated) | Fakeable |
|---|---|---|---|---|
| Screen resolution | screen.width and screen.height | None | 4.5 | Partly |
| Viewport size | window.innerWidth and window.innerHeight | None | 4 | Partly |
| Color depth | screen.colorDepth | None | 0.5 | Partly |
| Device pixel ratio | window.devicePixelRatio | None | 1.5 | Partly |
| WebGL renderer | gl.getParameter(gl.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL) | None | 7 | Partly |
| GPU | gl.getParameter(gl.getExtension('WEBGL_debug_renderer_info').UNMASKED_VENDOR_WEBGL) | None | 2 | Partly |
Four numbers that all mean different things
Screen resolution, viewport size, device pixel ratio and colour depth are constantly confused with each other, and each answers a different question. The screen is the whole panel in CSS pixels. The viewport is the part of it your page was given, scrollbars included. The pixel ratio is how many device pixels make up one CSS pixel. Colour depth is bits per pixel.
The trap is display scaling, which sits between the panel and the numbers. At 150 per cent scaling a 3840 pixel wide monitor reports 2560, so the resolution a site sees is not the one printed on the box. Multiply the reported width by the pixel ratio and you get back to the hardware.
Colour depth used to be interesting and now is not. Browsers converged on reporting 24 regardless of what the display can do, precisely to remove it as a fingerprinting surface. Anything other than 24 today is more likely to be an unusual configuration than a better monitor.
The WebGL renderer is the outlier
The other five signals in this category are coarse. The WebGL renderer is not: it returns a driver-supplied string naming your graphics chip and frequently its driver version, and no permission is required to read it. A long, precise hardware string splits visitors far more finely than any browser-level value can.
This is why the fingerprint estimate on this site assigns it the largest single contribution of any passively read signal. If you are going to harden exactly one thing, harden this one.
Browsers differ sharply here. Chromium returns the full unmasked string. Firefox restricts the debug extension that exposes it, and reports a generic value under resistFingerprinting. Safari returns a generic Apple string. Tor Browser blocks it. A vague answer in this card means your browser is doing something for you.
Why a stable value is worse than a variable one
Viewport size changes every time you resize a window, open devtools or rotate a phone. That variability makes it a poor handle for recognising a returning visitor, however precise it is at any one moment.
Screen resolution and the WebGL renderer do not change. They are properties of hardware you keep for years, they survive clearing cookies, private browsing and reinstalling your browser, and that persistence is what makes them valuable to a tracker. Precision and stability together are the problem, not precision alone.
Frequently asked questions
Why does this show a smaller resolution than my monitor has?
Display scaling. Browsers report CSS pixels, and at 150 or 200 per cent scaling those are fewer than the panel's physical pixels. Multiply the reported width by your device pixel ratio to recover the hardware resolution.
What is the difference between screen resolution and viewport size?
The screen is your whole display. The viewport is the area inside the browser window that your page is drawn into, which is always smaller and changes when you resize the window or when a mobile address bar collapses.
Can a website see my graphics card?
In most browsers, yes, without asking. The WebGL debug renderer extension returns a string naming the chip and often the driver. Firefox restricts it and Safari returns a generic value, so what you see depends on which browser you are reading this in.