

What is captured
Notra classifies every captured request as one of two tracked visitor types:- AI crawler: bots fetching your pages to train models or build a search index. Each crawler carries a Purpose: Model training (collects pages for training corpora), Search index (builds the index an AI answer engine searches) or Cited in answer (fetched while an assistant was answering someone).
- AI referral: a person who clicked through to your site from an AI answer. Notra detects referrals by referrer host, for example chatgpt.com, perplexity.ai, gemini.google.com, claude.ai, copilot.microsoft.com, you.com, chat.deepseek.com, chat.mistral.ai, grok.com and chat.qwen.ai.
- the source, the agent and the purpose
- a Confidence of Verified, Reported or Heuristic, which records where the agent’s signature came from
- the path, host and country
- whether the client asked for Markdown
- a journey id
Supported frameworks
The@usenotra/geo tracker runs inside your app’s request pipeline. Pick your framework:
Next.js
proxy.tsTanStack Start
src/start.tsNuxt
server/middleware/geo.tsAstro
src/middleware.tsSvelteKit
src/hooks.server.tsNetlify Edge Functions
netlify/edge-functions/geo.tsRecognized AI agents
Notra recognizes more than 60 AI crawlers and agents from OpenAI, Anthropic, Google, Perplexity, Meta, Apple, Amazon and others. See the full AI crawler directory.The Traffic page
Once events arrive, the page shows the sections below, and each one follows the range picker.- A hero row with Crawlers, Referrals and Total visit counts, each compared “vs. previous period”, and a daily trend chart.
- Sources has three groups: Crawlers (training and search-index bots), Cited (assistant-browse fetches while an engine answered someone) and Referrals. Columns are Source, Purpose, Visits, Pages and Last seen. Open a source to see the share of its visits that asked for Markdown, and log rows that asked for Markdown carry a Markdown badge. Sources group by operator, for example OpenAI, Anthropic, Google, Perplexity, Microsoft, Meta, Instagram, Amazon, Apple, ByteDance and Common Crawl, with Instagram kept as its own source rather than folded into Meta.
- Top pages by AI source has the columns Page (host and path), Sources and Visits. When a project tracks more than one domain, a domain filter narrows the table.
- Recent citations is the live event log, with All visitors (AI crawler, AI referral) and All purposes (Model training, Search index, Cited in answer) filters. The domain filter on top pages also narrows this log, and live updates refresh every few seconds until you pause them.
Limits to keep in mind
User agent matching is spoofable
User agent matching is spoofable
Crawler classification relies on user agent signatures, and anyone can send a crawler’s user agent string, so the Confidence value tells you where the signature came from. Where an operator publishes IP ranges or a reverse DNS method, the signature table points at it, but Notra doesn’t verify IPs at ingest.
A fetch is not proof of a citation
A fetch is not proof of a citation
The Cited in answer purpose means an assistant fetched the page while answering someone, but it doesn’t prove the answer quoted or linked the page.
Some agents cannot be detected
Some agents cannot be detected
The signature table leaves out agents that a user agent can’t honestly identify, including Pi, ChatGPT Atlas,
Google-Extended and Applebot-Extended. Notra either discards their traffic as human or attributes it to a generic browser.Referrals depend on the referrer header
Referrals depend on the referrer header
Notra recognizes AI referrals by referrer host, so it doesn’t count clicks from apps that strip the referrer or from hosts that aren’t in the list.
Fingerprinted journeys are estimates
Fingerprinted journeys are estimates
Only journeys that followed a tagged
ntr link are exact, while fingerprinted journeys group requests by heuristic and can merge or split real sessions.Sampling reduces counts
Sampling reduces counts
If you set
sample below 1, every count in the Traffic page reflects the sampled fraction, and Notra doesn’t scale the numbers back up.