Visibility Score
All posts
By 99 Visibility ScoreAI visibilityAI engines

Why your visibility score differs by engine

ChatGPT, Perplexity, Gemini and Google AI Overviews can give the same brand very different scores on the same prompts. The usual causes, how to check each one, and what to do about a weak engine.

The same prompt set, checked over the same month, can produce very different scores per engine. As an illustration, a brand might score 36% in Perplexity, 22% in ChatGPT and 8% in Gemini on an identical list of 50 questions.

The first reaction is usually that something is broken. It isn't. Each engine decides what to say in its own way, from its own sources, and a brand's position in one tells you surprisingly little about its position in another. That is exactly why we score each engine separately before blending anything.

Below are the causes we check, roughly in the order we check them.

They fetch the web with different crawlers

When an engine searches the web to answer a question, it relies on its own crawler or its own index. Each company documents its crawlers separately, and a rule that affects one has no effect on the others.

OpenAI's crawler documentation lists OAI-SearchBot for surfacing sites in ChatGPT's search features, separately from GPTBot, which collects content that may be used for training. Perplexity's crawler page describes PerplexityBot as the crawler that surfaces and links websites in Perplexity search results, and asks sites to allow it in robots.txt and to permit its published IP ranges. For Google's AI Overviews and AI Mode, Google says a page must be indexed and eligible to show a snippet to appear as a supporting link, so the control there is ordinary Googlebot access.

So a site can be wide open to Google, blocked for OpenAI's search crawler by an old robots.txt rule, and challenged by a firewall for Perplexity's. Three engines, three different access situations, and three very different scores.

How to check. Read robots.txt for each crawler by name and for wildcard rules that catch them. Then look at server or CDN logs per bot: which pages each one requests and what status code it gets back.

Not every answer involves a live search. An engine may answer some prompts from what its model learned in training and search the web for others. Whether it searches can depend on the engine, the wording of the prompt and the product surface.

This matters because the two routes favour different brands. An answer from training reflects what was written about your category before the model's cutoff. A newer brand, or one that rebranded recently, tends to be weaker there. An answer from live search reflects what the engine can find and fetch today, which is where recent pages and citations count.

How to check. Look at whether the stored answers show sources. Answers with no sources on prompts where you are absent point to the memory route. The fix there is slower: being written about widely and consistently over time.

They trust different sources

Even when two engines both search, they do not cite the same pages. One might lean on review sites and roundups for a category question, another on community threads or video. We avoid generalising about which engine prefers what, because it varies by category and changes over time. What matters is what your own data shows.

How to check. For each engine, list the domains cited on the prompts where you are missing. Often the gap between your best and worst engine maps onto a handful of domains that the weak engine cites and you are absent from.

They format answers differently

Some engines give short answers that name two or three brands. Others give long lists. A long-list engine will name more brands per answer, so most brands score higher there, yours included. A high score on a long-list engine is less impressive than the same score on a short-list one.

Google adds a twist. It does not show an AI Overview for every search. Your method needs a rule for that case: either the prompt is excluded for that check, or it counts as not named. Both are defensible. Mixing them between reports is not.

Market and persona settings

Answers can differ by country, and sometimes by city. If one engine is tracked in a different market setting from another, or a persona is applied to one but not the other, you are not comparing like with like.

How to check. Confirm that every engine runs with the same market and persona settings before comparing them.

They understand your brand differently

An engine that confuses you with a similarly named company, or still describes a product you discontinued, will leave you out of answers where you belong. That confusion is often engine-specific.

How to check. Run your brand prompts on every engine and compare the descriptions. A wrong category or an outdated product in one engine's answers is a strong clue for that engine's low score.

What to do about a weak engine

First, decide whether it matters. Your own referral data is the best guide. If an engine sends you almost no visitors and your buyers do not use it, a low score there may not be the priority, and your blended score should be weighted accordingly. Write the weighting down and keep it fixed.

If it does matter, work that engine's chain specifically. Confirm its crawler can reach your pages. Check whether its answers come from search or memory. List the sources it cites on your missing prompts and go after the ones you can realistically appear on. Then measure that engine on its own for two reporting periods before deciding whether the work helped.

What not to do is average the problem away. A respectable blended score with a single-digit engine underneath is a report that hides the most useful finding in it.

How we compare engines in Promptwatch

We run every per-engine score on Promptwatch, which monitors the real interfaces of ChatGPT, Gemini, Claude, Perplexity, Grok, Llama, DeepSeek, Mistral, Copilot, Google AI Overviews and AI Mode, so the answers we compare are what each product actually returns. Every paid plan runs all of these models. Prompt tracking applies the same personas and country settings across engines, which removes the like-for-like problem.

Citation analytics shows which pages and domains each engine cites, including Reddit and YouTube citations, which is how we find the sources behind a gap. Agent Analytics reads AI crawler logs for each bot, including OpenAI's, Anthropic's, Perplexity's and Google's, and flags crawl errors, which covers the access check per engine. On brand plans, crawler logs are listed from Professional upward. Visitor analytics shows which engines actually send you visitors and conversions, and that is what we use to set the weights in the blend.