AI Visibility Checker: When the Citation Count and the Answer Disagree

Key takeaways

Same 20 prompts, three AI surfaces, one day. Gemini cited a median of 47 sources per answer, Perplexity 20, and ChatGPT cited nothing on 12 of 20 prompts while still naming vendors. Here are the two signals a visibility checker has to keep apart.

Two AI visibility checkers can read the same answers on the same day and report opposite verdicts. One returns a citation count. The other returns nothing at all, because the answer recommended your brand by name and never linked to it.

We ran 20 prompts across three AI surfaces in September 2026 and logged two signals on every answer: the brands the answer names in its own text, and the domains the answer presents as sources. Those two signals are not two views of one measurement. They come apart in predictable places, and the places where they come apart are the most useful part of the report.

The short version: Perplexity cited sources on every prompt and Gemini returned a median of 47 source annotations per answer, while ChatGPT returned no citations at all on 12 of 20 prompts and still named vendors in 13 of them. Run-to-run churn on a single surface is a separate problem, and we measured that one earlier in AI visibility tracker run variance.

What we ran

Item

Setting

Prompts

20 questions a buyer would ask about AI visibility tooling

Surfaces

ChatGPT (gpt-5-2025-08-07), Gemini (gemini-2.5-flash), Perplexity (sonar)

Web search

Enabled on all three surfaces

Location and language

United States, English

Date

September 12, 2026

Answers collected

60

Cost of the full run

$1.444, or $0.024 per answer

Repeat runs

The same 5 prompts run a second time, to see whether behaviour is stable

Cost per answer ranged from $0.006 on Perplexity to $0.037 on Gemini. The cheapest surface produced the most consistent source list, and the most expensive surface was not the one that returned the most sources.

The two signals, measured separately

Every answer was captured twice: once as text, once as the list of sources the surface attached to that text.

Surface

Source annotations

Per answer

Answers with zero citations

Distinct domains per answer

ChatGPT (gpt-5)

90

0 to 18, median 0

12 of 20

0 to 10

Gemini 2.5 Flash

989

14 to 122, median 47

0 of 20

3 to 23

Perplexity

399

19 to 20

0 of 20

16 to 20

The three lists are not the same kind of object, which is the first thing a checker gets wrong.

Bar chart of median sources attached to one answer, showing 0 on ChatGPT, 47 on Gemini and 20 on Perplexity across 20 prompts each

Gemini attaches a source to nearly every claim. The same page can occupy many slots in one answer, which is why the counts run so high: across the 20 Gemini answers, semrush.com held 44 slots, maxaeo.ai 26, google.com 22, adobe.com 21, and medium.com 20. A high annotation count on this surface is a statement about how granular the model is being, not about how widely your brand is known.

Perplexity publishes a panel with a ceiling. It returned exactly 20 sources on 19 of 20 prompts and 19 sources on the twentieth. That fixes the denominator: your share of a Perplexity answer is always a share of 20, so a slot gained is a slot lost by someone else.

ChatGPT returns a source list only when it searched. It issued search queries on 8 of 20 prompts and cited nothing on the other 12. On those 12 prompts it still answered the question and still named tools. One example, unedited: asked for the best tool to track brand mentions in AI search results, it listed Brand24, Mention, BuzzSumo, Talkwalker, and Google Alerts, with no sources attached to any of them. The checklist we use to audit a ChatGPT answer for that failure mode is in the ChatGPT visibility checklist.

Named without being cited

We then counted, for 27 brands and publications, how many of the 60 answers named the brand in the text and how many cited its domain as a source. The two columns disagree in both directions.

Brand

Answers naming it

Answers citing its domain

Semrush

18

15

Reddit

16

14

Otterly

14

6

Ahrefs

13

16

Profound

11

6

Peec AI

11

2

Frase

5

9

HubSpot

5

8

ZipTie

5

0

Siftly

4

5

Keyword.com

4

5

Nightwatch

3

4

LLM Pulse

2

6

Cognizo

1

6

MaxAEO

1

7

Searchable

1

5

AirOps

0

5

Menra

0

4

Two patterns sit in that table. Peec AI, Otterly, Profound, and ZipTie are recommended in answers far more often than their pages are linked. MaxAEO, Cognizo, LLM Pulse, Searchable, AirOps, and Menra are the reverse: their pages are pulled in as sources without the answer ever naming the company. A link-only checker scores the second group as visible and the first group as invisible. A mention-only checker does the opposite.

Grouped bar chart comparing how often five brands are named in AI answers against how often their domains are cited as sources, out of 60 answers

Across all 60 answers the three surfaces together cited 432 distinct domains. ChatGPT accounted for 47 of them, or 11 percent, Gemini for 184 (43 percent), and Perplexity for 285 (66 percent). Whichever surface you check, you are looking at a sample of a much larger source universe. None of this covers Google's own surface, where presence is measured differently, as our AI Overview tracker sets out.

What a checker has to record

A visibility checker that returns one number is discarding three of its four fields. These are the four worth keeping.

Field

Recorded as

Why it changes the verdict

Did the surface search

yes or no

A no-search answer cannot produce a citation, so its zero is not a visibility signal

Brand named in the answer text

count of answers

This is the only signal that survives on an ungrounded answer

Domain present in the source list

count of answers

This is the signal that most tools report alone

Denominator

answers, and source slots per answer

A fixed 20-slot panel and a 47-annotation list are not comparable as percentages

The practical consequence is a false zero. On our data, 13 of 20 ChatGPT answers named at least one vendor while only 8 of 20 cited anything, so roughly a quarter of that surface's answers will report zero citations for brands that the same answer recommends by name.

How to run this without fooling yourself

If you hand the job to an agent, the failure mode is not a wrong number. It is a confident number computed from a field that was never collected.

  • Capture the raw payload before computing anything. Keep the answer text, the source list, the model identifier, and a boolean for whether search queries were issued. Derived metrics belong in a second step, in code, not in the collection prompt.
  • Make the agent quote, not summarise. A rubric that says "report how often the brand appears" produces prose. A rubric that says "return the answer text verbatim and the source list verbatim" produces data you can re-check.
  • Rerun the same prompt before trusting a change. We repeated 5 prompts, and the search decision agreed with itself on 5 of 5, which means a sudden jump in citation count is more likely to be a model version or a prompt edit than noise.
  • Keep the model identifier in every row. The same 20 prompts run through gpt-4o on the same endpoint returned source annotations on only 2 of 20 prompts, against 8 of 20 for gpt-5.
  • Budget for it. The full 60-answer run cost $1.444, so a weekly version of the same check costs about $6 a month at these prices.

Limits

  • One day, one location, English, three surfaces. Regional answers will differ.
  • One model version per surface. Behaviour moved between model versions in our own runs.
  • Brand detection is string matching on names, so a brand recommended only by product name could be missed.
  • Web search was enabled through an API. Consumer apps may search more or less often than these runs did.
  • Cost covers answer generation only, not storage or review time.

FAQ

Why did ChatGPT report zero citations on 12 of 20 prompts?

Because it answered those prompts without searching. A model that never retrieves a page cannot cite one, so the zero describes the run, not your brand. Before reading any citation number from a chat surface, check whether that surface used the web at all.

Is being named in an answer worth anything if there is no link?

It is the whole signal on an ungrounded answer, and it is the signal that precedes a link. Mentions and links are earned from different sources in our data: mentions follow comparison and review content, while citations follow pages structured to be quoted.

Should I combine mentions and citations into one visibility score?

No. They disagree systematically in both directions, as the brand table shows, and a combined score hides which one moved. Report them as two lines and let the reader see the gap.

Which surface should I check first?

Perplexity if you want a stable, cheap, fixed-width panel, because its list length does not change. Gemini if you want breadth, since it reached 184 of the 432 domains we saw. ChatGPT only with a validity check attached, because a fifth of its answers will otherwise read as an invisible brand.

Auspia view: report mentions and citations as two separate lines, and record whether the surface searched before you record anything else. A single visibility score hides the exact gap that tells you what to fix next, and the cheapest fix in our data was not more content. It was checking a surface that actually looked.

Adrian Cole

Explore this topic

Keep following the same growth thread