# AI traffic edge middleware: see which AI crawlers read your site

> For the complete documentation index, see [llms.txt](https://attensira.com/llms.txt).
> Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.

> Deploy Attensira's generated edge middleware to count AI crawler fetches and AI-referred visits that no browser analytics can see, per page and per agent.

- Canonical page: https://attensira.com/integrations/ai-traffic-edge-middleware
- Family: integrations
- Last updated: 2026-10-05
- Author: Karl-Gustav Kallasmaa (https://x.com/kallasmaa)
- Claims as data: https://attensira.com/claims.json?slug=ai-traffic-edge-middleware

**In short:** Attensira counts AI crawler visits with a small edge middleware you deploy in front of your site, signed with your workspace's HMAC secret. It records the GPTBot, PerplexityBot and ClaudeBot fetches a browser script never sees, per page and per agent, with why each came. AI traffic is on the Growth and Business plans.

## What it showed on attensira.com (read 2026-10-05)

Asked in AI traffic: "Which AI crawlers fetched our site in the last 30 days?"

Call: `get_analytics area=bot days=30`

Of the crawlers that feed search indexes and live answers, OpenAI's read the most pages: 429. Meta's training crawler read more, 881 pages, and is counted below. No request carried a Gemini or Google-Extended user agent; Google's fetches showed up as Googlebot.

| Row | Value | Note |
| --- | --- | --- |
| OpenAI (GPTBot, OAI-SearchBot, ChatGPT-User) | 7,873 visits | 429 pages · 86% for the search index |
| Perplexity (PerplexityBot) | 622 visits | 331 pages · all for the search index |
| Anthropic (ClaudeBot, Claude-User) | 105 visits | 48 pages · 34% fetched live for an answer |
| Google (Googlebot) | 199 visits | 81 pages · for Google's index; no request carried a Gemini user agent |

_Our own site, counted by the same middleware this page describes: one read at 02:30 UTC on 5 Oct, the 30 days to that date, 158,396 requests in all._

## What does the edge middleware count?

- Count AI crawler fetches that browser analytics cannot see, per page and per agent, with the purpose of each visit.
- Separate an access problem from a content problem. A page no crawler has fetched cannot become a fresh citation, whatever is written on it.
- Count visits referred by an AI assistant, and keep a daily rollup beyond 90 days so a before-and-after can reach back months.
- Check whether crawlers read a page more after a change shipped, as one of the signals Attensira measures after the work.

## How do I install the edge middleware?

1. **Get the install generated for your workspace** Open AI traffic in Settings, or call GET /v1/ai-traffic/install or the MCP tool get_ai_traffic_install with an API key. Use the generated copy. A snippet without your workspace's values sends data nowhere.
2. **Deploy it at your edge** The worker runs in the edge layer in front of the tracked domain, on every request, including the ones that never become a rendered page. That is the only layer where a crawler fetch exists to be counted.
3. **Wait for a crawler to arrive** Nothing appears until a crawler fetches a page. On a low-traffic site that can take days, so an empty view in the first hours is expected rather than a failed install.
4. **Read it per page and per agent** Visits show in AI traffic and in get_analytics area=bot, with pages reached, why each agent came (training, search index or a live answer) and when it was last seen.

## What can't the count tell you?

- It cannot verify who visited. User agents are self-reported and easy to spoof, and Attensira does not publish a verified-bot claim it cannot stand behind. Read it as directional evidence about coverage.
- It says nothing about whether answers name you. Crawlers fetch pages and models answer prompts; they run on different schedules, and a rise in one does not predict the other.
- A client-side script cannot replace it. AI crawlers do not run JavaScript, so a browser beacon only ever sees people. Analytics that shows zero AI crawler traffic is describing its method, not the crawlers.

### How does the crew tell an access problem from a content problem?

- **Fetched, never cited: a content problem.** The fix is on the page: a clearer passage, a table the answer can lift, a comparison the model is missing.

- **Never fetched: an access problem.** The fix is robots rules, an auth wall or a redirect chain. Rewriting the copy would waste credits.

Without edge data the two look identical, so the crew reads AI traffic before it decides what a losing prompt needs. After a change ships, fetches of the changed pages are shown around it as counts, never as a verdict on the answers.

## FAQ

### Why does this need edge middleware instead of a script tag?

AI crawlers do not execute JavaScript. A browser beacon never runs for them, so by the time a script loads the only visitors left are people. Edge middleware runs on every request, before any page renders.

### Which plans include AI traffic?

Growth and Business. Starter workspaces track answers but do not read AI traffic. Accounts still on the retired Agency plan keep it.

### Can I get the install from my assistant?

Yes, with an API key. get_ai_traffic_install returns the endpoint, signing secret and worker. A signed-in OAuth connection is refused there, because the response carries a secret.

### Is the signing secret like an API key?

No. It is derived from the workspace id, so it is stable and can be shown again. An API key is displayed exactly once.

### How long is crawler data kept?

Raw requests for 90 days. A daily rollup per page and agent, with no field that identifies a person, is kept indefinitely, so windows up to 365 days can be read.

### Does Attensira see my visitors' personal data?

Requests are measured at your own edge, on your own traffic. The rollup kept beyond 90 days holds counts only, with no user agent string, referrer or IP-derived value.

## Sources

Each entry below is one claim on this page. `retrieved` is the date the exporter or a human last saw the source say this, and nothing more: it is not a publication date and not a promise of re-verification. `cite` is the anchor on the canonical page where this claim is rendered.

### crawlers-no-js

Attensira's AI traffic documentation states that AI crawlers do not execute JavaScript, that a client-side beacon has never seen one, and that edge middleware is the only layer where a crawler fetch exists to be counted.

- source: https://docs.attensira.com/traffic/ai-traffic (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/ai-traffic-edge-middleware#claim-crawlers-no-js

> AI crawlers do not execute JavaScript. A client-side beacon, no matter how it is written, has never seen one and never will
### ai-traffic-generated-values

Attensira's documentation states that the install instructions are generated for the workspace and carry its own values, and that a snippet without them sends data nowhere.

- source: https://docs.attensira.com/traffic/ai-traffic (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/ai-traffic-edge-middleware#claim-ai-traffic-generated-values

> use the generated copy rather than an example you found elsewhere — a snippet without your workspace's values sends data nowhere
### ai-traffic-not-verified

Attensira's documentation states that it does not claim to prove a request came from a specific named crawler, because user agents are self-reported and trivially spoofed.

- source: https://docs.attensira.com/traffic/ai-traffic (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/ai-traffic-edge-middleware#claim-ai-traffic-not-verified

> Attensira does not claim to prove that a given request came from a specific named crawler.
### ai-traffic-plans

Attensira's AI traffic documentation states that AI traffic is available on Growth and Business, and on the Agency plan that existing accounts keep.

- source: https://docs.attensira.com/traffic/ai-traffic (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/ai-traffic-edge-middleware#claim-ai-traffic-plans

> AI traffic is available on Growth and Business.
### ai-traffic-signing-secret-stable

Attensira's tool reference states that the AI traffic signing secret is derived from the workspace id and can be shown again, and that a signed-in OAuth connection is refused because the response carries a secret.

- source: https://docs.attensira.com/mcp/tools (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/ai-traffic-edge-middleware#claim-ai-traffic-signing-secret-stable

> Because the response carries a secret, a signed-in OAuth connection is refused here with a message saying so; use an API key.
