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.
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.
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.