← back to blog

What a Good Antidetect Browser Actually Has to Fake

A customer buys what’s marketed as an antidetect browser, opens ten profiles, and logs ten accounts in. By the end of the week, half of them are flagged. The browser didn’t do anything wrong on purpose. It just never actually faked anything. Under the hood, it was a stock browser wearing a different logo, and the platform read straight through it in a single session.

That gap, between what a product calls itself and what it technically does, is the whole story of this niche. It’s why “antidetect browser” has become one of the most misused labels in software. Below is a walk-through of what a browser actually has to fake, point by point, to earn that name for real.

I run real proxy and cloud-phone farms, and I put these browsers, Multilogin, GoLogin, Kameleo, AdsPower, Dolphin Anty and the rest, through actual multi-accounting setups every week. This isn’t a checklist copied off a landing page. It’s the list I run before I trust a profile with an account that matters. The focus stays on how a signal gets built and how a browser answers it, not on a script for beating any one platform.

The stock Chromium trap

A lot of buyers fall into the same trap. Plenty of tools calling themselves antidetect browsers are, underneath, a normal Chromium build with a profile manager bolted on top. A profile manager is genuinely useful: it keeps cookies, local storage, and sessions separated so one tab doesn’t bleed into another. But separating storage isn’t the same as separating identity. If every separated profile still renders a canvas the same way, reports the same graphics card, and speaks the same TLS handshake, a site can link all ten of them back to one browser build in seconds. A real antidetect browser has to touch the layers underneath the interface, not just the tabs sitting on top of it.

Canvas, the drawing test

The first thing worth checking is canvas. A site quietly asks the browser to draw text and shapes onto a hidden canvas element, then reads the resulting pixels back out. The exact mix of graphics card, driver, and operating system renders that drawing with tiny sub-pixel differences that never change between visits. A browser that fakes this well produces a different, but internally consistent, canvas result for every profile. One that fakes it badly either returns the same value every time, which is its own tell, or scrambles the pixels into obvious noise, an even bigger one. The goal is a different answer per profile that still looks like a real machine drew it.

WebGL, the GPU leak

WebGL runs the same idea in three dimensions, and it leaks more than canvas does: specifically the graphics card’s vendor and model string. A lot of cheap tools leave this untouched, so every profile on the machine reports the same card, quietly relinking all those supposedly separate identities. A browser doing this properly assigns each profile a plausible, different GPU string, and keeps its WebGL rendering behavior consistent with whatever card it claims. A mismatch here, a rendering quirk that doesn’t match the claimed hardware, is one of the fastest ways a profile gets caught.

Fonts, a personal fingerprint

The list of fonts installed on a machine sounds like a boring detail until you realize how personal it is. It’s a quiet record of every piece of software ever installed that happened to bring its own fonts along: design tools, office suites, language packs. A site can query which fonts are available and get a surprisingly specific answer back. A browser worth using ships each profile with its own believable font list, not the same forty fonts repeated across every window, and not a randomly generated list no real machine would ever actually have installed.

Audio stack, the quiet giveaway

Audio fingerprinting gets overlooked because nobody thinks of their browser as making a sound. A script feeds a signal through the browser’s audio processing pipeline and reads the exact numbers that come back out, and those numbers depend on the hardware and software stack the same way canvas depends on the graphics card. It’s quiet, it’s invisible, and a lot of tools simply don’t bother touching it. Whether a browser spoofs its audio fingerprint, and does it consistently with the profile’s other claimed hardware, is a fast way to tell the serious tools from the reskins.

HTTP headers and the accept-language mismatch

Canvas and WebGL get most of the attention, but plain HTTP headers still matter and cost nothing to check. The accept-language header tells a site which languages a browser prefers, in order, and it should match the locale a profile claims and the language its interface actually runs in. The user agent string names a browser and operating system, and the order those headers arrive in is itself measurable and fairly consistent per browser build. A profile claiming to be a specific browser version but sending headers in an order nobody’s real installation of that browser uses is quietly telling on itself before a single active script even runs.

Timezone and locale, the geography check

Timezone and locale sound trivial next to canvas and WebGL, but they’re some of the easiest mismatches for a site to catch, because they don’t require any deep technical reading, just a comparison against the IP. If a proxy exits through a country three timezones away from what the browser reports, or the locale is set to a language nobody in that country actually speaks, that gap is visible without a single active fingerprinting script running. A browser that fakes fingerprints well but leaves timezone and locale on default is solving the hard problem and missing the easy one.

Screen, hardware, and the CPU story

Screen resolution, color depth, how many CPU cores the browser reports, how much memory it claims: these round out the hardware picture a site builds. None of them are exotic to fake individually. The actual test is whether they agree with everything else the profile claims. A profile reporting a high-end graphics card, two CPU cores, and a screen resolution common on a five-year-old laptop is telling three different, contradictory stories at once, and a contradiction like that stands out far more than an honest, average setup ever would.

Hardware concurrency and device memory

Two browser APIs worth knowing by name here are hardware concurrency, which reports how many CPU cores are available, and device memory, which reports a rounded estimate of total RAM. Neither number is secret, and neither is hard to fake in isolation. The problem is the same one as everywhere else on this list: believability. A profile claiming thirty-two cores and two gigabytes of memory is nonsense no real machine would ever report, and a profile with four cores and thirty-two gigabytes of memory is unusual enough to stand out on its own. The values need to land somewhere a real, unremarkable device would actually land.

Extensions and installed plugins

Some sites can probe which browser extensions are installed, and an unusual combination is its own kind of fingerprint, the same way an unusual font list is. A profile carrying a dozen obviously automation-flavored extensions, or none at all when a real user’s browser almost always has at least a couple, both stand out for different reasons. This one is easy to overlook because it lives outside the classic canvas and WebGL conversation entirely, but it’s read by the same systems looking for anything that doesn’t resemble an ordinary browser.

Keeping a profile consistent over time

One more piece is easy to miss, because it isn’t a single value, it’s a pattern over time. A profile that resets its fingerprint on every session looks less like a returning user and more like a machine that can’t hold a story together. Real devices are boringly stable: the same font list, the same GPU, the same hardware numbers, session after session, for months. A browser that regenerates a fresh set of values too often, thinking that’s safer, actually creates the opposite of consistency: an identity that never settles into anything a platform can recognize as one ordinary, returning visitor.

WebRTC and the local network leak

WebRTC exists for voice and video calls, and if it’s left unmanaged it can quietly expose a real local network address underneath whatever proxy someone thinks they’re routing through. This one matters because it operates at a different layer entirely. It isn’t measuring a graphics card or a font list, it’s peeking straight at the actual network stack. A browser worth trusting gives real, working control over this, not a checkbox that claims to block it while still leaking through a background connection anyway.

How to actually verify a browser did its job

None of this has to stay theoretical. Public fingerprint testing sites exist specifically to read a browser’s own signals back and report how rare the combination is, and they work exactly the same way against a profile inside an antidetect browser as against an ordinary one. Open one inside a fresh profile, note the entropy score and which values stand out as unusual, then compare it against a second profile from the same tool. If two supposedly separate profiles come back looking suspiciously similar, or one comes back looking like nothing a real device would ever report, that’s the browser failing the checklist, not a platform being unfair.

Consistency over randomization

Here’s the pattern running through every item on this list. The hard part was never generating a value. Any tool can throw a random GPU string or a random font list at a profile. The hard part is making every value on a profile agree with every other value, so the whole thing reads like one plausible, boring, real device. A profile with a top-tier graphics card, a budget CPU count, and a five-year-old screen resolution isn’t hidden, it’s flagged, because the story doesn’t hold together. The browsers worth paying for treat every profile as one coherent identity, not a pile of independently randomized settings.

What the proxy still has to do

None of this replaces a proxy, and it’s worth saying plainly because it’s the mistake I see most often. The browser handles the fingerprint story. It does nothing about the IP story. Run five perfectly faked profiles out of the same data center address and they’re relinked at the network layer, no canvas trick required. The browser’s job and the proxy’s job are two separate halves of the same picture, and skipping either one undoes the other.

What a real antidetect browser should never promise

Last, a word on the marketing itself. No browser that fakes every item on this list is undetectable, and any product using that word is telling on itself, because it doesn’t understand its own limits. Platforms watch behavior too: typing speed, mouse movement, account age, posting patterns, none of which a fingerprint touches at all. A browser that nails canvas, WebGL, fonts, audio, timezone, and hardware consistency has done its actual job. Whether an account survives after that still depends on how it’s used, and no piece of software gets to promise that part.

This is the actual checklist I run every tool through before trusting it with an account that matters. I test these browsers on real multi-accounting setups, and the written reviews and picks that come out of that testing live on the Anti-Detect Review home page, along with notes on which tools fake this list properly and which ones are a Chromium build wearing a costume.

Get new guides and videos first — join the Telegram channel.

need infra for this today?