Why does ChatGPT recommend my competitor and not me?

You do good work, your reviews are strong, and you rank on Google. Then a customer mentions that ChatGPT sent them to the company across town. Here are three common reasons that happens, shown on an invented example of two roofing contractors in Tulsa.

First, what is not happening

Your competitor almost certainly did not pay for their place in the answer. Since February 2026 ChatGPT has shown clearly labelled sponsored ads on some answers for free-tier users in the US, but OpenAI says ads do not change the answer itself, and an ad is marked as one. The businesses named in the answer text are not paid placements. Your competitor is probably not doing anything clever either. In most cases, the business that gets recommended is simply the one the assistant could verify with the least doubt.

It is also not about Google rank. In retail, only about 45% of the brands most visible in traditional local search were also among those AI platforms recommended most (SOCi Local Visibility Index, 2026). Ranking well on the map does not guarantee a place in the AI answer. The two systems are looking for different things.

Assistants like ChatGPT, Claude, Gemini and Google AI Overviews build an answer by reading what is available about businesses in a city and choosing the ones they can describe accurately. When two roofers look equally good to a customer, the assistant picks the one that looks more certain to a machine. That certainty comes from three sources.

A worked example: two roofers in Tulsa

Take two made-up companies, typical of what we see. Call them Red Dirt Roofing and Green Country Roofing. Both have been in Tulsa for over a decade. Both have around 200 Google reviews averaging 4.8 stars. Both do residential replacement, storm damage, and insurance claims. On the Google map pack, Red Dirt is usually first.

A homeowner in Tulsa opens ChatGPT and types: "My roof got hail damage. Who in Tulsa handles insurance claims for roof replacement?" The answer names Green Country and two others. Red Dirt is not mentioned.

Here is what is different when you look at the two companies the way an assistant does.

Reason one: machine-readable facts

Green Country's website has LocalBusiness schema markup. In plain terms, that is a small block of code that states the business name, category (RoofingContractor), street address, phone, hours, and service area in a format software reads directly. Their Google Business Profile is complete: primary category set to Roofing Contractor, services listed one by one, hours filled in, and a description that says what they do and where.

Red Dirt's site is attractive. The address and phone are in the header graphic. There is no schema. The Google profile is claimed, but the category is "Contractor," the services section is empty, and the description is one line.

To a customer, both sites are fine. To an assistant, Green Country has stated its facts and Red Dirt has left them to be inferred. Inference is where businesses get dropped.

What to check on your own business: view your homepage source and search for "LocalBusiness" or your business category. Open your Google Business Profile and read every field as if you were a stranger. Is anything blank, vague, or in the wrong category?

Reason two: corroboration

An assistant does not trust a single source. It looks for the same facts repeated across independent places: your website, your Google profile, Yelp, Apple Maps, Bing, Facebook, the Better Business Bureau, industry directories, local news, supplier pages. Every source that agrees makes the business more certain. Every source that disagrees makes it less certain.

Green Country is listed as "Green Country Roofing, 4412 S Peoria Ave, Tulsa, OK 74105, (918) 555-0142" everywhere. Same name, same address format, same phone. A dozen sources agree.

Red Dirt is "Red Dirt Roofing LLC" on its site, "Red Dirt Roofing & Construction" on Google, and "Red Dirt Roofing" on Yelp. The Yelp listing has the phone number from before they switched carriers. Their Facebook page shows the address from two moves ago. To a person, this is clearly one company. To a system matching records, it is a cluster of partial matches, and partial matches get less weight.

This is the reason most owners underestimate, because the differences look trivial. They are not trivial to software. Consistency is corroboration, and corroboration is what turns "a roofer might exist here" into "this roofer exists here, does this work, and can be reached at this number."

What to check on your own business: write your name, address and phone exactly as you want them. Then search for your business on Google, Yelp, Apple Maps, Bing and Facebook, and compare each listing character by character.

Reason three: answer-shaped pages

The homeowner asked a specific question: who in Tulsa handles insurance claims for roof replacement after hail. The assistant is looking for a page that answers that question.

Green Country has a page titled "Hail Damage Roof Replacement and Insurance Claims in Tulsa." The first paragraph says, in plain words, that they inspect storm damage in Tulsa and nearby towns, document it for the insurer, meet the adjuster on site, and replace the roof once the claim is approved. It names Tulsa, Broken Arrow, Owasso and Bixby. It is not long. It just answers the question.

Red Dirt's site has a Services page with a bulleted list: "Roof Replacement. Storm Damage. Insurance Claims. Gutters." Nowhere does it say Tulsa in a heading, and nowhere does it explain what happens when a homeowner calls with hail damage. The information is technically present, but it is not shaped like an answer.

Assistants match questions to answers. A list of nouns is not an answer. A short page that reads the way you would explain it on the phone, with the city in it, is.

What to check on your own business: take the three questions customers most often ask you, and look for a page on your site that answers each one directly, with your city named. If the answer is spread across a services list and a contact page, there is no answer-shaped page yet.

In this example the two companies are matched on reviews, years in business and quality of work, so the difference left is how easy each one is to verify. In real life reviews matter too; verifiable facts are the part you control fastest.

Why this is fixable

Being hard to verify is a solvable problem, and it is solved with unglamorous work: adding schema, cleaning up the Google profile, correcting listings until they match, and writing a few short pages that answer real questions.

Two honest caveats. First, no one can promise a specific AI answer. The engines change, and they weigh sources differently. What you can do is remove every reason for the assistant to be uncertain about you. Second, this takes a few weeks to show up, because the engines have to re-read your sources. Check before you start, fix, and check again a month later.

If you want to see where you stand on all three reasons, the free scan on our homepage researches one buying question about your business and shows you the answer. The AI visibility checklist walks through the fixes point by point. If you would rather not do it yourself, our Done-For-You Fix covers schema, the Google profile rebuild, three answer pages, and listing corrections, followed by a 30-day re-scan. Not sure whether you are mentioned at all? Start with how to check if AI recommends your business.

See what AI says about your business

Find out in 60 seconds whether an AI model with live web search names you, your competitor, or neither, for one customer question.

Run the free 60-second scan