Why your competitor shows up in ChatGPT and you don't

Your competitor gets named in ChatGPT and you don't. Here's the real reason, ranked by likelihood, plus a diagnostic checklist you can run this afternoon.

Elminson De Oleo Baez · Founder, Spottlo · · 9 min read

The short answer

In almost every case we've looked at, the answer isn't that your competitor's website is better. It's that other websites talk about them and don't talk about you. Language models recommend brands they've seen corroborated across independent sources: review sites, listicles, forum threads, news coverage. If your only pitch lives on your own domain, the model has one unverified source and won't stake an answer on it. Fix the corroboration gap first, then the crawler and structure issues underneath it.

Contents

Someone on your team typed "best [your category] tool" into ChatGPT, got a list of five vendors, and you weren't on it. Your competitor was. Their product is not better than yours, their site is not faster than yours, and their content team is smaller than yours.

Here's what actually happened: other websites talk about them, and those websites don't talk about you.

That's the top-line diagnosis in most cases we investigate, and everything else in this post is a subordinate cause. But the specific failure matters, because the fix for "blocked crawler" is a two-line change to a text file and the fix for "no third-party corroboration" is a quarter of real work. Let's rank the causes by how often we actually see them.

What does ChatGPT need before it will name a brand?

Corroboration. A model will not confidently recommend a vendor it has only seen described by that vendor. This is the single organizing idea behind everything below.

When ChatGPT answers "what's the best CRM for a 10-person agency," it's doing some blend of two things: pulling on associations baked into its weights during training (which brand names co-occur with which category words, across billions of documents), and retrieving live pages to ground the answer. Both paths favor brands that appear in independent sources. A vendor mentioned in a G2 category page, three roundup posts, a Reddit thread, and a trade publication has four independent signals pointing the same way. A vendor mentioned only on its own homepage has one, and the model has learned that homepages claim everything.

This is why the "we rewrote our homepage for AI" projects mostly fail. You rewrote the source the model trusts least.

The six causes, in order of how often we see them

# Cause How to confirm it in 10 minutes Typical fix time
1 No third-party corroboration Google "your brand" -site:yourdomain.com — under ~20 substantive results means you're invisible to retrieval 1-2 quarters
2 AI crawlers blocked curl https://yoursite.com/robots.txt and look for GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended 20 minutes
3 Unstructured content Read your own pricing page. Is the price in a sentence, or buried in an image/JS-rendered table? 2-4 weeks
4 Weak entity definition Search your brand name. Does Google show a knowledge panel? Do you have a Wikidata item, a Crunchbase profile, consistent one-line descriptions? 4-6 weeks
5 Absent from the pages the model actually reads Ask ChatGPT your category question and ask it for sources. Are you on those pages? 1 quarter
6 Brand name ambiguity Ask "what is [brand]?" cold. Does the model describe a different company, or a dictionary word? Ongoing

Work top to bottom. Most teams skip 1 and 2 and go straight to rewriting content, which is why they see nothing change.

Cause 1: nobody else vouches for you

You need independent sources that state, in plain text, what you do and who you're for. That's the whole requirement.

Run this search: "YourBrand" -site:yourbrand.com. Now read what comes back. If it's a press release you paid to distribute, two job boards, and your LinkedIn page, you have a corroboration problem, not a content problem. Compare against the competitor who's winning. We routinely find the winner has 40-60 substantive third-party pages and the loser has four.

The sources that carry the most weight, roughly in order:

  • Category review sites. G2, Capterra, TrustRadius for software. These are structured, updated, and heavily retrieved. A G2 profile with 30 real reviews is worth more than 30 of your own blog posts.
  • Listicles that already rank. Not any listicle. The specific ones on page one for the query you care about. Find them, read them, figure out whether you're actually eligible.
  • Forums and communities. Reddit especially, for reasons we get into in why Reddit keeps showing up in AI answers.
  • Trade press and analyst mentions. Slow, but durable.
  • Comparison pages on other people's sites, including your competitors' "alternatives" pages. Being the alternative is still being named.

The uncomfortable part: this is PR and community work, not SEO work, and it's slow. There's no shortcut, and the shortcuts people try (mass-generated guest posts, paid placement in roundups nobody reads) don't produce retrievable corroboration because those pages don't rank and don't get cited.

Cause 2: you're blocking the crawlers

Check robots.txt right now. This takes 30 seconds and it's the highest-leverage thing in this post.

curl -s https://yoursite.com/robots.txt | grep -iE "gptbot|oai-searchbot|chatgpt-user|perplexitybot|claudebot|google-extended|bingbot"

The bots that matter, and what each one does:

User-agent Owner What it does Blocking it means
GPTBot OpenAI Collects training data You won't be in the next model's weights
OAI-SearchBot OpenAI Indexes for ChatGPT search You can't be retrieved in live answers
ChatGPT-User OpenAI Fetches a page a user asked about Direct user requests fail
PerplexityBot Perplexity Indexes for Perplexity answers No Perplexity citations
ClaudeBot Anthropic Training + retrieval No Claude visibility
Google-Extended Google Gemini training / grounding opt-out Reduced Gemini visibility

A lot of sites added blanket AI blocks in 2023 when the discourse was about content theft, and nobody has looked at the file since. Marketing usually doesn't know it happened. Also check for WAF and bot-management rules: Cloudflare's "Block AI Scrapers" toggle does this silently at the edge, and it won't show up in robots.txt at all. If you're on Cloudflare, check the AI Crawl Control settings, not just the text file.

One more: if your key content is behind a JS-rendered client-side route with no server-side HTML, treat it as partially blocked. Some AI fetchers do not execute JavaScript.

Cause 3: your content isn't shaped like an answer

Models lift passages. If the fact a model needs is spread across four paragraphs, an image, and a hover state, it can't lift it, so it lifts the competitor's page where the same fact sits in one clean sentence.

The specific things that make a passage liftable:

  • A direct answer in the first sentence under a heading, not in the third paragraph after a windup.
  • Prices, limits, and specs in text. Not in a screenshot. Not in an SVG. Not injected by a pricing widget after hydration.
  • Tables for anything comparative. Tables get cited at a rate that will surprise you.
  • Headings phrased as the question a person would ask, so the heading itself matches the query.
  • Explicit entity statements: "Spottlo is an AI visibility tracker for B2B SaaS teams." Not "we help ambitious teams win the future of search."

Test this yourself. Take a page you care about, paste the raw HTML text into any model, and ask: "According to this page, what does the product cost and who is it for?" If the model can't answer cleanly, no retrieval system will either. There's more depth on this in content structure for AI citation.

Cause 4: the model doesn't know what you are

An entity is a thing the model has a stable internal representation of. Right now, your competitor is probably an entity and you're probably a string.

The tell: ask ChatGPT "What is [your brand]?" with no other context, in a fresh session. If it hedges ("I don't have specific information about..."), invents something, or describes a different company, you don't have an entity. If it correctly says what you do, who you serve, and roughly when you were founded, you do.

Getting there means giving the web a consistent, corroborated description of the same thing in multiple places: a Crunchbase profile, a Wikidata item where you qualify, an About page with Organization schema and a sameAs array pointing at every profile you control, an identical one-line description on LinkedIn, G2, GitHub, and your own site. Same words. Every time. The full mechanics are in entity SEO for AI search.

Cause 5: you're absent from the pages the answer is built from

Ask the engine to show its work. In ChatGPT with search on, ask your category question and then ask "which sources did you use?" Perplexity shows citations by default. Google AI Overviews link out.

Now go read those pages. Nine times out of ten, they are: two roundup posts from mid-tier SEO publishers, a G2 or Capterra category page, a Reddit thread, and one vendor's comparison page. That's the retrieval corpus for your category. It's small, it's knowable, and it's specific. Being absent from those five pages is the whole problem, and being present on them is most of the solution.

This is also why "just publish more blog posts" doesn't work. Your blog is not in that set and it's not going to be.

Cause 6: your brand name is fighting you

If your brand is a common noun, a person's name, or shares a name with a bigger company in an adjacent space, the model has to disambiguate, and disambiguation defaults to the more famous entity.

You can't rename the company over this (probably). What you can do is make the co-occurrence unambiguous: never write the brand name alone in a context that matters. Write "Meridian, the invoice reconciliation platform." Get third parties to do the same. Over enough documents, the category word becomes part of the model's representation of the name, and the ambiguity resolves.

How to actually run the diagnosis

Do it in this order, because each step invalidates the next if it fails.

  1. robots.txt + WAF check. If the crawlers are blocked, nothing else you do can work. Fix, then wait 2-4 weeks for re-crawl before measuring anything.
  2. The cold entity test. Ask three engines "What is [brand]?" If they can't say, entity work is your Q1.
  3. The corroboration count. "brand" -site:brand.com for you and for the competitor who's beating you. The gap is your workload.
  4. The source audit. Pull the actual cited sources for your five most important buyer questions. List the pages. That's your target list.
  5. Baseline the whole thing. You cannot manage this without a measurement that runs on a schedule, because model answers are non-deterministic and a single spot check tells you nothing. Run the same prompt set weekly and watch the trend. That's what Spottlo does: your buyer questions, run against ChatGPT, Perplexity, Gemini and Google AI Overviews on a weekly cadence, with rank and share of voice against the competitors that keep showing up instead of you. Free report, no signup, if you just want the diagnosis.

What to do next

  • Run the robots.txt grep above. Today. It's the only fix in this post that can take twenty minutes and change your outcomes.
  • Do the "brand" -site:brand.com count for yourself and your top competitor. Write both numbers down. That gap is the honest scope of the work.
  • Pull the actual sources ChatGPT cites for your top five buyer questions and turn them into a target list of specific pages you need to be on.
  • Fix one entity signal this week: a sameAs array on your About page, or a Crunchbase profile with the same one-liner you use everywhere else.
  • Set a weekly baseline before you change anything, so you can tell whether any of it worked. See how it works or compare the tracking tools if you'd rather build it in-house.

Frequently asked questions

Does ChatGPT read my website at all? +

Sometimes. When ChatGPT browses live it can fetch your pages through OAI-SearchBot, and it trains on public web data collected by GPTBot. But most brand recommendations come from the model's learned associations plus retrieved third-party pages, not from a fresh read of your homepage. Your site matters mainly as the source a third party quotes.

How long does it take to start showing up in ChatGPT after making changes? +

Retrieval-driven changes, like getting added to a listicle that ranks well, can show up in answers within days to a few weeks. Changes that depend on the model's internal weights only land with a new training cut, which can be many months. Prioritize the retrieval path if you want results this quarter.

Is it worth paying to be included in a 'best tools' listicle? +

Usually not directly, and paid inclusion in a low-quality roundup rarely moves anything. What works is being genuinely eligible for the roundups that already rank on page one for your category query, then reaching out with a factual, accurate product summary the writer can verify.

Can blocking GPTBot hurt my AI visibility? +

Yes. GPTBot collects training data and OAI-SearchBot fetches pages for live answers. Blocking either in robots.txt removes you from that pathway. Plenty of sites blocked these crawlers in 2023 to protect content and never revisited the decision.

My brand name is a common word. Does that hurt me? +

It does. A model that can't disambiguate your brand from the ordinary noun will hedge or pick the more famous entity. Consistent co-occurrence of your brand name with your category and a structured entity footprint (Wikidata, Crunchbase, sameAs links) is the fix.

chatgpt geo competitive analysis ai visibility diagnostics

Keep reading

Strategy · 8 min read

AI visibility for B2B SaaS

Half of B2B software buyers now start in an AI chatbot, and a third buy from vendors they'd never heard of. Here's how to build a GEO program that gets you named.

Find out what AI says about you — free

Enter your domain. We'll run it through ChatGPT, Perplexity, Gemini and Google AI Overviews and show you exactly where you land. No signup, no card.