Seatext library / BotRefund evidence
How to Distinguish Between Good and Bad Bots: A Practical Classification Guide
Good bots like search crawlers identify themselves clearly and follow robots.txt, while bad bots hide behind fake user agents, use residential proxies, and mimic human behavior poorly. Reliable classification requires checking user agents against...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Good bots identify themselves honestly — Googlebot, Bingbot, and other search crawlers send recognizable user-agent strings and respect your robots.txt directives. Bad bots disguise themselves, rotate through residential IP addresses, and attempt to mimic human behavior while leaving telltale technical fingerprints. The reliable way to tell them apart is to combine three layers: verify the declared identity against known-good bot lists, check the IP address against threat intelligence feeds, and analyze behavioral evidence that automation struggles to fake consistently.
What Makes a Bot "Good" vs "Bad"
Good bots provide value to your site or the broader web ecosystem. Search engine crawlers index your content so people can find it. Monitoring bots check uptime and performance. Feed fetchers pull content for legitimate aggregators. These bots announce themselves with consistent user-agent strings, operate from predictable IP ranges published by their operators, and follow crawl-delay and robots.txt rules.
Bad bots extract value without permission or cause direct harm. Scrapers steal content or pricing data. Credential stuffers test stolen login pairs. Click fraud bots drain ad budgets. Form spammers pollute lead pipelines. They hide behind rotated user agents, residential proxy networks, and headless browser automation frameworks that attempt to simulate human interaction — but usually fail under close inspection.
Core Signals Used to Classify Bots
No single signal is decisive. Classification works by corroborating independent evidence across browser, network, device, and behavior dimensions. BotRefund uses 106 independent checks that each contribute one objective fact about a visit, then cross-checks them before an AI model weighs the complete pattern[S1]. Key signal categories include:
- Browser integrity checks: Automation tools like Playwright or Puppeteer patch or hide browser APIs. Checks such as Playwright Init Scripts detection and Clean Context Iframe tests reveal mismatches that a real browsing session does not normally create[S1][S7].
- Biometric and behavioral interactions: Real visitors produce imperfect, varied behavior — pauses, hesitation, natural mouse tremor, and scroll patterns shaped by reading. Bots struggle to reproduce varied timing and movement. The Scrollbar Width Leak check and motion behavior analysis (absence of humanlike mouse tremor, robotic linear movements, superhuman input speed under 1ms, grid-aligned movement patterns) expose these gaps[S2][S5].
- Engagement and session signals: Absence of clicks or scrolling, unnatural session durations (too short, too long, or too uniform), and ghost clicks that happen without the natural sequence of human intent all indicate automation[S2].
- Trap and honeypot interactions: Bots that respond to hidden or intentionally deceptive page elements reveal themselves[S2].
- Network and attribution signals: IP reputation, data center vs residential ASN classification, VPN/proxy detection, and click ID (GCLID, FBCLID) correlation with behavioral evidence round out the picture[S3][S6].
Step-by-Step Process to Distinguish Bot Types
- Collect the raw request data. Capture user-agent string, full HTTP headers, client IP, TLS fingerprint (JA3), and any click identifiers from ad platforms.
- Verify declared identity. Compare the user agent against maintained lists of known-good crawlers (Google, Bing, Yandex, Baidu, major SEO tools, monitoring services). Reverse-DNS the IP to confirm it belongs to the claimed operator — Googlebot IPs resolve to *.googlebot.com, for example.
- Check IP reputation. Query threat intelligence feeds for the client IP: data center ASNs, known proxy/VPN exit nodes, Tor nodes, and previously flagged abuse IPs. Good bots rarely originate from residential proxy networks.
- Run client-side behavioral checks. Deploy JavaScript challenges that measure mouse movement quality, scroll behavior, click timing, form interaction patterns, and browser API consistency. The Playwright Init Scripts, Clean Context Iframe, and Scrollbar Width Leak checks are examples of independent browser integrity tests[S1][S5][S7].
- Correlate signals across the session. A single anomaly is not a verdict. Privacy tools, corporate networks, and unusual devices can produce unexpected behavior for genuine people. Keep each signal as evidence and cross-check whether other signals support the same story[S1].
- Apply a weighted decision model. Instead of hard rules, weigh the complete pattern. BotRefund's prediction AI evaluates the full picture across browser, network, device, and behavior evidence to identify a visit as bot or human with 99% accuracy[S1][S2].
- Classify and act. Good bot → allow, respect crawl budget. Bad bot → block, challenge, or suppress conversion events. Suspicious → monitor, rate-limit, or require additional verification.
Common Classification Mistakes
- Relying on user agent alone. User-agent strings are trivial to spoof. Any classification that stops at header inspection will misclassify sophisticated bad bots and may block legitimate traffic using privacy tools.
- Treating one anomaly as proof. A missing mouse tremor or an unusual screen resolution can come from a real user on an uncommon device. Evidence must be cross-checked[S1].
- Ignoring good bot diversity. Beyond Googlebot, there are dozens of legitimate crawlers (Ahrefs, Semrush, MJ12bot, DotBot, Applebot, DuckDuckGo, etc.). Blocking unknown user agents indiscriminately hurts SEO and partner integrations.
- Confusing low-quality human traffic with bots. Meta campaigns can attract accidental clicks, low-intent visitors, and form spam from real people. Not every bad lead is a bot[S3]. Structured audit comparing ad-platform data, website sessions, and CRM outcomes prevents over-blocking.
- Using only server-side logs. Server logs show IP, headers, and request timing. They miss client-side behavior — mouse movement, scroll depth, browser API integrity — that distinguishes advanced bots using residential proxies[S4].
Key Facts
| Metric | Detail | Source |
|---|---|---|
| Independent detection checks | 106 browser, network, device, and behavior signals | S1 |
| Overall detection confidence | 99% accuracy via AI-weighted pattern corroboration | S1, S2 |
| Brands audited | 2,500+ | S2 |
| Client refund recovery rate | 83% of clients recover funds from Google and Meta | S2 |
| Estimated bot click waste | Up to 20% of Google and Meta ad budget | S2 |
| Case study recovery | FinTrust recovered $140,000 with 14% average bot click rate | S8 |
| Conversion improvement | +18% conversion rate after suppressing bot conversions | S8 |
Limitations of Manual Classification
Manual log analysis works for obvious patterns — known crawler user agents, data center IP blocks, simple scrapers. It breaks down against:
- Residential proxy networks that rotate clean IPs per request
- Headless browsers with stealth plugins that patch navigator.webdriver, chrome.runtime, and other automation fingerprints
- Human-in-the-loop click farms where real people perform scripted actions
- Low-volume, slow-rate bots that stay under rate-limit thresholds
At scale, manual review cannot keep pace. Automated, multi-signal correlation with continuous model updates is necessary for reliable classification[S1][S2].
When to Use Automated Detection
Consider automated bot detection when:
- You run paid campaigns on Google or Meta and need refund-ready evidence — reports must include click IDs, campaign details, timestamps, session recordings, and signal-by-signal reasoning in the format platform reviewers accept[S2].
- Bot traffic distorts conversion pixels and poisons bidding algorithms, raising CAC and lowering ROAS[S4].
- You need to suppress conversion events for automated traffic so ad platforms train on verified human actions only[S8].
- You want to negotiate invalid activity credits with Google or Meta — BotRefund's 83% success rate across 2,500+ audits comes from 99% detection confidence, platform-accepted report formatting, and negotiation experience[S2][S6].
FAQ
How do I know if Googlebot is real or spoofed?
Real Googlebot IPs reverse-resolve to *.googlebot.com. Verify with a reverse DNS lookup. Google also publishes current IP ranges. Any request claiming Googlebot user agent from an IP that doesn't match is spoofed.
Can bad bots pass CAPTCHAs?
Yes. CAPTCHA farms use human solvers, and ML-based solvers increasingly defeat image and audio challenges. CAPTCHA is a friction tool, not a classification tool. It reduces volume but doesn't distinguish bot types.
What's the difference between server-side and client-side bot detection?
Server-side analyzes logs: IP, headers, request frequency. It catches basic scrapers but misses advanced bots using residential proxies and real browser engines. Client-side runs in the visitor's browser and measures behavior, API integrity, and rendering consistency — revealing automation that looks clean at the network layer[S4].
Do I need to block all bots except Google?
No. Many legitimate crawlers (Bing, Yandex, DuckDuckGo, SEO tools, uptime monitors) provide value. Maintain an allowlist of verified good bots by user agent and IP ownership. Block or challenge the rest based on behavioral evidence.
How much ad budget do bots typically waste?
Bot clicks can steal up to 20% of Google and Meta ad budgets[S2]. The exact percentage varies by industry, targeting, and season. A structured audit quantifies the specific impact on your campaigns.
What evidence do Google and Meta require for refund claims?
Both platforms expect click IDs (GCLID, FBCLID), campaign/ad set/ad identifiers, timestamps, session recordings, and signal-by-signal reasoning showing why each click is invalid. Generic traffic estimates are rejected. BotRefund formats reports to this specification[S2][S6].
Can I run bot detection without slowing my site?
Lightweight client-side scripts (under 50KB gzipped) collect behavioral signals asynchronously without blocking page load. The detection runs in the browser; the verdict returns via API. Proper implementation adds negligible latency.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.