Skip to content
Select theme

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

From reliable to approximate
  1. Bot requestsserver logs: who came and for what
  2. Referrals from AIanalytics: where a person came from
  3. Citationswhether an answer links to the site
  4. 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.

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 20

The 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 -rn

Keep 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.
of llms.txt files were requested by nobody in a month
97%
Ahrefs, 137K domains, May 2026
of AI agent visits on one site went to llms.txt
0.1%
OtterlyAI, 90 days of logs

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.

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.

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 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.txt and 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.

  1. Export the requests of AI company bots from the logs: which pages, which bot classes.
  2. See whether anyone requested /llms.txt and Markdown versions.
  3. Open referrals from AI domains in analytics: count, landing pages, conversions.
  4. Run the fixed question set and record the share of answers that mention the site.
  5. 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.