How to measure AI visibility
What can really be measured in AI search - bot requests in server logs, referrals from AI systems in analytics, citations and share of voice - how to do it and where measurement ends
Four measurable things
Section titled “Four measurable things”- Bot requestsserver logs: who came and for what
- Referrals from AIanalytics: where a person came from
- Citationswhether an answer links to the site
- Share of voicehow often the site is named over a question set
The further left, the more exact the data and the less it says about the outcome. The further right, the closer to the outcome and the noisier.
1. Bot requests
Section titled “1. Bot requests”The server log is the only place that shows whether anyone reads the site and its files. Every request leaves a line with the address and the client name.
grep -E 'GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User' access.log \ | awk '{print $7}' | sort | uniq -c | sort -rn | head -n 20The command shows which addresses the bots of AI companies requested. Look at /llms.txt separately:
grep ' /llms.txt' access.log | awk -F'"' '{print $6}' | sort | uniq -c | sort -rnKeep in mind:
- Bots come in three classes. A training bot, a search bot and an agent acting for a user are different events. A training bot’s visit says nothing about appearing in answers. Classes and names: AI crawlers.
- A client name can be faked. Large owners publish the address ranges of their bots: verify against them.
- Requested does not mean used. A bot downloaded a file; that is a fact. Whether the text reached an answer, the log does not know.
2. Referrals from AI
Section titled “2. Referrals from AI”When a person clicks a link in an AI answer, the site receives an ordinary visit with a referrer. Analytics shows it in the sources report.
Sources worth putting into a separate group: chatgpt.com, perplexity.ai, claude.ai, gemini.google.com, copilot.microsoft.com.
Limits:
- Some visits arrive without a referrer. Apps and some browsers do not pass it, and such a visit lands in “direct”.
- Google AI Overviews are not a separate source. Their clicks are counted in overall search statistics; Search Console has no separate breakdown.
- Referrals are few by nature. A person got the answer and often goes nowhere. No referrals does not mean no mentions.
3. Citations
Section titled “3. Citations”A citation is a link to the site in an AI answer. There is one way to count it: ask the question and read the answer.
- Write down the questions the site should be a source for. Not the brand name, but real customer questions.
- Ask them in several systems with search enabled.
- Record: whether the site is named, whether there is a link, whether the meaning is conveyed correctly.
There is a lot of noise. The answer depends on the wording, the region, the conversation history and chance. One run means nothing: repeats are needed.
4. Share of voice
Section titled “4. Share of voice”Share of voice is the share of answers that name the site or the brand over a fixed set of questions. It is a comparative metric: it is read over time and against competitors.
For the number to be trusted:
- The question set is fixed and does not change between measurements.
- Each question is asked several times, and a share is counted, not a single result.
- The system, mode and date are recorded. Models are updated, and a jump may have nothing to do with the site.
- The comparison is with the previous measurement on the same set, not with someone else’s figures.
Paid services do the same automatically. Each has its own method, and numbers from different services are not comparable.
What cannot be measured
Section titled “What cannot be measured”What is known and what is not
Confirmed
- Bot requests and AI referrals are visible in the site’s logs and analytics.
- Citations and share of voice can be counted by polling a fixed set of questions.
- Google writes that the same fundamentals apply to AI features of Search as to ordinary search.
Not proven
- That a single technique - a file, markup, a text format - raises share of voice by itself. Studies of the link between
llms.txtand citations did not find one. - That a rise in mentions was caused by a site change rather than a model update.
What it does not mean
- A position in an AI answer does not exist: the answer is assembled anew each time.
- Appearing in an answer cannot be guaranteed, and a promise of such a guarantee is a sign of a dishonest offer.
Requests, referrals and repeatable polls are measurable. A position in an answer and the reason for appearing in it are not.
A minimal measurement routine
Section titled “A minimal measurement routine”- Export the requests of AI company bots from the logs: which pages, which bot classes.
- See whether anyone requested
/llms.txtand Markdown versions. - Open referrals from AI domains in analytics: count, landing pages, conversions.
- Run the fixed question set and record the share of answers that mention the site.
- Compare with the previous month and note what changed on the site.
That is enough to tell a change from noise and not to pay for a number that cannot be verified.
What to read next
Section titled “What to read next”- GEO and AEO - where the terms came from and what stands behind them
- Does llms.txt work - studies with their methods and caveats
- Glossary - short definitions
- An AI-ready site - what to prepare before measuring