Why does ChatGPT recommend my competitor and not me?
Short answer
Nobody outside the company can tell you the exact reason. The usual explanation you can check is that the assistant found clearer or more plentiful information about your competitor on the pages it drew from. Open the sources cited in the answer. Your competitor is probably on them, and you're probably missing or described less clearly.
Nobody outside the company can tell you exactly why ChatGPT named your competitor, but the usual cause can be checked: it found more, or clearer, information about them than about you. I can’t see inside the product and I don’t trust anyone who says they can. Looking at what the answer was built from is normally enough to explain the gap.
Start with the sources
The fastest way to an explanation is to open the links in the answer. When an assistant searches the web to answer a question, it usually shows the pages it used. Run the prompt a few times, collect those links, and read each page with one question in mind: is my company on it?
Take a hypothetical roofer in El Cajon who is never named for “roof repair in El Cajon” while one competitor always is. If the cited pages are a directory category page, a local list of roofers and the competitor’s own roof repair page, and the roofer appears on none of them, there’s no mystery left. The assistant summarized what it read, and the roofer wasn’t in the reading.
What the comparison usually turns up
In practice the gap is one or more of these:
| What you find | What it means |
|---|---|
| Your competitor is listed on a cited page and you aren’t | You were never a candidate for that answer |
| Their site has a page for the exact service and city, and yours mentions it in passing | Their claim is easy to confirm and yours has to be inferred |
| Their reviews are spread across several sites and describe the job | There’s more for an assistant to repeat about them |
| Your name, number or service area differs between listings | It’s harder to be sure the listings describe one business |
| Your pages are blocked, or show little without scripts | Your own site may not have been readable |
The fourth row is the easiest to overlook. A company that changed its name or phone number years ago can still be described the old way on listings it has forgotten about.
When there are no sources to check
If the answer shows no links, it was probably written from training, and the explanation is different. Training is the text the model learned from before release. A competitor that has traded for longer under one name will appear in that text more often, and so will one that has been written about more or reviewed more widely. You can’t edit it. It shifts only as more is published about you and newer versions are trained, on a schedule nobody outside the company controls.
Explanations I’d rule out first
The assumption that the competitor paid for it’s usually wrong. As far as I know, a place inside the answer itself can’t be bought. So, usually, is the assumption that the assistant has a settled preference. Ask the same question ten times and the names often shift, so “it always picks them” needs testing before you believe it.
It’s also worth checking whether the competitor is simply the better fit for that question. If they are based in the city named in the prompt and you’re based twenty miles away, a sensible answer puts them first.
What to do about it
Close one gap, then run the same prompts again. If the gap is a missing listing, get listed accurately. If it’s a vague service page, rewrite it to say what you do and where. Closing a gap makes you a candidate. It doesn’t make you the answer, and nobody can guarantee that it will.
I re-test about two weeks after a change, and keep the change only if the answers moved. Finding the gaps is part of Generative Engine Optimization, and the same side-by-side method applied to ordinary rankings is competitor analysis.