How AI traffic is measured
Everything the AI traffic screen shows was captured: no polling, no simulated questions put to ChatGPT, no score. This page describes exactly what is counted, how, and above all what those numbers do not prove.
Two signals, never added together
| What is counted | How we see it | What it means |
|---|---|---|
| AI robot hits | A request arrives presenting itself as an AI robot (GPTBot, ClaudeBot, PerplexityBot, ChatGPT-User…) | A program declaring itself as that robot requested this page. Counted per vendor, per robot, per page and per day. |
| Visitors sent by an AI assistant | A human lands on your site coming from an assistant (chatgpt.com, perplexity.ai…) | Someone clicked through from an AI answer. This is a minimum: see below. |
These are two distinct populations: they never add up, and robots are never counted among your visitors.
A robot is counted as it declares itself
When a robot connects, it announces its own name — this is its "user-agent". Snorklee counts hits under the name the robot gives itself, nothing more.
Nothing forces a program to be honest: anyone can present themselves as GPTBot. A figure such as "400 GPTBot hits" therefore reads "400 hits from something presenting itself as GPTBot". Snorklee does not certify a robot's identity.
The exact name (GPTBot, ChatGPT-User…) is kept, not just the vendor's: that is what separates, on the same page, collection for model training from a page fetched by an assistant while it was answering someone — as the robot declares it. That exact name has only been recorded since August 2026: earlier hits stay attributed to their vendor, without per-robot detail.
Visitors sent by an AI: a minimum
A visitor is attributed to an AI assistant when their browser passes on the address they came from (chatgpt.com, perplexity.ai…). Most AI apps — mobile and desktop ones in particular — pass on none: those visitors arrive with no origin and are counted as direct.
The figure shown is therefore at least that many visitors, never a total. It can rise over time without anything changing on your side, simply because an assistant started passing on its address.
We count the pageviews of those visits, not the people: someone who arrives from ChatGPT and reads five pages counts five — which is why the page list shows the landing page and the following ones.
These numbers concern people: every cell — the total, a day, an assistant, a page — below 10 shows as "< 10", and an assistant or a page under that threshold is not named. Robot hits, on the other hand, stay exact.
What the measurement does not prove
This is the part most tools keep quiet about, so let us put it in writing.
A hit from an assistant robot (ChatGPT-User, Perplexity-User, Claude-User…) shows that a program declaring itself as such retrieved your page. It does not prove that:
- the final answer cited your page;
- your content influenced that answer;
- the person saw your name;
- the question asked had any commercial bearing on your business.
Likewise, we never know the question that triggered a visit or a fetch: it is not transmitted anywhere. That is why the interface says "landing pages", never "cited".
The AI traffic screen shows measured data only. There is no estimated figure, no "probable" arrival, no share of traffic inferred from a coincidence in time: what you see was observed, or it is not shown at all.
Where the signal is captured
Bots only read raw HTML: they do not run JavaScript and are therefore invisible to a classic measurement script. The w.js tag alone will never see them.
Counting robot hits requires a server-side signal — the WordPress plugin or a small module you install on your server, what we call the "beacon" (Next.js middleware, Cloudflare worker, PHP snippet…). Without it, only visitors sent by an AI assistant are measured. See Capturing AI crawlers to install it.
What the bots read, page by page
The screen crosses robot × page, both ways: which pages a given robot requested, and which robots requested a given page. Counts there are exact, with no threshold and no rounding: those rows contain no human visitor data, so no anonymisation floor applies — a bot is not a person. Counters about humans remain subject to the rules described in Data collected, and robots and humans are never mixed in one total.
Generate your robots.txt
From the AI traffic screen, Snorklee produces a robots.txt built from the bots that actually visited your site — not a generic list. You tick the ones you want to keep out, copy the text, paste it at your host.
By default, only training collection is blocked. Bots that index (search) or fetch a page live to answer someone (assistant) send you visitors: blocking them would cut that traffic. Snorklee does not forbid it, but it warns you.
Only bots actually observed are pre-ticked: a rule aimed at a bot that never came makes the file longer without protecting anything.
Two outputs: the block to add (your existing rules are never touched), or the full file, merged with the one already in place — your Disallow and Sitemap lines are kept. Running the generator again replaces the previous Snorklee block instead of stacking another one.
| Platform | Where to paste |
|---|---|
| WordPress, self-hosted site | robots.txt at the root |
| Shopify | theme → robots.txt.liquid |
| Wix | SEO → Tools → Robots.txt Editor |
| Webflow | Site settings → SEO tab |
| Squarespace | not possible — the file is a system route that cannot be edited |
What the generator does not do. Snorklee does not serve your robots.txt and never edits it: until you paste the text, nothing has changed. And a robots.txt remains a polite request, not a barrier: a robot can ignore it, and Snorklee does not claim to tell you which one does.
Privacy
The IP address is used only, at request time, to geolocate at country level and to classify traffic. It is never stored in events — see Data collected.