You typed your site into a free AI visibility checker and it came back with a zero. Then you looked at your own server and found ChatGPT reading your pages thousands of times a month. Both numbers are true. They measure different things, and until you know which is which, every AI visibility report you read will either alarm you or flatter you for no good reason.
This article sorts every number you will meet into three kinds, explains how the checkers arrive at theirs, and shows how to track brand mentions in AI search without mistaking a sample for a count. In the middle is a test. We ran three free checkers on a news site we run on one day and set what they showed beside what the site’s own logs recorded for the same month.
The short answer
AI visibility tracking is measuring how often AI assistants read, name or link to your site, and how many people that sends you. Every number involved is one of three kinds.
A count is something that happened on your server, such as an assistant reading a page to answer a question, or a person arriving from an assistant. A sample is what a tool saw when it asked its own list of questions. An estimate is a score or reach figure built on top of a sample. Counts are floors but real. Samples are real observations of the tool’s questions, not of everyone’s. Estimates are for comparing yourself with a competitor on the same day, and little else.
| The number | What kind it is |
|---|---|
| Live reads by an assistant’s fetcher | Count, from your server |
| People who arrived from an assistant | Count, from your server or analytics |
| Mentions and citations in a checker | Sample of the tool’s prompts |
| Share of voice against competitors | Sample, as a ratio |
| AI visibility score, 0 to 100 | Estimate built on a sample |
| Audience reach, prompt volume | Estimate built on a model |
Three kinds of number
Counts. Did it happen on your server?
When someone asks ChatGPT a question and it reads one of your pages to answer, its fetcher arrives at your server under the name ChatGPT-User, which OpenAI describes as acting on a user’s request rather than crawling on its own. Claude’s is Claude-User and Perplexity’s is Perplexity-User. Each read is one line in your server’s log. When a person clicks through from an assistant, their browser usually says where they came from, and that is another line.
A count is complete for everything that reached the place doing the counting. A server log sees every request. A plugin inside WordPress sees every request that reaches WordPress, which on a cached site is a fraction. A count tells you a page was read, not that it was shown to the person. Our piece on seeing whether ChatGPT is fetching your pages covers the difference between fetched, cited and clicked.
Samples. Did someone ask questions and tally the answers?
A sample is what you get when a tool asks an assistant a list of questions, its prompt set, and writes down which brands and links appear in the answers. Mentions, citations, share of voice (some vendors say share of model) and sentiment are all read off that tally. It is a real observation. The tool really asked and the assistant really answered. What it observed is the answers to that list, from that tool’s location, on that day. Nobody outside the AI companies can see what the public actually asks, so the list is always the tool’s best guess at your customers’ questions.
Estimates. Is it a figure nobody observed?
An estimate is a number built on top of a sample. A visibility score out of 100 is usually the share of sampled answers in which you appeared, sometimes weighted by where you appeared. Semrush’s own page describes its score as how often your brand appears compared with others in your industry. Audience reach multiplies that by a model of how many people ask such questions. Prompt volume is a model too. These can be handy for comparing two brands on the same day with the same tool. They are not a count of anything that happened to your site.
How to track brand mentions in AI search with a checker
What the free tools do
The free checkers work the same way, and each says so on its own page. Ahrefs says it queries ChatGPT, Gemini, Perplexity, Copilot and Google AI Overviews, and its questions section adds Google AI Mode. It uses what it calls search-backed prompts, meaning questions derived from what people search for on Google, and checks whether each platform mentions your brand. It describes the free version as a limited preview showing the top five results in each section.
Semrush says its free tool draws on a database of more than 26 million prompts and responses across ChatGPT, Gemini, AI Mode and AI Overviews, and allows three checks a day.
SE Ranking takes your domain and up to five competitors, lets you choose among AI Overviews, AI Mode, ChatGPT, Gemini and Perplexity, and returns brand mentions and linked mentions as numbers and percentages, five checks a day. Its page says the toolkit “sends queries to AI platforms and captures the responses as a real user would see them” and that the data reflects live AI behaviour rather than sampled outputs. Both things are true at once. The answers are live. The questions are a chosen set, and that is what we mean by a sample.
So a checker gives you a sample. Read it as one and it is useful.
- Look at the prompts before the score. The topics list tells you which questions the tool asked. If they are not your customers’ questions, the score is not about your customers.
- Separate mentions from citations. A mention is your name in the answer. A citation is a link to your page. Ahrefs’ page draws exactly that line. A news site is linked far more often than it is named.
- Keep each assistant separate. One total across ChatGPT, Gemini, Copilot and AI Mode hides where you actually appear.
- Run it again next week before you believe a change. The reasons are further down.
The name problem
Where a tool accepts a domain, give it the domain. We learned this the easy way. We typed our news site’s name into the Ahrefs checker, a plain English word that many organisations use, and got about 250,000 mentions back, nearly all of them about other organisations that use the word. The tool was doing what its page says, counting every answer that used that word. The domain check that followed was about our site. If your brand is a common word, a name-only result may be about someone else.
What three free checkers said about one site
On 25 September 2026 we ran three free checkers on the domain of a news site we run. It publishes New Zealand news and a large set of plain-language guides, and AI assistants read its pages all day. The checkers were sampling whether the site is named or linked in answers to their prompt lists. The site’s server, in the next section, was counting page reads and visitors. Keep that difference in mind while reading both tables.
| Checker, 25 September 2026 | ChatGPT mentions | What else it showed |
|---|---|---|
| Ahrefs free checker | 3 | 91 across five platforms |
| Semrush free tool | 0 | Score 0, citations 12 |
| SE Ranking free check | 0 | Competitor 39 |
For the record, the Ahrefs total of 91 broke down as ChatGPT 3, Gemini 11, Copilot 53, AI Overviews 2 and AI Mode 22, with a monthly trend from March to August that never rose above about 20, and its top cited page was a trip-cost guide with 15.
The Semrush report showed a score of 0, labelled Low, mentions of 0 on all four platforms, and Citations 12 in its summary. Beneath it, a Top Cited Pages list showed three of the site’s guides with 24, 10 and 9. The page shows both figures, so we report both as shown.
On SE Ranking we selected ChatGPT, Gemini and Perplexity, and our domain showed 0 brand mentions and 0 linked mentions, while the one competitor we entered, a national broadcaster, showed 39 mentions and 58 linked mentions.
The checkers told us two things a server log never could. They named the pages an assistant linked to in their samples, and Ahrefs listed the topics that produced the mentions. That is the trade-off between a sample and a count. A sample can see the answer. A count can only see the request.
What the same site’s server said
Here are the site’s own records for the 30 days from 26 August to 24 September 2026, first from the raw server log, which sees every request. These are page reads, not questions or people. One question can cause several reads and the same page can be read again and again.
| Raw server log, 30 days | Count |
|---|---|
| Page reads by ChatGPT-User | 36,852 |
| Page reads by Claude-User | 5,645 |
| Different pages those two read | 1,963 |
| Page loads by people arriving from ChatGPT | 382 |
| From Gemini | 140 |
| From Copilot | 93 |
| From Claude | 34 |
| From Perplexity | 31 |
Smaller live readers, DuckDuckGo’s and Mistral’s, added a few hundred reads. Perplexity-User made none in the month, although its search crawler PerplexityBot did visit and 31 people arrived from Perplexity. Perplexity’s crawler indexes pages so that its assistant can cite them later, so a site can be cited without a live read. A zero in a log can be a real zero.
The plugin inside WordPress recorded a smaller set of numbers for a window one day later than the log’s, the 30 days to 25 September.
| Plugin dashboard, 30 days to 25 September | Count |
|---|---|
| Live reads by AI bots | 4,560 |
| People sent by AI assistants | 157 |
| Of those, sent by OpenAI | 73 |
| Google (Gemini only) | 57 |
| Perplexity, Microsoft, Anthropic, Meta | 14, 7, 5, 1 |
| Visitors per 100 live reads | 3.4 |
Three things explain why those are lower than the log. The site sits behind a full-page cache that answers most requests before WordPress runs, and we had not switched on the plugin’s log import, which exists to close exactly this gap. The plugin counts people rather than page loads, one per person per page within half an hour, and leaves out anyone logged in. And the Google figure is Gemini only, because clicks from AI Overviews and AI Mode cannot be told apart from ordinary Google search. Even a count is a floor. Our guide to caches hiding bot visits explains how to raise it.
Why the numbers differ
The checkers’ samples put the site’s ChatGPT mentions at 3, 0 and 0. The server counted ChatGPT reading the site’s pages 36,852 times in a month, each read triggered by a user’s request according to OpenAI’s description of the fetcher, across 1,963 different pages, and 382 page loads by people who came from ChatGPT. None of these numbers is wrong. They answer different questions.
A checker asks whether the site is named or linked in answers to the checker’s list of questions, and a brand check looks for the name. A news site with thousands of pages is read to answer thousands of specific questions, about a road closure, a fine, a meteor shower, a fuel price, that no prompt list would include, and the answer rarely names the site. The server sees every one of those reads. The checker sees its list. The distance between 36,852 and 3 is the distance between those two things.
Why one score moves on its own
Ask an assistant the same question twice and you get two different answers with different sources. This is not a fault in any tool. It is how the assistants work, and it sets a floor on how precise any sampled number can be.
Researchers at the University of St. Gallen measured it. Their April 2026 paper, Don’t Measure Once, ran 32 prompts through ChatGPT, Gemini, Google AI Mode and Perplexity every day for 45 days, then ran the same prompts up to ten times on the same day. From one day to the next, only 34 to 42 percent of the cited sources stayed the same, so roughly two thirds changed overnight. Running the identical prompt again within 24 hours gave a 32 to 43 percent overlap, almost the same, which means the churn comes mostly from the assistants themselves rather than from the web changing.
Brand names were steadier than links but still overlapped only 45 to 59 percent day to day. The authors conclude that “single observations of AI visibility are misleading and risk over- or underestimating true brand presence.”
Their practical advice is at least seven runs of each prompt per day before a brand’s rate of appearing is worth reporting, eight where the cited sources matter, a large and varied prompt list, and aggregating over two to four weeks before reading a trend. A check that runs each prompt once is one draw from that spread.
Others find the same. cloro ran the same 20 prompts through the same model, a Claude model with web search, twice, minutes apart, and found it repeated only about 40 percent of its cited domains the second time. It estimates that pinning a visibility rate to within about five points takes roughly 300 answers.
The HOTH did the arithmetic for a small test. Twenty prompts showing a 20 percent citation rate carry a margin of error of roughly 17 points either way, so the true rate could be anywhere between roughly 2 and 38 percent. Even the model builders see it. Thinking Machines Lab sent one prompt to an open model on its own servers 1,000 times with randomness turned off and got 80 different answers, then showed the cause and how to engineer it out. The public assistants have not said whether they have.
There is a second problem that repeat runs do not fix. Whether twenty chosen prompts stand for what people really ask is a separate question, and no amount of re-running answers it. Run-to-run noise sets the precision of a score. The prompt list sets whether the score is about your customers at all.
Put plainly, a visibility score that moves from 12 to 15 in a month has probably not moved at all. A score that halves may have. And a single free check, run once, is a photograph of a coin toss.
How to track AI visibility without fooling yourself
- Count first. Get the live reads and the people sent from your own server before you look at any score. They are the only AI visibility numbers that describe your site rather than a sample. On a cached site, import the server log or the count is a fraction.
- Write your own prompt list and freeze it. Twenty to fifty questions your customers would really ask, in their words. Do not change the list between checks, or the change you see is the list changing.
- Run each prompt more than once. Seven times a day is the research floor. If you cannot, run it three times and treat the result as rough. Once is a coin toss.
- Keep the assistants apart. A blended score hides that you might be everywhere in Copilot and nowhere in ChatGPT. Report each one.
- Compare long windows. The research points to two to four weeks. A month against a month is safer. Never read a day against a day.
- Pair every sample with a count. If the checker says your mentions doubled and your live reads and visitors did not move, the doubling happened inside the sample.
- Use Bing’s report for Copilot. Bing Webmaster Tools publishes an AI Performance report of the queries Copilot ran and the pages it cited, the one report of its kind from an AI company, and it is free. Our piece on what you can and cannot know about the prompts behind AI visits explains how to read it.
What a score is good for
None of this makes the checkers useless. A sample answers questions a count cannot. Your server cannot tell you whether a competitor is named in the same answers as you, which topics an assistant associates with your name, or how it describes you. A checker can, within the limits above.
Two examples from our own run. SE Ranking’s competitor table showed a national broadcaster named 39 times where our site was named none, for the three assistants we picked. A news site that wanted to be named as a source, rather than merely read, would treat that as the start of a plan. And the topics list in the Ahrefs report showed the questions behind its mentions, which told us that the mentions came mostly from a handful of evergreen guides and feature pieces rather than the daily news, a gap we had not thought about.
Questions people ask about tracking AI visibility
What is the difference between AI visibility and AEO?
AI visibility is the measurement, how often your brand or pages appear in AI answers. AEO, answer engine optimisation, is the work of trying to appear more often. The measuring is the hard part, for the reasons in this article.
Which free AI visibility checker should I use first?
Whichever shows you its prompts. They are different samples, so on the same day, for the same domain, the three we tried returned 91 across five platforms, 0 and 0, each reporting its own list of questions. Run two, read the topics behind each, and keep the one whose questions look most like your customers’.
Can I track brand mentions in ChatGPT for free?
Partly. The free checkers give a sample, and you can run your own prompts by hand, which is free and slow. What no tool can give you is the real questions people ask ChatGPT. What your own server gives you for free is every time ChatGPT read a page to answer one.
Does a mention mean traffic?
Rarely by itself. Pew Research found people clicked a link inside a Google AI summary in about 1 percent of visits to pages that showed one. On our news site, the plugin’s figure was 3.4 people per 100 live reads. Being read and being named are both a long way upstream of a visit.
Why does my score differ between tools?
Different prompt lists, numbers of runs, days, locations and formulas. Add the fact that the assistant answers differently each time, and two careful tools can disagree widely about the same site on the same day.
What to do this week
- On the same day, run two free checkers on your domain, not your name, and open your server log or bot log. Write the two sets of numbers side by side, as we did above.
- Save the prompt lists the checkers show you. Those are what the scores are about.
- Mark each of your numbers as a count, a sample or an estimate, and never compare across the three.
- Verify your site in Bing Webmaster Tools and open the AI Performance report.
To track AI visibility properly, count what reaches your server, sample carefully and often, and treat every score as an estimate with a wide margin. The tools are not the problem. Reading a sample as a count is.
Start with the counts
The free plugin records every AI bot visit that reaches your WordPress site, sorted into live reads, search crawls and training crawls. On a cached site that is a floor, so it also imports your server log to fill the gap. Pro adds the people each assistant sent, paired with the read that came before the click.