GEO
How AI Engines Decide Which Brands to Recommend
When ChatGPT or Perplexity recommends three tools, how does it pick them? A breakdown of what actually happens inside the answer, what our own citation logs show, and what any of it means for getting named.
When you ask ChatGPT or Perplexity "what's the best tool for X?", you get a confident shortlist of two or three names. It feels authoritative. But where did those names come from, and why those and not others?
I've been storing the URLs our visibility checks get back since June 2026, which means I can answer part of this with logs rather than vibes. The logs disagreed with a fair amount of what I'd previously written on this blog, so this post is partly a correction.
Two mechanisms that get confused constantly
Almost every piece of GEO advice I read treats "the AI" as one thing that has one set of preferences. It isn't. There are two separate paths to your brand name appearing in an answer, and they reward completely different work.
The first is recall from training. The model absorbed a large amount of text before its cutoff date. Somewhere in that text your category was discussed, and certain brand names co-occurred with certain problems often enough that the association survived compression into weights. When you ask an ungrounded model for the best tool in a category, this is what you get: a statistically likely set of names, with no source behind them, sometimes years stale, occasionally invented outright.
The second is retrieval at query time. The engine turns your question into one or more search queries, fetches a handful of results, and writes an answer from what it just read. Perplexity does this on every query. ChatGPT does it when it decides the question needs current information or when search is explicitly on. Google's AI Overviews are built on top of Google's own index.
These behave nothing alike. Retrieval responds to a page you published last week. Training recall responds to nothing you do until the next model ships, and even then you're competing against the entire internet's accumulated text about your category. If you're a company under a few years old, effectively all of your addressable AI visibility is on the retrieval side.
Here's how badly this can mislead you if you don't separate them. When I first went looking at our stored citations, I had 236 URLs. It looked like a decent dataset. Then I checked which engine each row came from: 213 were from checks labelled chatgpt, running through a model with no web grounding, where we were pulling URLs out of the answer text with a regex. Those weren't citations. They were the model reciting domains it remembered, which is why so many of them were bare homepages like later.com and hootsuite.com. My actual sample of real citations was 23 URLs.
The unit that gets cited is a passage, not a page
On the retrieval path, a rough version of what happens: the engine's index has your page broken into chunks of a few hundred words each, embedded as vectors. Your question gets embedded too. The chunks nearest to the question get pulled, reranked, and handed to the model as context. The model writes an answer and attributes the parts it used.
Your page never competes as a page. Individual passages compete. This single fact explains most of the observed behaviour that otherwise looks random:
A 4,000-word guide covering twelve distinct sub-questions has twelve ways to be retrieved. The same guide padded to 4,000 words by restating one idea has one, and a diluted one at that. Length correlates with citations in most people's observations, and the mechanism is coverage of distinct questions, not word count. The Princeton GEO study (Aggarwal et al., KDD 2024) tested nine content edits against citation rate and found that adding statistics, direct quotations, and cited sources moved the numbers meaningfully, while adding words for fluency did roughly nothing.
It also explains why the answer to a very specific long-tail question is often some small site nobody's heard of. Nothing on the big authoritative pages addressed that exact question, and the small site did.
What our logs actually showed
Twenty-three URLs is a small sample and I'm not claiming it generalises. It's also the only sample I have where I'm confident every row is a real citation from a grounded engine, collected across six buying questions between 17 June and 9 July 2026.
| Type | Count |
|---|---|
| Article (blog post, feature page, guide) | 15 |
| Listicle ("best X", "tools for Y") | 7 |
| Community thread | 1 |
| Review site (G2, Capterra, Wikipedia) | 0 |
| Comparison page ("X vs Y") | 0 |
Fourteen of the 23 sat on the domain of a company selling a tool in the category being asked about. The engine was, more than half the time, quoting vendors describing themselves.
That was the opposite of what I expected. The standard advice, which I had repeated in an earlier version of this very post, says your own site is the least trusted source about you and third-party corroboration is the currency. In this sample the engine cited vendor pages constantly and cited zero review sites. For one question, three of the four citations were pages on catchintent.com — a small tool that had bothered to write about buyer intent signals on Reddit and got quoted three times for it.
I still think corroboration matters for the training-recall path, where consistent description across many independent sources is plausibly what makes an association stick. I no longer think it's the main lever on the retrieval path, where the engine seems to reach for whichever page most directly answers the question regardless of who owns it. Those are different mechanisms and I had been describing them as one.
The full breakdown of that sample, including every URL, is in the teardown post.
Google rank and AI citation are only loosely coupled
This one surprised a customer more than anything else in their audit, and it's the finding I'd most want a marketing team to internalise.
We ran a scan for a consultancy, pulled every page the engines cited across their question set, and then checked each of those pages against Google's top 100 for the query that had surfaced it. Of 96 cited pages, 58 ranked nowhere in the top 100. Not low. Absent.
Some of that is the engines using different query formulations than the one we checked against. Some of it is that retrieval reranking optimises for answering, and Google's ranking optimises for a partly different set of things including commercial intent and site-level authority. Whatever the mix, the practical implication holds: a page can be an AI citation workhorse while contributing nothing to your organic traffic, and your best-ranking page can be invisible to every engine.
If you're reporting on this internally, the corollary is that Google Search Console cannot tell you how you're doing in AI answers. Different questions, different answers, and mostly different pages. It will also lie to you about the pages it does cover, if competitor bots are firing operator queries at your site.
Where the engines differ
Treating "AI search" as one channel will cost you. A few differences worth knowing:
Perplexity grounds everything and cites aggressively, usually five to ten sources per answer. It's the easiest engine to influence and the easiest to measure, which is why most GEO tools lean on it. It's also the smallest by usage, so don't mistake it for the whole picture.
ChatGPT decides per query whether to search. The same question can return a memorised answer on Monday and a grounded one on Tuesday depending on phrasing and how current the question sounds. If you're tracking it, log whether each answer was grounded, because averaging the two together produces a number that means nothing.
Google's AI Overviews sit on Google's index, so classic SEO has more carry-over here than anywhere else, though the rank disconnect above still shows up. Being in the top 10 helps and doesn't guarantee anything.
Claude and the rest mostly follow the same grounded/ungrounded split. The mechanics generalise even where the specific results don't.
What this means you should actually do
Ordered roughly by return on effort, based on what I've seen rather than what sounds good:
Find the real questions first. Not keywords. The full sentences buyers type into an assistant, which are longer and more specific than search queries and often phrased as a situation rather than a noun. "Best CRM" is a keyword. "What CRM should a 4-person agency use if we already live in Notion" is what someone actually types, and it's the second one that has an unclaimed answer.
Write the page that answers one question completely. In our sample, that was what got cited, repeatedly, on domains with no authority to speak of. Put the answer in the first forty words under a question-shaped heading so the retrieved passage is self-contained. A passage that only makes sense after reading three sections above it is a passage the model can't use.
Put verifiable specifics in. Numbers, dates, named tools, prices with a "checked on" date, direct quotes. This is the one intervention the research supports directly, and it's also the thing that makes a passage worth quoting rather than paraphrasing.
Cover the sub-questions on the same page. More distinct answerable sections is more retrieval surface. This is the honest version of "make it longer".
Then go earn mentions elsewhere. Community threads, roundups, comparison articles. I've moved this down the list from where I used to have it because the data didn't support it being first, but it's still how you build the broad association that survives into the next model's training, and it's how you show up for questions where your own site would look self-serving.
Measure with the grounding flag on. Run your question set on a schedule, record who was named, which URLs were cited, and whether the engine was grounded. Without that last field you'll draw conclusions from recall and think they're citations. I did exactly that for six weeks.
CueScout does the measurement side of this: it runs your buyers' questions against the engines, captures the real citations rather than regexed URLs, and shows which domains and pages the answers in your category keep drawing from. If you just want a baseline before committing to anything, the visibility checker will run a question set for you, and the methodology page documents what the method can and can't see, including the grounding limitation that made me rewrite this post.
What I'd revise next
The 23-URL sample is too small to carry the weight I've put on it, and it comes from one engine in one category I happen to sell into, which is about as biased as a sample gets. I want to redo it at 50 questions across categories I have no stake in. When I do, I'll publish the counts whether or not they agree with anything above. (I did redo it at 50 questions: 533 URLs, three engines. Still my own category.)
If you want the levers rather than the mechanism, how to get your brand into AI recommendations is the shorter, more practical version of this post.
The claim I'd most like to test properly is the length one, since it's the question I get asked most. The mechanism argument for passage coverage is solid. The empirical version — do longer pages get cited more per page, holding topic coverage constant — I haven't measured, and until someone does, treat "write longer" as a hypothesis with a plausible mechanism rather than a finding.
Frequently asked questions
How does ChatGPT decide which products to recommend?
It depends on whether the answer was grounded. Without browsing, the names come from training data, and the model is reproducing which brands were most frequently and most consistently associated with the category in text it saw before its cutoff. With browsing or search enabled, it runs a query, retrieves a handful of pages, and synthesizes from those. The two paths favour different brands, which is why the same question can produce different names on different days.
Can you pay to be recommended by an AI engine?
Not the organic recommendation itself. Some engines run separately labelled ad units, but the named brands inside a synthesized answer aren't a purchasable slot. You influence them by being well covered across the sources the engine retrieves or trained on.
Why does an AI keep recommending a competitor and not me?
Most often because there is a page somewhere that answers that specific question and mentions them, and no equivalent page mentions you. In our sample the cited pages were frequently small vendors' own blog posts rather than big review sites, so the gap is usually a missing page rather than missing domain authority.
How long does it take to influence AI recommendations?
Grounded answers can change within days of a page being published and indexed, because retrieval happens at query time. Ungrounded recall changes only when a model is retrained, which is a horizon of many months and entirely outside your control. Aim at the grounded path.
Does page length affect whether AI engines cite you?
Not directly. No retrieval system scores word count. Longer pages tend to get cited more because they contain more distinct passages that can match more queries, so they have more ways in. Padding an existing page with filler does the opposite, since it dilutes the passage that was answering the question.
Related cluster
Keep reading
Generative Engine Optimization guide
The pillar guide for getting cited by ChatGPT, Perplexity, and AI search engines.
GuideWhat Perplexity actually cites for buying questions
A teardown of 23 cited URLs across six buyer questions. Most belonged to a vendor.
ToolChatGPT & AI Visibility Checker
Check whether ChatGPT-style AI engines mention your brand for buyer questions in your category.
Use caseBrand monitoring use case
Monitor the comparisons and roundups that become AI citations.
Use caseDemand intelligence use case
Turn buyer questions into the prompts, content, and source pages GEO depends on.
Find the questions worth writing about
CueScout scans Reddit, Hacker News, and Quora for the buyer questions AI answers are built from, explains why each one matched, and turns the ones that keep repeating into pages to publish on your own site. Nothing gets posted anywhere else.
Start your first scan