You track ChatGPT visibility by measuring two different things: what the model says about your category from its own training (model knowledge) and which pages it cites when it searches the web (retrieval). You build a fixed prompt set, run it in temporary chats with memory off and through the API with web search enabled, record for every run whether you are mentioned, cited and by which page, note who is cited instead, and repeat weekly. There is no official report from OpenAI on brand visibility; sampling is the only method, and separating the two layers is what makes the numbers usable.
Why ChatGPT is harder to measure than Perplexity
Perplexity searches the web for almost every question and shows numbered sources, which makes it comparatively easy to measure (we wrote a separate guide on tracking Perplexity visibility). ChatGPT behaves differently in three ways.
First, it does not always search. For many prompts it answers from what it learned during training, and that knowledge has a cutoff. For prompts that look recent, local or specific it runs a web search and shows citations as links. The same question can go either way on two different days.
Second, it personalises. Memory, custom instructions and your earlier conversations shape the answer. Measuring from your own everyday account gives you numbers that nobody else would get.
Third, answers vary more between runs, because the model is free-form and the search results behind it shift.
None of that makes measurement impossible. It means you need a protocol that controls for those three things.
The two layers of ChatGPT visibility
| Layer | Where it comes from | How to measure it | How to influence it |
|---|---|---|---|
| Model knowledge | Training data: the open web, licensed content, widely repeated facts | Run the prompt with search disabled, or add "answer without searching the web" | Consistent entity information everywhere, third-party descriptions of your brand, a clear about page, long lead time |
| Retrieval | Live web search when the prompt triggers it | Run the prompt with search enabled, or use the API with the web search tool | Pages that answer the question directly, crawlable by OAI-SearchBot, recently updated |
A brand can be strong on one layer and invisible on the other. A well-known brand with a bad website is mentioned from training but never cited; a new brand with excellent content is cited but never mentioned when the model answers from memory. Treat them as two scoreboards.
Step 1: Build the prompt set
Write 20 to 50 prompts per topic, phrased the way people actually talk to ChatGPT. Cover orientation, comparison and purchase intent, and add two prompt types that matter specifically here:
- Recommendation prompts: "recommend an accounting tool for a freelancer in the Netherlands"
- Alternative prompts: "what are alternatives to competitor X for freelancers"
Leave your own brand name out of most prompts. Add a handful of competitor-branded prompts to learn how the model describes them. Keep the set stable and versioned; every change breaks your history.
Step 2: Fix the sampling protocol
- Session: a temporary chat, with memory and custom instructions off, or a clean account used only for measuring. Never your daily account.
- Model: note which model answered. Behaviour differs between versions.
- Search state: run each prompt twice: once with search forced on ("search the web and cite your sources") and once with search forced off ("answer without searching"). That gives you the two layers.
- Location and language: the country and language of your market.
- Repetitions: at least three runs per prompt per state per week.
- Storage: full answer text, cited URLs, the search state, the date and the model.
For scale, the API is the practical route. With the web search tool enabled, responses come back with URL citations attached, which a script can store and score. Without the tool, the same request gives you the model-knowledge layer.
Step 3: Record the right fields
For every run, capture: whether your brand is mentioned, whether it is cited, the exact URL cited, the position of your citation among the links, whether a search happened, which competitors are mentioned and cited, which third-party sources appear (review sites, forums, directories, news), and whether the facts about you are correct. Wrong facts are common in the model-knowledge layer and each one is a content task.
Step 4: Score it
- Mention rate without search: does the model know you exist at all?
- Mention rate with search: does it name you when it looks at the live web?
- Citation rate: the share of search-enabled runs in which your domain is linked.
- Share of voice: your mentions and citations against your defined competitor set, per topic and per layer.
An illustration with made-up numbers, to show the shape (example data, not a measurement):
| Topic (example data) | Mention rate, no search | Mention rate, with search | Citation rate |
|---|---|---|---|
| Accounting for freelancers | 15% | 45% | 30% |
| VAT returns | 0% | 20% | 10% |
| Invoicing software | 35% | 60% | 40% |
The first column shows how much the model already knows; the gap to the second column shows what your content wins when it is allowed to look.
Step 5: Read the results
The cited pages in ChatGPT usually share a few traits: they answer the question in the first paragraph, they are specific about who the product is for, they were updated recently, and they come from domains the model treats as trustworthy for that topic, which often includes comparison sites and forums rather than brand sites. Help centres and documentation get cited more than marketing pages.
The mentioned-without-search brands are the ones described consistently across many sources. If your company is called three different things on your own site, in directories and in press, the model learns none of them well.
Step 6: Act, then re-measure
- Crawler policy. Decide what you allow: GPTBot for training, OAI-SearchBot for search results, ChatGPT-User for user-triggered fetches. If you want citations, do not block the last two.
- Answer pages. For each prompt where a competitor is cited and you are not, write or restructure the page that answers it directly.
- Entity consistency. One name, one description, one set of facts about your company across your site, your about page, directories and social profiles.
- Third-party presence. If the model keeps citing a comparison site or a forum thread, that is where you need to be listed or discussed.
- Fact corrections. Publish the correct facts prominently where the model can find them.
Then wait, re-run the set and compare per layer. Retrieval moves within weeks; model knowledge moves with model versions.
Common mistakes
- Measuring in your own account with memory on.
- Running each prompt once and treating the answer as truth.
- Not recording whether a search happened, so the two layers blend into one number.
- Asking leading questions such as "do you know brand X", which the model tends to answer politely rather than honestly.
- Expecting training-layer changes within a month.
By hand or with a tracker
A spreadsheet and a temporary chat window are enough to start and teach you a lot in a week. Once you track several topics on two layers, a script against the API or a dedicated tracker keeps the history and the repetitions honest. For a quick first reading, the free AI Visibility Check shows whether ChatGPT, Gemini and Perplexity mention your brand or a competitor for a handful of questions.
Conclusion
ChatGPT visibility is two scoreboards, not one: what the model already knows, and what it finds when it searches. A fixed prompt set, a controlled protocol and repeated sampling give you both, and every gap turns into a concrete task, from crawler policy to a new answer page to consistent entity information. If you want that measured every week and turned into pages that get cited, read how Traze approaches AI SEO.