AI traffic · referrals
AI referral traffic: the people AI answers send you
AI referral traffic is the people who click a link in an AI answer. Skald counts every click that proves where it came from, shows what the AI read first, and keeps its estimates apart.
AI referral traffic is the visits from people who clicked a link in an answer from ChatGPT, Perplexity, Claude, Gemini, Copilot or another assistant. They are people, so they count under people, with the assistant as the source. Because apps often strip the referrer, the count is a floor, never a total.
30-day free trial · no card · we set it up within one working day · free to self-host
208counted · a floorthe referrer or tag names an assistant
86likely · an estimateDirect, on a page an assistant just fetched
never poured together: no "294"
Sample month. The counted tube holds only clicks that prove their source. The likely tube stays a separate glass, and its visits stay Direct in every count.
[01] how a click is recognised
chatgpt.com, chat.openai.com and an Android app. One assistant, not three rows.
A person's browser looks like any other, so Skald knows an AI click by where it came from: its referrer, the address of the page the click came from. Every referrer drops through the same plates, in the code's order, until one catches it. What it catches gets one name per assistant. Click-throughs are one of the three reasons in AI traffic tracking.
filed as
AI assistant · chatgpt.com
Caught by the first plate: the host is chatgpt.com. A subdomain would be caught too.
The plates are Skald's own lists (classify.py): hosts and app ids, one path, the utm tags, then one name per assistant.
[02] the estimate, kept apart
Many AI clicks lose their referrer. Four tumblers decide "likely".
Privacy settings, a site's Referrer-Policy, in-app browsers and HTTPS to HTTP all strip the referrer, so those clicks arrive as Direct. When a person asks an assistant, its user fetcher (the agent that fetches a page for that one question, such as ChatGPT-User) reads your page at that moment. If a Direct visit lands on that page minutes later, Skald calls it likely. All four tumblers must line up.
the fetch10:00 UTC · Claude-User fetched /pricing/
what Skald calls the visit
Direct, and nothing more
The visit came 22 minutes after the fetch. The window is the same minute or up to 15 minutes before, so this fetch is too old.
- Direct. Source "Direct or unknown": no referrer.
- No tag. No utm_ tag and no ad click id on the landing address.
- Same page. Compared without the query and the last slash, so /pricing?ref=x is /pricing/.
- 0 to 15 minutes. To the minute, in UTC. A fetch after the visit never counts.
The tumblers are the code's own (ai_likely.py); the window is 15 minutes unless the server admin changes it. Only user fetchers count, never a training crawler or a proven fake. A page two assistants fetched in the window counts once, under "(more than one)". How every visit is counted
[03] who reads, who sends
The assistant that reads you most is not always the one that sends people.
Each dot is an assistant: how often its user fetcher read your pages, against how many visits came from its answers. Pick one for its row: visits from its answers, how many came after it fetched pages, how many landed on a page it had just fetched, and the likely visits, apart.
chatgpt.com
- visits from its answers
- 98
- came after it fetched pages
- 61
- landed on a page it just fetched
- 44
- likely, kept apart
- 55
Reads most and sends most. 44 people landed on the very page ChatGPT-User had just read.
Sample month. The row is the same four figures Skald keeps per assistant each day (ai_read.py). The fetches are context, not a count of people: a fetch can be for someone who never clicked. 7 more likely visits had two assistants in the window and count once, under "(more than one)".
[04] from click to lead
A ChatGPT click on Monday, a booking on Wednesday. The lead says ChatGPT.
A click from an AI answer starts a new visit, so its source is kept even for someone who was on your site before. Days later, a Direct visit still shows where the visitor first came from. When they book or fill a form, the lead keeps its first and last touch side by side.
visits · sample
the lead
- first touch
- chatgpt.com · Mon
- last touch
- Direct · Wed
- leads by source
- a row for chatgpt.com
- first touch
- Direct · Tue
- last touch
- google.com · Thu
- beside it, marked
- likely from perplexity.ai, never its source
- first touch
- claude.ai · Fri
- last touch
- claude.ai · Fri
- leads by source
- a row for claude.ai
Sample visitors. The lead comes in from your form or booking tool by a signed webhook (a message the tool sends Skald when it happens), never guessed. A first touch is found by the visitor ID, a kept address or the 30-day hash; with none, it says "first visit we know of".
[05] when it changes, and where it stops
AI citation alerts, and what AI referral tracking cannot see
Three alerts watch the people AI sends. They count visits, never requests, and use only days counted twice.
- First AI citationThe first visit ever that followed a link in an assistant's answer, with the time, the page and that day's visits from it.
- A page's firstThe first visit ever that landed on a page from an AI answer. More than 5 pages on one day make one alert.
- Visits from AI answersYesterday against the median of the same weekday over 6 weeks: twice the usual and at least 10, or half of it. Fewer visits: "too few to judge".
What it does not do
- The AI click count is a floor. Stripped referrers cannot be recovered, only estimated.
- Likely visits are an estimate. They are shown apart and never added to any figure.
- A click from a Google AI Overview looks exactly like an ordinary Google click. Skald does not count it apart, and does not guess.
- The first-citation alerts start once Skald has 28 days of history, so a new install does not call every click a first.
keep reading
More on AI referral traffic
questions
AI referral traffic FAQ
Straight answers, including what Skald does not do.
What is AI referral traffic?
AI referral traffic is the visits from people who clicked a link in an AI assistant's answer, such as ChatGPT, Perplexity, Claude, Gemini or Copilot. Skald counts them as people, with the assistant as their source, and never adds the assistant's own fetches to them.
How does Skald know a visit came from an AI answer?
By the referrer's host: chatgpt.com, chat.openai.com, perplexity.ai, claude.ai, gemini.google.com, copilot.microsoft.com, you.com, phind.com, poe.com, mistral.ai, or bing.com/chat. An assistant's Android app counts by its app name, and a link tagged utm_source=chatgpt, perplexity, claude, gemini, copilot or mistral counts too.
Why is my AI referral traffic lower than I expected?
Referrers are often stripped: by privacy settings, by a site's Referrer-Policy, by apps that open links in their own browser, and between HTTPS and HTTP. Those clicks arrive as direct visits. So every AI click count is a floor, not a total.
What does "likely from ChatGPT" mean?
It is an estimate. A direct visit with no campaign tag that lands on a page ChatGPT-User fetched in the same minute or up to 15 minutes before is shown as likely from ChatGPT. Likely visits are marked, shown apart, and never added to the AI source or to any other figure.
Can I see which AI answers sent leads?
Yes. A lead keeps its source, first touch and last touch, so a booking that started with a ChatGPT click shows ChatGPT. Likely visits are shown beside leads too, always marked likely. How lead attribution works.
Does Skald count clicks from Google AI Overviews?
No. A click inside an AI Overview arrives exactly like an ordinary Google click, so nobody can count it. A Google AI Mode click that carries udm=50 shows as google.com (AI Mode). Google AI Mode traffic.
$ tail -f access.log | skald
See what AI does with your site. Free for 30 days.
No card. We set up hosted Skald for you within one working day, or you self-host it free. Every line of your log, sorted and added up.