For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
See which of your pages AI crawlers actually fetch
AI crawlers fetch your pages over HTTP and never run a line of JavaScript. Attensira counts those requests where they exist — in your edge middleware — and shows you which paths were fetched and when. It is coverage evidence: a section crawlers never reach cannot become a fresh citation.
Available on Growth and Business. Starter shows an upgrade state that names the plan requirement.
Sample edge middleware log
Illustrative. User agents are self-reported.
GPTBot/pricing20009:14
ClaudeBot/blog/ai-seo-guide20009:11
PerplexityBot/features20008:57
Google-Extended/docs/api-reference20008:40
GPTBot/about20008:22
ClaudeBot/changelog30407:58
Requests, paths, timing
What arrived, when, and against which paths on your site.
The only layer that works
Edge middleware runs on every request, including the ones that never become a rendered page.
No verified-bot claim
User agents are self-reported and trivially spoofed. We do not publish a claim we cannot stand behind.
A separate system from citations
Crawler counts and citation counts are different pipelines. Never reconcile the two.
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.
That distinction is the reason this surface exists, and it is also the reason to be careful with it. If a whole section of your site is never fetched, it cannot become a fresh citation — that is a real, checkable problem, usually a robots rule, an auth wall or a redirect chain. But a rise in crawler requests is not a promise of a rise in citations, and Attensira will not draw that line for you.
Most teams have no idea which of the two is happening, because the analytics they already run cannot see a crawler at all.
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 rather than a design preference. AI crawlers do not execute JavaScript, so a client-side beacon — however it is written, however small it is — 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. It is the only layer where a crawler fetch exists to be counted, which is why the install for this feature is a middleware change rather than a script tag.
The practical implication is worth stating plainly: if your existing analytics shows zero AI crawler traffic, that is what it is telling you about itself, not about the crawlers.
How you install it
1
Open Settings in the app
Find the AI traffic section for your workspace. Attensira generates the install instructions there rather than publishing a generic snippet.
2
Copy the generated middleware instructions
They are written for the edge layer of your stack and already carry your workspace's ingest endpoint and credentials. Use the generated copy rather than an example found elsewhere — a snippet without your workspace's values sends data nowhere.
3
Deploy, then wait for real requests
Nothing appears until a crawler actually fetches a page. On a low-traffic site that can take days, and an empty first week is not a broken install.
What the data tells you, and what it does not
The data tells you that requests arrived, when, and against which paths. Read it as a coverage signal. The useful move is not admiring the total; it is finding the paths that never appear. A pricing page fetched daily and a documentation section fetched never is a specific, fixable finding, and it is the kind of finding that becomes a pull request through the GitHub connection.
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, because user agents are self-reported and trivially spoofed, and we do not publish a verified-bot claim we cannot stand behind. Treat the log as directional evidence about coverage, not as an audited record of who visited.
Nor is crawler activity evidence of visibility in answers. For whether models actually name you or link to you, read Mention rate and Citation rate, which share a denominator and which Attensira deliberately never collapses into a single score.
What it does not do
It is not a verified-bot log. Named crawlers are what the request said it was.
It is not a citation metric, and its counts must never be reconciled with the citation counts in the Pages table. Different systems, different schedules, different quantities.
It is not real-time proof of visibility, and it does not tell you what a model answered. It tells you what was fetched.
It is not measurable from the browser. Any approach that depends on a script running in the page is measuring humans, which is why there is no JavaScript snippet to install for this.
It does not, on its own, tell you why a section is uncrawled. Robots rules, authentication and redirects are the usual causes, and checking them is still a human job.
Which plans include it
Available on Growth and Business. Starter shows an upgrade state that names the plan requirement.
That sentence is read from the same plan ladder the billing system uses, so it cannot drift from what you are actually sold. Sampling depth, prompt slots and how far back your history goes are on the pricing page.
They are records of AI crawlers fetching pages on your site over HTTP — bots such as GPTBot, ClaudeBot, PerplexityBot and Google-Extended. A crawler is not a model: a crawler fetches pages, a model answers a prompt for a person. The log tells you that requests arrived, when, and against which paths.
Because AI crawlers do not execute JavaScript. A client-side beacon, however 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, so it is the only layer where a crawler fetch exists to be counted.
Attensira generates the install instructions for your workspace in Settings. They are written for the edge layer of your stack and already carry your workspace's ingest endpoint and credentials, so use the generated copy rather than an example found elsewhere — a snippet without your workspace's values sends data nowhere. Nothing appears until a crawler actually fetches a page, which on a low-traffic site can take days.
No, and we will not claim otherwise. User agents are self-reported and trivially spoofed, so Attensira does not publish a verified-bot claim it cannot stand behind. Read the data as directional evidence about coverage, not as an audited log of who visited.
Not predictably, and you should not report it that way. Crawlers and models are different pipelines on different schedules. A page can be fetched constantly and never cited, or cited from something a model learned months ago and never re-fetched. Crawler counts here and citation counts in the Pages table are not two views of one quantity.
If that analytics runs in the browser, it is telling you about itself rather than about the crawlers. Any measurement approach that depends on a script in the page is measuring humans. That is the specific reason this feature lives in middleware.
AI traffic is available on Growth and Business. Plan facts on this page are read from the same ladder the billing system uses, so they cannot drift from what you are actually sold.
Two different things get called pages. AI traffic counts crawler requests against paths on your site. The inventory is every URL your site publishes, built from the Sitemap lines in your robots.txt plus your home page — there is no headless browser and no link crawl, so an unsitemapped page is not discovered. Discovery re-runs once a day and is unmetered; reading a page stores its title and meta description only, re-read after seven days.