It's mechanics, not malice

Why does ChatGPT recommend your competitor instead of you?

You ask ChatGPT the question a buyer would ask, and it names them, not you. It feels personal. It isn't. It's a retrieval problem you can mostly fix, and a memory problem you can only move slowly.

28 Labs · August 2026

The answer is almost never "ChatGPT is biased against us." It's that when the engine searched for pages to build its answer, your competitor's pages showed up and answered the question - and yours either didn't exist, weren't readable, or answered something else. Fix what's fixable at the retrieval layer first: whether you're being read, then whether you're being named, then whether you're being picked.

What actually happens between the question and the answer

ChatGPT doesn't search for your competitor's brand name. It fans a buyer's question into several internal searches - comparisons, use cases, pricing angles, "best for" variants - the mechanic we cover in what is query fan-out. It reads whatever pages win those searches, then writes the answer from what it found.

If every page that wins those internal searches belongs to your competitor - their comparison page, their listing on a review site, a roundup that names them and not you - the answer names them. Not because the model prefers them. Because their pages showed up in the search and yours didn't.

1
Buyer asks a question
2
Engine fans it into internal searches
3
Engine reads the pages that win
4
Answer names whoever's in those pages
Your competitor didn't out-argue you. Their pages were in the pool the engine actually read.

Why comparison pages and review sites carry so much weight

Engines lean on sources they already trust to be current and structured: comparison pages, review platforms, forums, and category listicles. These pages already do the work an engine needs - they name several brands, describe what each is for, and often rank or compare them directly. A page like that is easy for a model to extract from and easy to cite.

If the sources an engine reads for your category all mention your competitor and not you, the answer follows the sources. Your absence from that seen pool - not a hidden penalty, not a blocklist - is the single most fixable cause of losing the recommendation.

Why specific pages beat homepage claims

A page titled "best project management tool for a 10-person agency under $50/seat" answers a specific buyer question directly. A homepage that says "we're the leading project management platform" answers nothing in particular. When an engine is matching retrieved content to a specific question, the specific page wins the match almost every time - the general claim has nowhere to attach.

This is also why a generic "About us" page rarely gets cited even when it's well written. It doesn't correspond to any question a buyer actually asked.

The part that moves slowly: training memory

Separate from live retrieval, models carry a prior from training data about who the recognized players in a category are - which brands got mentioned, compared, and reviewed across the web for years before this question was ever asked. That prior shapes tone and default assumptions even when the model is also reading live sources.

It moves slowly, and only in one direction: by more of the public web talking about you, consistently, over time. You can't patch it with one new page. You can only earn it, the same way your competitor did.

Why conflicting facts make you a riskier pick

If your locations, pricing, or claims say different things depending on which page an engine reads - your site, your Google listing, an old directory entry - that inconsistency reads as risk. An engine building a confident recommendation has less reason to name a brand whose own facts don't agree with each other. Consistency across the sources an engine can find is a small, fixable thing that removes a real reason to skip you.

What's fixable now versus what takes months

Weeks - retrieval layer

  • Publish the specific-question pages you're missing
  • Get named on the comparison and review sources engines already trust
  • Fix conflicting facts across your own site and listings
  • Make pages readable and structured, not just present

Months - training memory

  • Moves only as the broader web says more about you
  • No single page or press release patches it
  • Compounds from consistent mentions over time
  • Not directly editable - only indirectly influenced
Diagnose in this orderBefore you touch content, answer three questions in sequence. Are you being read - do your pages turn up in the sources engines pull from for this category? Are you being named - does your brand appear anywhere in the answer, even second? Are you being picked - are you the actual recommendation? Working on stage three before you've fixed stage one wastes the effort.

Why one chat session won't tell you the truth

Asking ChatGPT your own question once and reading the answer is an anecdote, not a measurement. Answers vary by phrasing, by session, by which sources happened to rank that hour. The only way to know whether you're being read, named, and picked - and whether that's changing - is to ask a frozen set of real buyer questions repeatedly, across engines, and count what actually comes back. That's the discipline behind AEO, covered in how to navigate AEO.

What we do about it

We run a fixed set of real buyer questions against ChatGPT, Claude, Gemini, and Perplexity, on a schedule, and report exactly which brand got named, where you ranked in the answer, and which sources the engine leaned on to get there. That turns "ChatGPT likes our competitor" from a feeling into a re-derivable count - and points at the specific pages and sources worth fixing first.

28 Labs measures how AI engines answer real buyer questions - and what moves the counts. Every number we publish re-derives to specific questions and engines. try28labs.com