Skip to content
New storyWe built Skald to count visitors. It caught an AI-key thief.
SkaldEvery visit, truly told.

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

clicks from AI answers · sample month

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.

drop one
https://chatgpt.com/
1 · hostchatgpt.com · chat.openai.com · openai.com · perplexity.ai · claude.ai · gemini.google.com · copilot.microsoft.com · you.com · phind.com · poe.com · mistral.ai, or a subdomain
2 · app idcom.openai.chatgpt · ai.perplexity.app.android · com.anthropic.claude · com.google.android.apps.bard · com.microsoft.copilot
3 · pathbing.com/chat, and only that path
4 · tagutm_source = chatgpt · openai · perplexity · claude · gemini · copilot · mistral
through every platefiled by its host, or Direct

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/

turn a tumbler

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.

pick one
02550750200400fetches →visits from its answers ↑ ChatGPT Perplexity Claude Gemini Copilot
off the chartYou.com · Phind · Poefetches: not recorded

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.

open a passport

visits · sample

Mon 09:14chatgpt.com/docs/setup/
Wed 16:02Direct/pricing/ · first came from chatgpt.com, 2 days ago
Wed 16:09form sent/contact/

the lead

first touch
chatgpt.com · Mon
last touch
Direct · Wed
leads by source
a row for chatgpt.com

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.

  1. 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.
  2. 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.
  3. 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.

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.

Start free trial Live demo