Blog/Guides

How to run an AI visibility audit, step by step

Agentcites
QUESTIONSCHATGPTPERPLEXITYGEMINIANSWERSNAMED?

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.

FINDQUESTIONSCHECKACCESSMEASUREEXPLAINLOSSESFIXPAGES
An audit walks the same five steps an AI visibility tool does, from the questions to the fixes.

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.

The eight steps of an AI visibility audit, what each one produces, and the question it answers.
StepWhat you produceThe question it answers
1. Write the questionsA list of 20 to 50 buyer questionsWhat do buyers ask?
2. Split branded from non-brandedTwo listsWhich answers can flatter you?
3. Check crawler accessOne line per assistantCan they read you?
4. Ask every questionEvery answer, saved as textWhat did they say?
5. Count who was namedA count per brand, per assistantAre you named?
6. Explain each lossOne reason per lost questionWhy not?
7. Pick what to changeA short, ordered listWhat do I do first?
8. Ask againA second set of answersDid 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.

  1. Branded, 10 of 10100%
  2. Blended, 12 of 5024%
  3. Non-branded, 2 of 405%
Illustrative example, not measured data. Made-up figures from the example in this section, to show how blending hides a loss. They describe no real brand.Agentcites

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.

AI crawlers named in each company’s own documentation, what each is for, and what blocking it does. Read 10 October 2026.
CrawlerCompanyWhat it is forWhat blocking it does
OAI-SearchBotOpenAIShows websites in ChatGPT search resultsOpenAI says opted-out sites are not shown in ChatGPT search answers
GPTBotOpenAICollects content that may be used to train modelsSays your content should not be used for training
ChatGPT-UserOpenAIFetches a page when a user asksOpenAI says robots.txt rules may not apply
PerplexityBotPerplexitySurfaces and links sites in Perplexity search resultsPerplexity asks sites to allow it to appear in results
Perplexity-UserPerplexityVisits a page to answer a userPerplexity says it generally ignores robots.txt
Google-ExtendedGoogleControls use of content to train Gemini modelsGoogle 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.

  1. Use a fresh chat for every question, so an earlier question does not steer the answer.
  2. Sign out, or use a private window, so your own history does not shape what you see.
  3. Paste the answer into a sheet or a document with the date, the assistant and the question.
  4. Copy the links the answer cites, because they tell you which pages the assistant linked to.
  5. 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.

A made-up example of an audit record, three rows, to show the columns. None of these figures is a measurement.
QuestionAssistantBrandedBrands namedYour page citedNamed you
Best invoicing app for freelancersChatGPTNoBrand A, Brand BNoNo
Best invoicing app for freelancersPerplexityNoBrand A, YouYesYes
Is YourBrand good for freelancersGeminiYesYouNoYes

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.

QuestionNamed insteadPossible reason
What is the best tool for scheduling social media posts across several platforms?NorthlineReview roundup
Which social media scheduler posts at the best time automatically?KestrelComparison page
How do I manage several clients’ social accounts in one place?EverdeneReview roundup
Is there a social media scheduler with clear pricing for small teams?HaldenReadable pricing
A loss list, with made-up figures. Each lost question shows who was named instead and how they won, which is the reason step 6 asks you to write down.

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.

-30.3%
2.5%
20.4%
15.5%
115.1%
Rank 1Rank 2Rank 3Rank 4Rank 5
Data: Aggarwal and others, GEO, KDD 2024, table 2. A benchmark the authors built, mostly on GPT-3.5.Agentcites

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

  1. OpenAI, overview of OpenAI crawlers, read 10 October 2026
  2. Perplexity, Perplexity crawlers, read 10 October 2026
  3. Google, overview of Google crawlers and fetchers, read 10 October 2026
  4. Aggarwal and others, GEO: Generative Engine Optimization, KDD 2024, read 10 October 2026
  5. Search Engine Journal, AI recommendations change with nearly every query, read 10 October 2026