AI Search

How ChatGPT citations work, from a baseline that moved.

What happens between a buyer's question and the little source number at the end of the answer. Which domains the engines cite for three B2B buyer categories, measured this month. And one case with a before and an after: 3 of 48 unbranded answers in July, 8 of 46 in September, with the fix in between.

By Daria Dovzhikova · Updated September 2026

TL;DR

  • A citation is the last step of four: retrieve, extract, answer, cite. Most of the outcome is decided at retrieval, before the model reads a word.
  • Engines cite what other people publish about you. For three buyer categories we tested this month, Perplexity cited vendor blogs, LinkedIn, and directories. It cited our own site zero times in thirty answers, while recognising the name in every branded prompt.
  • The one fix that demonstrably moved a baseline was rewriting a page the engines were already reading, because they were lifting a competitor recommendation from it.
  • llms.txt did nothing measurable in two independent datasets. Structure, crawler access, and third-party mentions did.

How a citation happens

Four steps, and the order matters because each one filters what the next can see.

  1. Retrieval.The engine decides the question needs the live web, splits it into sub-queries, and fetches candidate pages. OpenAI runs this through a dedicated crawler, OAI-SearchBot, and states that a site which opts out of it "will not be shown in ChatGPT search answers." The training crawler, GPTBot, plays no part in search eligibility. Perplexity retrieves live on every query.
  2. Extraction. From each retrieved page the model lifts the passages that answer the sub-queries. It reads the top of the page first and it reads structure: headings, lists, tables, the first sentence under each heading.
  3. Answer. The model writes from the lifted passages. Whatever a passage says, the answer tends to say. This is the step where a page can work against its owner.
  4. Citation.The engine attaches the pages it drew from. Ahrefs' study of 1.4 million ChatGPT prompts found about half of retrieved URLs earn a citation, and the retrieval channel decides most of it: pages from the search index were cited 88% of the time, news results 12%, Reddit under 2%, YouTube under 1%.

The practical reading: if a page never reaches step one, nothing downstream matters. If it reaches step two with the wrong passage on top, the engine will cite you as the source for a recommendation of someone else.

Sources: OpenAI, crawler documentation; Ahrefs, Why ChatGPT cites one page over another, 1.4M prompts.

What gets cited: three buyer categories, measured

On 10 September 2026 we ran the open-source scorer on three categories GTM Labs sells into. Ten unbranded buyer questions each, generated by a model that was told never to name a vendor, run on Perplexity Sonar. The ChatGPT search engine errored on every call that day, so this table is Perplexity only. GTM Labs was named in zero of the thirty answers and recognised in fifteen of fifteen branded prompts. The domains Perplexity cited instead, with counts across the ten answers:

Domains Perplexity cited for three B2B buyer categories, September 2026, with counts across ten unbranded answers each.
Buyer categoryDomains cited (count)Pattern
Consultants who fix marketing attribution, Meta CAPI, server-side trackingcometly.com (23), linkedin.com (7), ebtonic.io (5), usercentrics.com (4), stape.io (3), leadsbridge.com (3), reddit.com (3), toptal.com (3), youtube.com (3)One vendor blog dominates, then the tooling vendors people already use, then talent marketplaces and Reddit.
AI search visibility and GEO services for B2B softwarelinkedin.com (16), ellows.com (4), tryprofound.com (4), searchable.com (4), iriscale.com (4), simaia.co (3), thesmarketers.com (3), alkersands.com (3)LinkedIn first by a wide margin, then the visibility-tool vendors and small agencies writing about themselves.
Consultants who build signal-based outbound and demand systemslinkedin.com (10), growleads.io (8), martal.ca (7), pipeline.zoominfo.com (5), salesmotion.io (5), unifygtm.com (4), vanderbuild.co (4), reachly.co (4)LinkedIn again, then outbound agencies and the data vendors' own blogs.

Three things stand out. LinkedIn is cited in all three categories, which makes a LinkedIn article the cheapest placement to test. The dominant source in each category is a vendor or agency blog, so the engine is reading commercial content and treating it as reference. Reddit appears in one category, at three citations, which is a long way from the "Reddit owns AI search" story. Your category will have its own list. The point is to pull it before you write anything.

The case: 3 of 48 to 8 of 46

Radar by Skyhook is an open-source Kubernetes UI. In July 2026 we ran its first baseline: 48 unbranded prompts across four models, the kind of question a platform engineer asks when choosing a dashboard. Radar was named in 3 answers. The incumbent it competes with, Lens, was named in 39. On the eight prompts about Kubernetes and AI agents, where Radar has a real feature, it scored 0 of 8.

The finding that changed the plan came from reading the citations, not the scores. Twice, a model opened Radar's own page about alternatives to Lens, lifted the balanced comparison at the top, and recommended a competitor, citing Radar's page as the source. The page was doing its job as honest content and working against the project at the extraction step.

What changed, in order
  • 2 August: the alternatives page rewritten as a sourced decision guide that leads with the direct answer and names the project in the first sentence.
  • 4 August: canonical positioning made consistent across llms.txt, JSON-LD, and the answer-first summaries on the blog.
  • Mid-July, before either fix: the first Google AI snippet for the project, arriving through a third-party link rather than the site itself.
  • September re-run: named in 8 of 46 unbranded answers. The AI-agent prompts went from 0 to 2.

What we cannot say: which of the two August changes did the work. They shipped two days apart and the re-run measured both. What we can say: the number moved on unbranded prompts across four engines, not on branded recall, which was already high. Eight of 46 is still a minority position against an incumbent with a decade of documentation behind it. It is also the difference between absent and present.

The four numbers, and why one score lies

Most AI visibility dashboards print one percentage. That percentage is usually high, and usually meaningless, because the tool asked the engine about you by name. Ask any engine "is Acme good?" and it will describe Acme. That is recall. Every company with a website scores near 100% on it. Visibility is whether the engine names you when the buyer does not.

  1. Organic share, per engine. Of the unbranded buyer questions where any tracked vendor is named, how often is it you. Scored per engine, never blended, because the same brand can be first on Perplexity and absent on ChatGPT in the same week.
  2. Branded recall, on its own line. Does the engine know you when handed the name. High recall with low organic share is a discovery problem. Low recall is an entity problem. Different fixes.
  3. Named instead of you. The vendors the engines surface on your buyers' questions. This is your competitive set as the engines see it, which is often not the one on your battle cards.
  4. Citation supply chain. The domains behind the answers. The list in the table above. The work is here, not on your homepage.

In the September runs the numbers read: organic 0 of 10 on each category, recall 5 of 5 on each. A blended score would have averaged those into something comfortable. Kept apart, they say the engines know GTM Labs and never reach for it, which is the true state and the one worth fixing.

How to earn a citation: five moves

Each one tied to the step in the pipeline it acts on. Anything that does not touch retrieval, extraction, or the citing domains is decoration.

Move 01 · Retrieval

Let the search crawler in

ChatGPT search eligibility runs through OAI-SearchBot, and OpenAI states that sites which block it will not be shown in search answers. GPTBot is the training crawler and has nothing to do with search eligibility. Check robots.txt for both before anything else; a surprising number of sites block one thinking they blocked the other.

Move 02 · Retrieval and ranking

Match the title to the sub-question

Engines split a buyer question into several sub-queries and retrieve per sub-query. Ahrefs measured cited pages at 0.656 cosine similarity between title and sub-query against 0.484 for retrieved-but-uncited pages. A page titled for the exact question a buyer asks beats a clever one.

Move 03 · Extraction

Write for extraction, in the first screen

The model lifts a passage and reasons from it. If your comparison page opens with a balanced list of alternatives, the passage it lifts is a list of your competitors with your name attached as the source. The Radar case below is exactly that failure. Lead with the direct answer, put the entity name in the first sentence, and keep each section on one claim.

Move 04 · Citation

Earn a mention where the engine already looks

The supply-chain table above is the placement list. For a domain with little authority, one mention on the vendor blog the engine cites 23 times does more than ten posts on your own site. LinkedIn appeared in all three categories we tested, which makes it the cheapest placement to test first.

Move 05 · Feedback

Measure unbranded, per engine, monthly

One run is a data point, not a trend. Run the same unbranded prompt set on the same engines every month, keep branded recall on its own line, and watch the supply chain shift. When a domain you placed on starts appearing in the citations, you know which move worked.

One move you can skip: llms.txt. SE Ranking modelled 300,000 domains and found no correlation with AI citations; removing the file from the model improved its predictions. Ahrefs read server logs across 137,000 domains and found 97% of llms.txt files received zero requests in a month. We ship one anyway because it costs nothing. We count on it for nothing.

Sources: SE Ranking, llms.txt study, 300K domains; Ahrefs, 137K-site log analysis.

Which engines matter for a B2B buyer

Goodie's May 2026 market-share report, built on GA4 referrer data from a panel of mostly B2B brands and triangulated against SimilarWeb, put the March to April split of measurable B2B AI referrals at ChatGPT 62.6%, Claude 18.5%, Gemini 10.6%, Perplexity 7.3%. Two readings. ChatGPT still sends most of the traffic, so its retrieval rules above are the ones to satisfy first. Perplexity sends the least and is the easiest to measure and the fastest to move, which makes it the right place to test placements before scaling them.

Source: Goodie, AI search traffic report, Wave 2, published 21 May 2026.

How to measure it yourself

The method in this article is open source. The ai-visibility-scorer is a zero-dependency Python script: give it your brand, domain, category in plain words, and a few competitors; it generates unbranded buyer questions, runs them on Perplexity and ChatGPT search through one OpenRouter key, and prints the four numbers with the supply chain. A run costs cents. Run it monthly and keep the JSON, because one run is a data point and the trend is the finding.

For a one-question read without setting anything up, the free AI visibility checker on this site does the same split, organic on one line and branded on the other.

FAQ

How does ChatGPT decide what to cite?

When a question needs current information, ChatGPT search runs web queries, retrieves pages through OAI-SearchBot, extracts the passages that answer the sub-questions, writes the answer, and attaches citations to the pages it drew from. Ahrefs' study of 1.4 million prompts found the retrieval channel decides most of it: pages that came through the search index were cited 88% of the time, Reddit results under 2%, YouTube under 1%. Titles that match the sub-queries and readable URL slugs raised the rate further.

How do I get cited by ChatGPT?

Be reachable by OAI-SearchBot, answer the exact buyer question in the first screen of a page whose title matches it, structure the page so a passage can be lifted without distortion, and earn mentions on the third-party domains the engine already cites for your category. That last one matters most for a young domain, because engines cite what other people publish about you far more than what you publish yourself.

Is Perplexity different from ChatGPT search?

Perplexity retrieves live on every query and returns citations with every answer, so it is the easiest engine to measure and the one where third-party placements show up fastest. ChatGPT decides per query whether to search at all, and its search eligibility runs through OAI-SearchBot rather than the training crawler. Score them separately. The same brand ranks differently on each.

Does llms.txt help you get cited?

The data says no. SE Ranking modelled 300,000 domains and found no correlation between an llms.txt file and AI citations; removing the file from their model improved its predictions. Ahrefs pulled server logs across 137,000 domains and found 97% of llms.txt files received zero requests in a month. Ship it if you like, but count on it for nothing.

What is a citation supply chain?

The set of domains an engine cites when answering your buyers' unbranded questions. It is the placement list for your category. In our September 2026 runs, Perplexity cited cometly.com 23 times across ten attribution-consultant questions, and linkedin.com in all three categories we tested. Those are the places a mention earns a citation.

Why does my AI visibility score look high when nobody finds us?

Because the tool asked branded prompts. Ask an engine about a company by name and it will describe the company almost every time. That measures recall, and it is near 100% for anyone with a website. Visibility is whether the engine names you when the buyer does not. Report the two numbers on separate lines and never average them.

How long does it take for citations to move?

In the one case we can show end to end, eight weeks: a July baseline of 3 mentions in 48 unbranded answers, fixes merged on 2 and 4 August, a September re-run at 8 of 46. Perplexity moved first. The engines that lean on a cached index moved later. Anyone promising a number in a week is measuring branded prompts.

How do I measure this myself?

Run the open-source ai-visibility-scorer: it generates unbranded buyer questions for your category, runs them on Perplexity and ChatGPT search through one API key, and prints four numbers: organic share per engine, branded recall on its own line, who was named instead of you, and the domains the engines cited. A run costs cents. Or use the free checker on this site for a one-question read.

Want the baseline run on your category?

The Growth Pilot, with AI visibility as one of the two cards.

Four engines, unbranded prompts, the extraction gaps found and fixed, the same prompts read again on day 28. $5,000 fixed, four weeks. The Radar sequence above is what it looks like on a real project.

Ready when you are.

Discovery calls are 30 minutes. First one's on me.

Book a 30-minute call