In short
An AI visibility audit checks whether assistants such as ChatGPT, Perplexity, Gemini and DeepSeek name your brand when a buyer asks a question without using your name. You write down the questions buyers really ask, check that each assistant is allowed to read your site, ask every question, keep every answer word for word, and count who was named. Then you explain each loss and decide what one page could change. Because the same question can get a different answer each time, you repeat the questions before you believe any change.
What an AI visibility audit is
An AI visibility audit is a record of what AI assistants say when a buyer asks about your market, and whether they name you. It is not a score. It is a set of questions, the answers to them, and a count of who was named in each one.
The audit has to answer three plain questions. Can the assistants read your site at all? When a buyer asks without your name, are you named? And when you are not, who is named instead and why? Everything below serves one of those three.
You can run the whole thing by hand in an afternoon for a small set of questions. A tool saves the typing and keeps the record, but the method is the same. The steps below are written so you can do them without buying anything.
| Step | What you produce | The question it answers |
|---|---|---|
| 1. Write the questions | A list of 20 to 50 buyer questions | What do buyers ask? |
| 2. Split branded from non-branded | Two lists | Which answers can flatter you? |
| 3. Check crawler access | One line per assistant | Can they read you? |
| 4. Ask every question | Every answer, saved as text | What did they say? |
| 5. Count who was named | A count per brand, per assistant | Are you named? |
| 6. Explain each loss | One reason per lost question | Why not? |
| 7. Pick what to change | A short, ordered list | What do I do first? |
| 8. Ask again | A second set of answers | Did anything really move? |
Step 1: write the questions buyers ask
Start with the questions a buyer types when they do not yet know your name. Those are the questions where an assistant decides who to recommend, so they are the ones worth measuring.
Good sources are your sales calls, your support inbox, the "People also ask" boxes in Google, and the wording of the search phrases that already bring visitors to your site. Write each question the way a person would say it. "What is the best scheduling tool for a small agency?" is a buyer question. "Scheduling software features" is a keyword, and assistants are not asked keywords.
- Write 20 to 50 questions. Fewer than 20 makes every single answer swing the result too much.
- Give each question a topic, such as pricing, setup or a comparison, so you can see which topics you lose.
- Include the comparison questions buyers ask, such as "X or Y for a team of five".
- Keep the wording fixed once you start. A changed question is a new question, and it cannot be compared with the old one.
If you want help writing the list, the features page explains how Agentcites writes them from your own site, and you can copy the method by hand.
Step 2: keep branded questions apart
A branded question is one that contains your name, and an assistant answers it with your name almost every time. Count those apart, or they will make a bad result look good.
Here is a made-up example to show the effect. Say you ask 10 branded questions and 40 non-branded ones. You are named in all 10 branded answers and in 2 of the 40 non-branded answers. Blended together, that reads as 12 of 50, or 24 per cent. The honest figures are 10 of 10 and 2 of 40. The second pair tells you that buyers who do not know you almost never hear about you.
A blended rate of 24% hid a non-branded rate of 5%.
Share of answers that named the brand in the made-up example above, out of 10 branded questions, 40 non-branded questions, and all 50 together.
- Branded, 10 of 10100%
- Blended, 12 of 5024%
- Non-branded, 2 of 405%
Report branded and non-branded answers as two separate counts, each with its total. A single blended number hides the result you came to find.
Step 3: check that each assistant can read your site
If an assistant is blocked from your site, nothing else in the audit can help. Open your robots.txt file, which is the text file at yourdomain.com/robots.txt that tells crawlers what they may read, and check the lines for each assistant.
The crawler that matters is not always the one people expect. OpenAI and Perplexity each run more than one crawler, and each one does a different job. The table below is read from each company’s own documentation.
| Crawler | Company | What it is for | What blocking it does |
|---|---|---|---|
| OAI-SearchBot | OpenAI | Shows websites in ChatGPT search results | OpenAI says opted-out sites are not shown in ChatGPT search answers |
| GPTBot | OpenAI | Collects content that may be used to train models | Says your content should not be used for training |
| ChatGPT-User | OpenAI | Fetches a page when a user asks | OpenAI says robots.txt rules may not apply |
| PerplexityBot | Perplexity | Surfaces and links sites in Perplexity search results | Perplexity asks sites to allow it to appear in results |
| Perplexity-User | Perplexity | Visits a page to answer a user | Perplexity says it generally ignores robots.txt |
| Google-Extended | Controls use of content to train Gemini models | Google says it does not affect inclusion or ranking in Search |
Sources: OpenAI’s crawler documentation, Perplexity’s crawler guide and Google’s list of common crawlers, linked under Sources.
Two lines from those pages matter most. OpenAI’s crawler page says sites that opt out of OAI-SearchBot "will not be shown in ChatGPT search answers". Google’s crawler page says Google-Extended "does not impact a site’s inclusion in Google Search nor is it used as a ranking signal in Google Search". So blocking GPTBot to stop training is a different decision from blocking OAI-SearchBot, which removes you from ChatGPT search answers.
DeepSeek does not publish a crawler page that we could find, so for DeepSeek this step is unknown rather than passed. Write "unknown" in the record, never "allowed". The features page describes how Agentcites checks crawler access for you.
Step 4: ask every question and keep every answer
Ask each question in each assistant you care about, and save the full answer as text with the date. The saved text is the evidence. A tally without the words behind it cannot be checked later.
- Use a fresh chat for every question, so an earlier question does not steer the answer.
- Sign out, or use a private window, so your own history does not shape what you see.
- Paste the answer into a sheet or a document with the date, the assistant and the question.
- Copy the links the answer cites, because they tell you which pages the assistant linked to.
- Write down any answer that failed or refused, and keep it in the total.
The last point matters more than it looks. If one answer fails and you quietly drop it, every rate you compute afterwards has the wrong total. A failure is a result too.
Step 5: count who was named, and who was cited
For each answer, record every brand it names and every page it links to. Being named and being cited are two different results, so keep two columns.
A brand is named when the answer writes its name. A page is cited when the answer links to it. You can be cited without being named, when an assistant uses your article but recommends someone else. You can also be named without being cited, when it mentions you from what it already knows. Both are worth knowing, and they need different fixes.
| Question | Assistant | Branded | Brands named | Your page cited | Named you |
|---|---|---|---|---|---|
| Best invoicing app for freelancers | ChatGPT | No | Brand A, Brand B | No | No |
| Best invoicing app for freelancers | Perplexity | No | Brand A, You | Yes | Yes |
| Is YourBrand good for freelancers | Gemini | Yes | You | No | Yes |
Count the "Named you" column for non-branded rows only, and show the total beside it, for example 1 of 2.
Step 6: explain each loss before you fix anything
A loss is a non-branded question where no assistant named you. For each one, write down who won and the most likely reason, because the fix depends on the reason.
- You have no page on the topic. The fix is to write one.
- You have a page, and it does not answer the question directly. The fix is to change that page.
- The answer came from a list or a review site you are not on. The fix is to get onto that page, not to write your own.
- The assistant could not read your site. The fix is in robots.txt or your firewall, and it comes first.
- The question is not one a page can win, such as a request for a household name. The honest fix is to leave it.
Open the pages the winning answer cited and read them. They show what the assistant found useful. The method page sets out how Agentcites classifies each loss, if you want a fuller version of this step.
Questions you are missing from
The possible reason is a model’s reading of the answer, not a proven cause. Illustrative.
| Question | Named instead | Possible reason |
|---|---|---|
| What is the best tool for scheduling social media posts across several platforms? | Northline | Review roundup |
| Which social media scheduler posts at the best time automatically? | Kestrel | Comparison page |
| How do I manage several clients’ social accounts in one place? | Everdene | Review roundup |
| Is there a social media scheduler with clear pricing for small teams? | Halden | Readable pricing |
Step 7: pick the first thing to change
Order the losses so that access problems come first, then the topics that lost the most answers. Do the top item before you plan the rest.
There is some published evidence on what helps a page get used. The GEO paper, presented at KDD 2024, reports that its methods "can boost visibility by up to 40% in generative engine responses". That is a figure measured on the authors’ own test set of queries and engines, so treat it as a sign of direction rather than a promise for your site. The same abstract says the methods that work vary across domains, so what helps one market may not help another.
Citing sources helped a fifth-ranked page most and hurt a first-ranked one.
Relative change in visibility, in percent, after the Cite Sources edit, for a source by its rank in search results before the edit.
Step 8: ask again before you believe a change
Assistants give different answers to the same question, so one re-check can show a change that is only chance. Ask the same questions more than once and compare the spread, not a single pair of numbers.
A study by Rand Fishkin of SparkToro and Patrick O’Donnell of Gumshoe, reported by Search Engine Journal, ran 2,961 prompts across ChatGPT, Claude and Google AI Overviews. It found the same list of brands came back "less than 1% of the time across repeated runs". In the same study, the leading headphone brands appeared in 55 to 77 per cent of 994 responses. So a brand can be named often without ever holding a fixed position, and a ranking position is the wrong thing to report.
- Repeat the non-branded questions at least twice on the same day before you change anything, to see how much the answers move on their own.
- After a change, wait until the assistant has had time to read the page, then ask the same questions in the same way.
- Call a change real only when it is bigger than the movement you saw with nothing changed.
Doing the audit by hand, or with a tool
By hand, the audit costs only time, and it is the right way to start. It stops scaling once you want 50 questions across four assistants every week, which is 200 answers to paste and read each time.
Agentcites does these steps on a schedule. It writes up to 50 questions from your site, asks ChatGPT, Perplexity, Gemini and DeepSeek today, keeps every answer word for word, counts branded and non-branded apart, checks crawler access in robots.txt, and says why each question was lost. It then drafts a page for a loss a page could win. It costs $149 a month per website, with weekly scans, as the pricing page shows. It does not yet tell you whether a published page worked, which is the gap step 8 covers by hand.
Other tools cover parts of the same ground, and several ask more assistants or more questions. The comparison pages set out the facts for five of them from their own sites.
How we measured this
This guide was written by Agentcites on 10 October 2026. The crawler facts come from OpenAI’s crawler documentation, Perplexity’s crawler guide and Google’s list of common crawlers, each read that day. The research figures come from the GEO paper on arXiv and from Search Engine Journal’s report of the SparkToro and Gumshoe study, read the same day. The audit record and the branded example are made up to show the columns, and they say so where they appear.
It does not cover Google AI Overviews as a separate surface, Microsoft Copilot or Claude, and it does not cover paid placements in assistants. It says what Agentcites does from the product’s own feature list. It does not claim that following these steps will get you named, because nobody has published a measurement that shows that for a given site.
Questions
What is an AI visibility audit?
It is a record of what AI assistants say when buyers ask about your market, with a count of whether you were named. It covers the questions, crawler access, the answers word for word, and the reason for each loss.
How do I do an AI visibility audit for free?
Write 20 to 50 buyer questions, check your robots.txt for each assistant’s crawler, then ask each question in a fresh chat and paste every answer into a sheet. Count who was named, with branded and non-branded questions kept apart.
How many questions should an AI visibility audit use?
Between 20 and 50 is a workable range by hand. Fewer than 20 lets one answer swing the result too much, and the answers vary from run to run.
Does blocking GPTBot remove me from ChatGPT?
Not from search answers, according to OpenAI. GPTBot is for training. OpenAI says sites that opt out of OAI-SearchBot are the ones not shown in ChatGPT search answers.
How often should I repeat an AI visibility audit?
Weekly or monthly, with the same questions each time. Repeat the questions more than once before you believe a change, because the same question can get a different answer.
Sources
- OpenAI, overview of OpenAI crawlers, read 10 October 2026
- Perplexity, Perplexity crawlers, read 10 October 2026
- Google, overview of Google crawlers and fetchers, read 10 October 2026
- Aggarwal and others, GEO: Generative Engine Optimization, KDD 2024, read 10 October 2026
- Search Engine Journal, AI recommendations change with nearly every query, read 10 October 2026