Skip to main content
AI traffic is available on Growth, Business and Agency.

Crawlers and models are not the same thing

A crawler is a bot that fetches your pages over HTTP. A model is the system that answers a prompt for a person. They belong to different pipelines, run on different schedules, and produce different numbers. A page can be fetched constantly and never cited, or cited from something a model learned months ago and never re-fetched. So do not reconcile the two. Crawler counts in AI traffic and citation counts in Pages are not two views of one quantity, and a rise in one does not predict the other.

Why measurement has to happen in edge middleware

Crawler visits are only visible on the server, before any page renders. That is a hard technical constraint, not a design preference:
AI crawlers do not execute JavaScript. A client-side beacon, no matter how it is written, has never seen one and never will: by the time the script runs, the only visitors left are humans with browsers.
Edge middleware runs 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.
Any measurement approach that depends on a script in the browser is measuring humans. If your existing analytics shows zero AI crawler traffic, that is what it is telling you about itself, not about the crawlers.

How do you install it?

Attensira generates the install instructions for your workspace in Settings. They include the ingest endpoint and the credentials tied to your workspace, so use the generated copy rather than an example you found elsewhere — a snippet without your workspace’s values sends data nowhere.
1

Open Settings in the app

Find the AI traffic section for your workspace.
2

Copy the generated middleware instructions

They are written for the edge layer of your stack and already carry your workspace’s values.
3

Deploy and wait for the first requests

Nothing appears until a crawler actually fetches a page. On a low-traffic site that can take days.

What this data does and does not tell you

It tells you that requests arrived, when, and against which paths. Read it as a coverage signal: pages that are never fetched cannot become fresh citations, and a section that crawlers never reach is worth checking for robots rules, auth walls, or redirects. What it does not give you is verified attribution. Attensira does not claim to prove that a given request came from a specific named crawler. User agents are self-reported and trivially spoofed, and Attensira does not publish a verified-bot claim it cannot stand behind. Treat the data as directional evidence about coverage, not as an audited log of who visited.
Crawler activity is not evidence of visibility in answers. For whether models actually name or cite you, read Pages and your Mention and Citation rates.

How long is it kept?

Two layers, kept for different lengths: The rollup is what lets a before-and-after reach back further than 90 days: whether crawlers read a page more after a change you shipped in March needs March’s numbers in June. It holds no field that identifies a person: no user agent string, no referrer and no IP-derived value, only the counts and the assistant a referral resolved to. How a day gets into the rollup:
  • Every night, the last 7 completed days are folded again, so the days a dashboard reads first are never more than a night behind.
  • A day gets its final fold when it is 88 days old, two days before its raw requests expire. A request stamped with a date older than that is refused when it arrives, because it could never reach the rollup.
  • The first time your workspace is folded, every day still in raw retention is folded, so your history starts with the full 90 days you already had.
A window up to 365 days long can be read. Days inside the last 90 come from the raw requests and older days from the rollup, with no day counted twice. A window reaches back only as far as your history is complete: asking for more returns the longest window there is, and the response says how many days of history you have. A change is compared against the previous window of the same length only when that whole window exists; otherwise no change is shown, rather than a drop that is really the start of your history.

Days are UTC days

Traffic days run from UTC midnight to UTC midnight, and every response says so (day_basis: "utc"). Answer readings use your workspace’s own calendar day instead. Near midnight, a crawler fetch and an answer from the same evening can land on different days. A window that reaches into the rollup starts at a UTC midnight, so every day in it is a whole day.

Privacy

Requests are measured at your own edge, on your own traffic. The rollup kept beyond 90 days holds counts only, with nothing that identifies a person. See the privacy policy and terms of service.