Skip to main content
Some of the traffic that reaches your site isn’t a person. Search crawlers, scrapers, uptime monitors, and headless browsers run by scripts can get identified like real visitors even though no one is actually there. Squid ID detects that traffic, keeps it out of your dashboard, and never bills you for it. Bot filtering is configured per website under Settings → Restrictions. Changes save automatically.

If you’re coming from RB2B

RB2B filters some bot traffic, but doesn’t give you control over it or a way to review and recover mistakes.
RB2BSquid ID
Bot detectionBuilt in, not configurableDatacenter, proxy, VPN, Tor, scraper, and browser signals
Tolerance controlNoneOff, Relaxed, Balanced, or Strict, per website
Review what was filteredNoA “View bots” list showing each one and why
Recover a false positiveNo”Not a bot” restores the visitor and stops re-filtering it
Effect on billingVariesFiltered bots are never charged

Why this matters. Bot traffic you can’t see or control still costs you, in a cluttered list and in spend. Squid ID makes the filtering visible, adjustable, and free: you never pay for a bot, and you can always check what was filtered.

What is a bot

A bot is automated software that visits your site instead of a real person. The common ones in B2B traffic:
  • Search and AI crawlers (Googlebot, Bingbot, GPTBot, and similar) that index or scrape pages.
  • Scrapers and scripts running from cloud servers to pull content.
  • Uptime and security monitors (UptimeRobot, Pingdom, and similar) that ping your site on a schedule.
  • Headless browsers (Puppeteer, Playwright, Selenium) driven by code, not a human.
None of these is a buyer. Filtering them keeps your list clean and your spend honest.

How detection works

Filtering runs as three passes, each catching a different class of automation before a visit reaches your list or your bill. Traffic has to clear all three to count as a real person.
1

In the browser, at the SDK

Before anything leaves the page, the Squid ID snippet watches how the visitor behaves, the tells a real human leaves and a script does not:
  • Pointer movement. Human cursors drift, curve, overshoot, and correct, with constantly varying speed. Automation moves in straight lines, jumps instantly, or never moves the pointer at all.
  • Click and timing patterns. People hover before they click, and time-to-click scales with distance (Fitts’s law). Scripts click dead center with zero dwell and fire events on machine-perfect intervals.
  • Interaction rhythm. Scroll inertia, reading cadence, keystroke timing, focus and blur, touch versus mouse: all vary for people and flatten for bots.
  • Environment tells. Automation flags that a script-driven browser exposes, missing or inconsistent browser features, and implausible screen, timezone, and language combinations.
The SDK rolls these into a likelihood and tags the event at the source. This is the only pass that can catch advanced automation faking a clean user-agent from a residential IP, because the later layers never see how it moved.
2

At the network edge (Cloudflare and AWS)

Every request to our collector passes through the edge bot wall (Cloudflare Bot Management and AWS WAF) before it reaches our pipeline. This pass absorbs the high-volume, obvious noise:
  • Known-bad traffic. Declared crawlers, scrapers, vulnerability scanners, and flagged networks, matched against managed threat lists that update continuously across the whole edge network.
  • Rate and volume. A single IP or fingerprint hammering many pages, request floods, and abusive patterns are challenged or blocked.
  • Connection fingerprinting. The shape of the connection itself gives away scripted clients and headless browsers, even when they spoof a normal user-agent.
  • Invisible challenges. Suspicious but uncertain traffic gets a lightweight challenge that filters automation without interrupting real people.
3

In our classifier

Anything that clears the edge and the SDK is scored by our own classifier before we identify it or bill you. It produces a 0 to 100 confidence score from two signal classes:
  • User-agent. Declared bots and crawlers, headless browsers and automation frameworks, scripted HTTP clients, link unfurlers, and empty user-agents.
  • IP intelligence. The visitor’s network checked against known datacenter and hosting providers, our strongest signal, with optional proxy, VPN, and Tor detection on top. Real people browse from ISP, mobile, or corporate networks, not from AWS or a hosting box.
The score is compared against the tolerance you set for that website, and a visit at or above the threshold is suppressed. The classifier degrades gracefully: if an IP source is unavailable it falls back to what it has rather than ever dropping a real person.
A suppressed visitor is dropped from every list, every export, and every count, and is not billed. Real people are unaffected: a normal browser on a residential or corporate connection, moving like a person, clears all three passes and scores zero.

Tolerance

The tolerance slider sets how confident the classifier must be before it suppresses a visitor. Move it left for fewer false positives, right to catch more bots.
  • Off. No filtering. Every visitor is billed. Obvious bots are still flagged in your report so you can see what you would have saved.
  • Relaxed. Only near-certain bots: declared crawlers and headless browsers.
  • Balanced (default). Adds datacenter IPs, empty user-agents, and high-risk networks. Strong protection with a low false-positive rate. Right for most B2B sites.
  • Strict. Also blocks proxies, VPNs, and anonymizers. Catches the most, with a small chance of suppressing a real visitor on a corporate VPN.
Tolerance is per website, so a high-traffic marketing site and a gated app can each use the setting that fits their traffic.

Reviewing filtered bots

The Visitors list has a View bots toggle (the robot icon next to the hidden-visitors control). It shows every visitor Squid ID suppressed, with the reason it was flagged (for example “Datacenter IP” or “Declared bot”). If something there is actually a real person, click Not a bot. The visitor returns to your list, and Squid ID won’t suppress that profile again.
1

Open the bots view

On the Visitors page, click the robot icon to switch the list to suppressed bots.
2

Check the reasons

Each row shows why it was flagged. Most will be datacenter or declared-bot traffic.
3

Recover any mistakes

If a real visitor was caught, click “Not a bot” to restore them. If you see this often, move the tolerance one step left.

Clearing the queue

Once you’ve looked a bot over, you don’t need it sitting in the review list. Two ways to clear it out:
  • Dismiss one. The trash action on a bot row clears that single one.
  • Clear all bots. The button in the bots banner clears the whole queue at once.
Dismissing is not deleting. A dismissed bot stays flagged forever, so it’s still suppressed from your list, still kept out of your analytics, and still never billed. It just drops out of the review queue and the count, so you’re not looking at the same bots every day. If a dismissed visitor turns out to be a real person, you won’t see them again unless they come back and re-identify, at which point “Not a bot” is still the way to restore them.
Use “Not a bot” when it’s a real person you want back in your list. Use Dismiss or Clear all when you’ve confirmed they’re bots and just want them out of the queue.

Seeing what you saved

Your usage panel shows a Bots filtered count for the month, alongside your matches. These were kept off your bill. The figure is a running tally of bots suppressed before they could be charged.
At the Strict setting, a real visitor on a corporate VPN or proxy can occasionally be suppressed. If your match volume looks low, check the bots view and consider a lower tolerance.