DOCUMENTATION
๐Ÿ—ฟ chadanalytics.com
For your AIโŒ„
Dashboard

Bot traffic tracking

See which AI crawlers are reading your site โ€” GPTBot, ClaudeBot, PerplexityBot and friends โ€” and what they're reading. Reported to your Slack channel, like everything else Chad knows.

๐Ÿค– Crawlers ยท this week
GPTBot38 pages
ClaudeBot21 pages
PerplexityBot12 pages
Googlebot214 pages

Why this needs a server package

Crawlers don't run JavaScript. The small browser snippet counts your human visitors, but a bot fetching your pages never executes it โ€” so bot traffic is invisible to client-side analytics. The @chadanalytics/bot package watches requests at your server instead, reads the user-agent, and reports crawler visits to Chad.

It's fire-and-forget: the middleware only looks at the request method, path, and user-agent header; it never touches request bodies, cookies, or authorization headers. Bot tracking is included on every plan.

Get started

1. Install the package

npm install @chadanalytics/bot

2. Add it to your server

The most common setup is a Next.js app on Vercel โ€” one middleware line (more platforms below).

// middleware.ts
import { chadBotTracking } from "@chadanalytics/bot/next";

export const middleware = chadBotTracking({
  site: "CH-XXXX",
});

3. Deploy and check Slack

That's it. Crawler activity shows up in the ๐Ÿค– section of your daily report. Run /chad bots or /chad bots week anytime for the exact crawlers and pages requested.

What this tracks

Chad groups bot traffic into categories, so "the machines are reading your docs" and "an SEO tool is scraping you" don't blur together:

CategoryExamples
AI assistantsChatGPT-User, Perplexity-User, Claude-User โ€” fetching a page live for someone mid-conversation
AI training crawlersGPTBot, ClaudeBot, CCBot, Google-Extended โ€” reading your site to learn from it
AI search indexersOAI-SearchBot, PerplexityBot โ€” indexing you for AI search results
Search enginesGooglebot, Bingbot, DuckDuckBot
SEO & monitoringAhrefsBot, SemrushBot, UptimeRobot

The AI categories are the interesting ones: assistants are demand today, training crawlers are demand being trained. Chad reports them separately.

Crawler-facing files

With the server-side tracker installed, Chad also tracks hits to the files bots read first, so you know your instructions are actually being fetched:

Platform examples

Webflow + Cloudflare

Webflow has no request middleware, so its browser snippet cannot see crawlers. If your Webflow custom domain uses Cloudflare DNS, put Chad's Worker route in front of the existing Webflow origin. It preserves the full Webflow response and reports only known crawler requests.

Download the Webflow + Cloudflare template, unzip it, then run:

npm install
npm run configure -- \
  --site CH-XXXX \
  --domain example.com,www.example.com \
  --zone example.com
npx wrangler login
npm run deploy

The custom domain must be in Cloudflare and its Webflow DNS record must remain proxied. The Worker never sends Chad cookies, request bodies, authorization headers, or query parameters. Verify with curl -I -A 'ChatGPT-User/1.0' https://www.example.com/, then run /chad bots hour in Slack.

Express

import express from "express";
import { chadBotTracking } from "@chadanalytics/bot/express";

const app = express();
app.use(chadBotTracking({ site: "CH-XXXX" }));

Cloudflare Workers

import { withChadBotTracking } from "@chadanalytics/bot/cloudflare";

export default withChadBotTracking({ site: "CH-XXXX" }, {
  async fetch(request, env, ctx) {
    return handle(request);
  },
});

Plain Node

import { trackBotVisit } from "@chadanalytics/bot";

server.on("request", (req, res) => {
  trackBotVisit(req, { site: "CH-XXXX" });
  // ...your handler
});

WordPress

The Chad Analytics WordPress plugin tracks both human visits and known AI crawlers automatically. Install version 1.1.0 or newer and enter your Site IDโ€”no server code is required.

Or just ask your agent

Paste this into Claude Code, Codex, or Cursor and it wires up the right variant for your stack:

Install @chadanalytics/bot on this server with site ID CH-XXXX.
Pick the middleware variant that matches this framework, add it before
the route handlers, and confirm bot requests are being tracked.

Where to find the data