Skip to main content

See every bot and AI agent. Then decide who gets in.

Every request sorted: humans, search crawlers, scrapers, scanners, AI agents, and bots posing as Googlebot. Observe first: nothing is blocked until you say so.

100K events a month. No card. A script tag, a plugin, DNS, or the PHP agent.

this visit · classifying scanning
You Reading signals from this browser session
Pending
Refining incognito signal — IndexedDB commit timing

This is your visit on this page, not a mock-up.

Check your robots.txt

A plain GET against your domain. No account, no script. Every line of the answer is checkable.

robots.txt · audit ready

Shows which AI crawlers your robots.txt allows, blocks, or never mentions.

Two traffic problems. Both invisible to GA4.

Traditional analytics only show you human traffic. The rest is quietly consuming your resources.

Bad bots — block them

Bots are corrupting your data

Scrapers, headless browsers, and botnets inflate your sessions, poison your SEO signals, and eat your ad budget. GA4 cannot tell you they're there.

  • Scrapers copying your content
  • Headless browsers posing as visitors
203.0.113.44 claims Chrome 128 · JA4 mismatch Block
AI agents — track them

AI agents are your next traffic source

GPTBot, ClaudeBot, Gemini: they're crawling your pages right now. When they cite you, you get traffic. But you can't optimize what you can't see.

  • Which pages ChatGPT and Claude fetch
  • Which AI-cited pages readers land on
  • Which AI operators send you real visitors
GPTBot rDNS verified · /pricing Observe

This is the screen you open on Monday

This is what it produces: one week of a mid-size storefront, every request classified, every verdict explained. Numbers below are from our own demo workspace — no customer is named and nothing here is presented as somebody else's result.

app.botscope.io/traffic — demo workspace demo data
Total requests
0
8.2 / hour
Human traffic
0%
756 requests
Automated
0%
bots · crawlers · AI
AI agents
0
GPTBot, ClaudeBot, Perplexity
Requests per day by class Human Bots AI agents Stopped
26
27
28
29
30
31
1
AI citations by platform
ChatGPT 0
Claude 0
Perplexity 0

Which assistants fetched your pages, and how many readers each one sent back. No DNS migration. Readers, not a request counter.

What the engine decided, and why
googlebot Search crawler 125 rDNS verified Allow
gptbot AI agent 51 Catalogue match Observe
claudebot AI agent 44 Catalogue match Observe
headless-chrome Automation 38 No JS telemetry Challenge
203.0.113.44 Datacenter IP 26 Honeypot hit Block

Demo workspace data. Your own numbers appear within a day of connecting, in observe mode, before anything is ever blocked.

Start free — 100K events a month Book a demo →

Four gates, in the order a request meets them

With DNS or the Agent, every request is checked before your application is reached — no redirect, no round trip, nothing for a real visitor to wait on.

  1. Is this who it says it is?

    Network & crawlers. IP reputation and threat feeds, verified crawler bypass, and fake-crawler detection by rDNS mismatch.

    In the demo googlebot rDNS verified Allow
  2. Is this the same visitor as before?

    Session validation. An HMAC-signed session cookie, TLS / JA4 fingerprint continuity (with DNS or Cloudflare), and a silent re-vouch on IP change within a 150 ms budget.

    Stops Copied session tokens and replayed sessions
  3. Can it run a real browser?

    Challenge barrier. Invisible proof-of-work, with difficulty set by a 0–100 risk score, and your own rules to block, challenge or observe.

    In the demo headless-chrome No JS telemetry Challenge
  4. Does it act like a scraper?

    Behavioural traps. Invisible honeypot links, a stateless pixel that tracks asset loading, and detection of token copiers and HTML-only scrapers.

    In the demo 203.0.113.44 Honeypot hit Block

A plugin

  • WordPress

The PHP agent

  • Laravel
  • PHP
  • Drupal

A script tag or DNS

  • Shopify
  • Next.js
  • Django
  • Node.js
  • React
  • Vue

Ways to connect

Pick what fits your stack. Switch between observe and enforce without reinstalling.

JS

Observe JS

Start here — one script tag

Paste one script tag — no server change, no blocking. Streams browser signals and AI-citation tracking; add DNS or the Agent later for enforcement.

No blocking Zero server changes LLM referral tracking

WP

WordPress plugin

A zip, uploaded in wp-admin

The origin agent with the install done for you: no FTP, no php.ini, no shell. It places itself before WordPress boots and reports which position your host allowed.

No server access needed Same agent underneath Observe by default

What it does and does not do →

CF

Cloudflare Worker

Inside your own zone

For a site already behind Cloudflare, whose A record cannot point anywhere else. Runs in front of your origin, enforces there, and reports every decision back.

No DNS change Country and network free Same catalogue and policy

What it does and does not do →

DNS

Protect DNS

Edge proxy on our infra

Point your domain's A record to our edge. Detection and blocking run on our proxy, so blocked traffic never reaches your server.

Any CMS or language HTML rewrite included Blocked traffic never reaches you

PHP

PHP agent

auto_prepend_file on your server

One line in php.ini or .htaccess. Runs before your app, sends telemetry asynchronously after the response.

PHP 8.1+ Laravel / WP / custom Async telemetry
Running DNS and the Agent together

Want DNS's zero-load edge and a second, HMAC-verified layer of defense in case DNS is ever bypassed? That's not another mode to set up — just also install the Agent on a site already running DNS, and Botscope enables the extra layer automatically. The same is true of the Worker: it shares its secret with the Agent, so a visitor who passed a check at one is not asked again by the other.

Already on Cloudflare? Botscope runs alongside it.

A WAF decides whether a request is dangerous. Botscope decides who the client is and what it is doing with your content — including the AI assistants that are now a traffic source rather than a threat. The two run side by side.

Cloudflare is better at stopping floods, and we do not replace it. Behind its proxy, Botscope connects as a Worker and sees less: only whoever terminates TLS sees the client's JA4 fingerprint. For the full stack, put Botscope on the edge and keep Cloudflare for DNS.

Read the full comparison with Cloudflare →

Everything is free. You pay for volume.

Every feature, up to 100K events a month. Past that, add 100K blocks — or drop back to free any month.

100K 10M
events / month

No card. Start on the free 100K and add blocks when you outgrow it.

Per 100K block

100K – 600K $5.99
600K – 2.1M $3.99
2.1M+ $2.99

Included free, and at every size

Full enforce mode + honeypots Session protection (L2) AI citation & crawler analytics Every known bot & AI agent tracked REST API access Observe mode — nothing blocked until you say so

Each band is charged at its own rate. Increases apply immediately; decreases at your next renewal, nothing refunded or owed. One billable event = one telemetry record stored (typically one protected HTTP request).

See what's really on your site. Free, in minutes

No credit card, and no expiry. Every feature on every account, free up to 100K events a month. Connect with a script tag, a plugin, DNS, or the PHP agent — you pay only if you outgrow it.

Start free — 100K events a month Book a demo →