Permissions & Access · Privacy Tests

Private Mode Detection Test

Find out whether sites can tell you are in a private window, and which give-away checks still work.

Running the classic checks…
—
—
Storage quota
—
localStorage write
—
Unusual signal

Raw readings

Is it diagnostic on this browser?

The write test stores a single key, “__bs_in_probe__”, and deletes it immediately. It leaves nothing behind. None of these checks can prove you are in a private window, and this page does not try to.

On this page
  1. What private mode hides
  2. The classic checks
  3. Why they stopped working
  4. What a site can infer
  5. Does private mode hide me?

What private mode hides and what it does not

A private or incognito window is a session with amnesia. It starts with no cookies and no stored site data, keeps everything it does in memory, and throws the lot away when the last private window closes. That is a useful property and it is genuinely all the mode promises.

It is not a disguise. Your IP address is unchanged, so the network still sees the same connection. Your device is unchanged, so a browser fingerprint computes to exactly the same value as it does in a normal window. What changes is only what has been written to disk, and only for the length of the session.

The question this page answers

Not “am I really private”, but the narrower technical one: does the browser leak a signal that would let a site guess which kind of window this is? On current browsers the answer is no.

The classic give-away checks

Three techniques were once reliable, and all three are age-checked above rather than merely reported.

  • Storage quota. Chromium normally grants an origin a large share of the free disk. A private window gets a much smaller fixed cap, so a script reading navigator.storage.estimate() could compare the two. The raw number is still readable — it is just no longer conclusive, because a nearly full disk produces a small figure as well.
  • A refused local storage write. Safari in private mode used to throw a QuotaExceededError on the first write. The test performs that write and reports whether it threw, which on any current browser it will not.
  • The old webkit quota call. navigator.webkitTemporaryStorage.queryUsageAndQuota exposed a granted figure on early Chromium and Safari builds. Most browsers have removed it, so its absence is itself the answer.

The right-hand rows grade each one for this browser, so you can see which are still live and which are history.

Why the checks stopped working

Each of these was closed deliberately, and the pattern is the same: the browser had been leaking an implementation detail that happened to correlate with private browsing, and it normalised the two modes so they behave alike.

Quotas were made consistent so that a private window would not report a conspicuously small number. Safari made private storage writable and simply discard it on close, which removed the exception that gave it away. The legacy quota API was retired as part of the same tidy-up. This is the normal shape of browser privacy work: remove the observable difference rather than ask sites to ignore it.

The useful consequence is that the modes are now close to indistinguishable from script. The awkward consequence is that people often overestimate what a private window protects against, because the feature’s name suggests more than the mechanism delivers. The permissions test shows a related area where a private session does still start from a clean slate.

What a site can still infer

Even without a direct signal, behaviour gives things away. A private window arrives with no cookies, so a site that recognised you yesterday sees a stranger today. That pattern — a known device, a completely fresh session — is itself a weak hint, and the same trick works for anyone who simply clears cookies rather than using private mode.

Anything a site already knew from your address is also unaffected. Your IP can still place you in a city, and if you signed in, the account ties the session to you regardless of which window it is in. Private mode protects the local trace, not the connection.

So the correct reading of the verdict above is narrow. “No signal” means these particular checks read as normal, not that the site believes you are in a normal window. It has other ways to guess, and it can be wrong in both directions.

Does private mode hide me at all?

Yes, in the ways that matter for a shared or borrowed computer. Nothing you do lands in history, in autofill or in the site-data store, so closing the window removes the session and leaves nothing for the next person to find. That is a real benefit and it is worth using for it.

It is not a defence against being identified. The device fingerprint is identical in both modes, so a tracker that recognises you by your hardware recognises you in private mode just as easily. If the goal is to be less identifiable rather than merely to leave no trace, take a look at the fingerprint test and the privacy signals test to see which parts a private window does not change.

A reasonable rule

Use private mode to leave no trace on this device. Use a browser built to resist fingerprinting when you do not want to be recognised at all. The two solve different problems.

Frequently Asked Questions

Can websites tell I am in incognito mode?
Usually not, and never reliably. The classic checks — a tiny storage quota, a refused local storage write — were patched years ago. On a modern browser the checks above read as normal whether you are in a private window or not, and a site that claims to detect you is most likely guessing.
What was the storage quota trick?
Chromium caps how much a private window may store, well below the generous share of free disk a normal window gets. A page could read navigator.storage.estimate(), see a small number and guess. It is a weak signal: a device with very little free space reports a small quota too, which is why the test labels it a hint rather than proof.
Why did local storage stop throwing in private mode?
Older Safari refused every write with a QuotaExceededError, which was a dead giveaway. Since Safari 10 the write succeeds and the data is simply discarded when the window closes, so the exception is gone. The test still performs the write, which is why it reports it honestly as no longer diagnostic.
Does anything else give a private window away?
Indirectly, yes. Private windows start with no cookies, so a site can notice a returning visitor who suddenly looks brand new, and the permissions test shows how permission state resets too. Both are inference from behaviour rather than a switch the browser exposes.
Is private mode worth using?
Yes, for what it is actually for: keeping this session out of your history and off this device after you close the window, and stopping the site from recognising you from stored data. It is not anonymity. Your IP address, your browser fingerprint and your network are all unchanged.