Seatext library / BotRefund evidence
Which Browser Signals Do Anti-Bot Systems Check?
Anti-bot systems commonly check the User-Agent string, the navigator.webdriver flag, screen resolution, hardware concurrency, battery status, and canvas or WebGL fingerprints. They also cross-reference timezone, locale, installed APIs, fonts, and behavior. A single signal...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Anti-bot systems most often check the User-Agent string, the navigator.webdriver flag, screen resolution, hardware concurrency, battery status, and canvas or WebGL fingerprints. They also look at timezone, locale, available APIs, fonts, and how you move the mouse or type. One signal rarely causes a block by itself. The system scores the whole pattern.
Those signals help a website decide whether a visit comes from a person using a real browser or from an automated script. A normal browser reports consistent data: the User-Agent matches the operating system, the screen size fits a known device, and the GPU rendering looks like real hardware. Automated browsers often reveal small mismatches. The practical takeaway is simple: if you run automation or pay for ads, knowing these signals helps you understand why some visits get blocked.
Why Browser Signals Matter to Anti-Bot Systems
Anti-bot systems need quick evidence, and browser signals are the easiest layer to check. JavaScript can read dozens of browser properties without slowing down the page. That makes these signals useful for scoring traffic in real time.
If these signals were ignored, bot traffic would blend into your analytics. Bots could click ads, submit forms, and trigger conversion pixels. That wastes budget and misleads ad algorithms. That is why detection systems look at browser data first, then add network and behavior checks.
The Browser Signals Anti-Bot Systems Check Most Often
Here are the browser-level signals that appear in most anti-bot systems today. Each one is weak on its own. Combined, they form a fingerprint.
User-Agent string
The User-Agent is a text string that says which browser and operating system you use. Anti-bot systems check whether the User-Agent matches other signals. A Windows Chrome browser should, for example, report a screen size and GPU typical of Windows. Headless browsers sometimes keep a default User-Agent that does not match the real environment.
navigator.webdriver
JavaScript reads navigator.webdriver to see if a browser is controlled by automation. In normal Chrome, Firefox, or Safari, this value is false. Selenium, Puppeteer, and Playwright can set it to true. Many automation tools patch it, so modern detection systems do not rely on it alone.
Screen resolution and window size
A real user's screen has a resolution, color depth, and available height. Headless browsers often use a default viewport such as 800x600 or 1366x768 and keep it fixed. Anti-bot systems compare screen size to the User-Agent and to normal device patterns. They also watch for missing resize events when the window should change.
Hardware concurrency
navigator.hardwareConcurrency reports the number of CPU cores. Most real laptops have 4, 6, 8, or more. Some headless browsers report a default value like 1 or 2. A mismatch with the operating system or device type is a warning sign.
Battery status
The Battery API gives charging state, level, and discharge time. Some browsers no longer expose it, so its presence or absence matters too. Automation tools often fail to simulate realistic battery behavior over time. A battery that never changes during a long session looks suspicious.
Canvas and WebGL fingerprints
Canvas fingerprinting works by drawing shapes or text and reading the pixels. The result depends on your GPU, drivers, and operating system. WebGL adds a renderer string, such as the GPU name. Headless browsers often use software rendering like SwiftShader, which produces a different fingerprint than a physical GPU.
Timezone, locale, and language
Anti-bot systems compare your browser timezone with the IP address location. They also check navigator.language and accepted languages. A proxy in New York with a browser set to Asia/Shanghai can be flagged, even if every other signal is perfect.
Permissions and installed APIs
Real browsers have permission states for notifications, geolocation, cameras, and microphones. Automation tools may expose these APIs in strange orders or forget to update permission states. Anti-bot systems check which APIs exist and how they respond when called.
Fonts and plugins
The list of installed fonts depends on your operating system and installed software. A bot running in a minimal container has very few fonts. Plugins and MIME types used to be a bigger clue; today their presence or absence still adds context.
Behavioral signals
Browser properties are only part of the picture. Anti-bot systems also look at how the page is used: mouse movement, click timing, scrolling, keystrokes, and how fast a form is filled. A human makes small corrections. A bot often moves in straight lines and fills forms in perfect, deliberate steps.
How Anti-Bot Systems Combine Signals
An anti-bot system rarely trusts a single browser property. It cross-references them. For example, it may check that the timezone matches the IP location, the GPU matches the operating system, and the screen size matches the device family.
Then it adds outside evidence: IP reputation, request patterns, and behavior over time. A request from a data-center IP that uses a headless browser fingerprint is much more suspicious than the same browser signals on a residential connection.
Machine learning models weigh the complete pattern. As BotRefund explains, accuracy comes from corroboration, not one browser tell. That is why a single anomaly should never be treated as a bot verdict.
Key Facts: What BotRefund's Signal Checks Look Like
BotRefund's detection is a useful example because it publishes how its checks fit together. The table below summarizes its approach.
| Fact | Detail |
|---|---|
| Independent checks per visit | 106 browser, network, device, and behavior checks |
| Signal categories | Behavioral, browser, hardware, network, and attribution signals |
| Detection confidence | 99% confidence in flagged bot traffic |
| Brands audited | 2,500+ brands |
| Client recovery rate | 83% of clients recover funds from Google and Meta |
| Report format | Refund-ready reports with click IDs, campaign details, timestamps, session recordings, and signal-by-signal reasoning |
Expert Perspective: Why One Signal Is Never Enough
Detection experts treat browser signals as evidence, not verdicts. A single mismatch can have innocent causes. A traveler connecting through a hotel network, a user with a VPN, or an older browser can produce unusual signal combinations.
Strong detection looks for a story. Does the timezone match the IP? Does the GPU match the operating system? Does the battery behavior make sense over a long session? If other signals support the same story, the evidence is strong. If they contradict it, the visit is probably human.
This is why BotRefund's Playwright Init Scripts check is described as one of 106 independent checks. The check looks for a mismatch that a real browsing session does not normally create. But it is just one objective fact about the visit. The final decision comes from the whole pattern.
Limitations: When Browser Signals Are Unreliable
Browser signals are not perfect. Privacy tools, corporate proxies, travel networks, and unusual devices can create false positives. Extensions that block fingerprinting or randomize the User-Agent can make a human look automated.
Some bots are also good at spoofing. They use real browsers under automation, residential proxies, and realistic behavior. In those cases, browser signals alone are not enough. Detection needs network data, IP reputation, and behavioral analysis.
So if you get blocked, do not assume the system is correct. Check for extensions, VPN settings, and outdated browsers first.
What to Do If You Are Flagged as a Bot
If you are a normal user:
- Turn off VPN or proxy extensions.
- Disable fingerprint-blocking or User-Agent switcher extensions.
- Update your browser.
- Check that your timezone and language match your location.
If you run automation for testing:
- Use the testing tools in an allowed environment.
- Remember that spoofing signals to bypass a site's security can violate the site's terms.
If you advertise:
- Install client-side detection that captures browser signals and session evidence.
- Use the same evidence when you file an invalid-traffic claim with Google or Meta.
Frequently Asked Questions
- Why do anti-bot systems use more than one browser signal? Because any single signal can be spoofed. A consistent pattern is much harder to fake than one property.
- Can I hide navigator.webdriver? Many automation tools can override it, but that only removes one clue. The system still checks dozens of other signals, and inconsistent overrides can create new mismatches.
- Which browser signal is the most reliable? None by itself. Canvas and WebGL fingerprints are hard to match exactly, but they still need context from the operating system, GPU, and behavior.
- Do anti-bot systems check my IP address too? Yes. IP reputation, geolocation, and request patterns are usually combined with browser signals.
- Why does a VPN sometimes make me look like a bot? A VPN changes your IP but not your browser timezone. If the browser clock still shows your home timezone, the mismatch can be flagged.
- What is the difference between a browser fingerprint and a browser signal? A signal is one property, like screen resolution. A fingerprint is the combined set of these properties used to identify a specific browser.
- Is it possible to build a bot that passes all checks? In theory, yes, but it takes constant work. Each browser update changes APIs, rendering, and defaults. Detection systems also update, so what works today may fail tomorrow.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How BotRefund can help
BotRefund can show you whether a visit is automated by checking 106 independent signals across browser, network, device, and behavior. Instead of trusting one browser property, it cross-checks evidence such as Playwright init scripts and gives you a clear session-by-session explanation. To get that evidence, BotRefund needs to be installed on your site; it cannot audit traffic that was not tagged.