A client asks, “Are we showing up in ChatGPT?” The tempting answer is a screenshot: someone on the team types a question into ChatGPT, the client’s name appears, and the screenshot goes into the monthly report. Next month the same question returns a different answer, and the agency has no way to explain why.
To measure AI visibility for a client, run a fixed set of buyer prompts on each AI engine every month, record whether the client is named, cited, or absent in each answer, compare that against named competitors, and report the trend across the whole set. One answer is an anecdote. The same prompts, re-run on the same schedule, are a measurement.
The process has six steps:
- Build a fixed prompt set from buyer questions.
- Run it from clean sessions.
- Record mentions, citations, and position.
- Measure share of voice against named competitors.
- Add Search Console and GA4 data.
- Re-test monthly and report the trend.
Below is how to set each one up so it works across every account, and what to put in the client report.
Why AI visibility cannot be measured like rankings
A ranking is a position on a results page. On any given day, most people searching the same query in the same place see roughly the same list. AI answers do not behave that way.
- Answers vary between runs. Ask the same question twice and the wording, the businesses named, and the sources cited can change.
- There is no position one. An answer might name one business, five, or none, and it might cite sources without naming any business at all.
- Each engine can draw on different sources. ChatGPT, Gemini, Perplexity, and Google AI Overviews can give four different answers to the same prompt.
- Personal context can change the answer. Signed-in history, location, and saved preferences can all shape what an assistant says.
What you can measure reliably is how often a client appears across a fixed set of prompts, on each engine, over time.
Step 1: Build a fixed prompt set from buyer questions, not brand names
Write 10โ20 prompts per client, phrased the way a buyer would ask an assistant. Mix four types:
| Prompt type | Example (local plumber) | What it tells you |
|---|---|---|
| Service | “emergency plumber near me” | Whether the client is recommended for the core job |
| Comparison | “best hot water installer in Parramatta” | Whether the client makes shortlists |
| Problem | “why is my drain gurgling” | Whether the client’s expertise gets cited |
| Cost | “blocked drain repair cost Sydney” | Whether the client’s pricing content gets used |
Build the set from templates so it scales across accounts: “[service] near me,” “best [service] in [suburb or city],” “why is my [problem],” and “[service] cost [city].” Fill the variables per client, then edit each prompt so it reads the way a person would type it.
Leave brand names out. Ask an engine about a business by name and it will usually describe that business, which proves nothing about whether a buyer would find it. Agree on the set with the account team, map every prompt to a service that earns the client money, and do not change it month to month. If a prompt has to change, log the change and treat that prompt’s history as a new line.
For agencies, the important part is using the same template for every client: same prompt types, same count range, same naming convention. That is what makes accounts comparable and lets one person run the process across many clients. If you have not baselined the client yet, start with the AEO audit checklist.
Step 2: Use clean sessions, because logged-in history can skew results
Run every prompt from a dedicated test profile with chat history and personalization turned off, and the location set to the client’s market. Results can follow the tester’s IP address as well as the settings, so test from the client’s market or through a connection located there. Never use a staff member’s personal account: an assistant that has watched someone research plumbing clients for six months is not giving a buyer’s answer.
Record the date of every run and the engine used. Because answers vary, run each prompt at least three times in the same testing window and record how many runs named or cited the client. A client named in two of three runs is in a different position from one named in one of three, and a single run cannot tell you which.
Run the first baseline by hand so you read the full answers and see which sources each engine leans on. For monthly re-tests across many accounts, a tracking tool can carry the volume, as long as it runs the same fixed prompt set on the same engines. Check how the tool gets its answers. A tool that queries a model through its API may not return what a buyer sees in the consumer app, so compare a sample of its results against your manual baseline before you trust it.
Step 3: Record mentions, citations, and position in the answer
For every prompt, on every engine, record three things:
- Named: the client appears in the answer text.
- Cited: the client’s website is linked as a source.
- Absent: neither.
A business that is both named and cited gets both recorded.
These are not the same win. A mention puts the business in front of the buyer. A citation means the engine used the client’s own page as a source, and it is the one that can send a click. A client can be named without being cited (for example, from a directory) or cited without being named (the engine used the client’s page and recommended someone else).
Also note where the client appears in the answer. First named in a list of five is not the same as fifth. You do not need a precise score for this; “first,” “in the list,” or “mentioned in passing” is enough to show movement.
Flag accuracy too. A mention that gets the client’s services, area, or pricing wrong is not a win; it is a problem to fix, and it belongs in the report as one.
Finally, record which sources each engine cited for each prompt. That column is where most of the fix work comes from, because it shows the directories, lists, review sites, and forums the engines trust for the client’s category.
Step 4: Share of voice against named competitors
Visibility only means something next to the businesses recommended instead. Pick three to five named competitors per client, agreed on with the account team, and record their results from the same answers. No extra runs are needed: every answer you already record shows which businesses were named.
Share of voice is simple arithmetic: across all prompts and engines, how often was the client named, compared with each competitor? Report it as a count alongside the percentage (fictional example: “named in 9 of 60 prompt and engine checks”), so the client can see the base behind the number.
This also answers a question a client may ask: “Why do they show up and we do not?” The cited-sources column is where to look. Often the competitor is on a list, directory, or review platform the client is missing from, or its pages answer the question more directly.
Step 5: Add the first-party data you already have
Prompt testing shows what the engines say. Two first-party sources show what happened as a result:
- Search Console’s generative AI performance reports. Google added dedicated reports for generative AI features in Search, including AI Overviews and AI Mode, and rolled them out to all websites in August 2026. They show impressions, the pages that appeared, countries, devices, and dates. Use them to confirm which client pages Google is surfacing in AI features.
- GA4 referral traffic from AI assistants. Segment sessions referred by AI assistant domains. The numbers may be small for a local service business, but the trend is real data, and the landing pages show which content the assistants send people to. Treat the count as a floor, not a total, because it only counts visits that arrive with a referrer.
Neither replaces the prompt set. Search Console covers only Google’s AI features, and referral traffic only counts people who clicked.
Step 6: Re-test monthly and report the trend, not a screenshot
Re-run the full prompt set once a month, on the same engines, from the same clean setup. Then report movement across the set:
- How many prompts the client was named on, by engine, this month vs last month.
- How many prompts the client was cited on.
- Share of voice vs each named competitor.
- Which prompts changed, and what changed on the site or off it in the same period.
A trend across 15 prompts and four engines is defensible in a client meeting. A screenshot is not, because the client can open ChatGPT that afternoon and get a different answer.
What to put in the client report
Clients do not want the full prompt table every month. They want to know where they stand and what happens next. A one-page report covers it:
Sample report layout. Fictional client: Harbourline Plumbing, Sydney.
| Section | What it shows |
|---|---|
| Headline | One sentence: the change since last month and the main reason |
| Visibility by engine | Prompts named and cited on ChatGPT, Gemini, Perplexity, and AI Overviews, this month vs last month |
| Share of voice | The client vs three named competitors, as counts and percentages |
| Biggest gap | The prompt group where the client is absent and competitors are named, with the sources the engines cited |
| First-party signals | Search Console AI impressions and GA4 AI referral sessions, with the trend |
| Work completed | What was implemented this month: pages, schema, profiles, citation sources |
| Next 30 days | The top three actions, each tied to a specific gap |
Every finding carries its prompt, its engine, and its date. That is what lets the account manager answer the follow-up question. Keep the full prompt table as an appendix for the client’s SEO contact.
Two things to leave out: guarantees and rank-style language. No one can guarantee a placement in an AI answer, and calling a mention “position 1” invites the client to expect stability that does not exist.
FAQ
What is AI visibility?
AI visibility is how often a business is named or cited when buyers ask AI assistants such as ChatGPT, Gemini, Perplexity, and Google AI Overviews the questions it should win.
How do you measure AI visibility?
Run a fixed set of buyer prompts on each engine every month from a clean test profile, record whether the business is named, cited, or absent, compare it with named competitors, and report the trend across the set.
How many prompts do you need to measure AI visibility?
For a local service business in one market, 10โ20 prompts covering service, comparison, problem, and cost questions are enough to show patterns. Add a separate set for each additional market.
What is the difference between an AI mention and an AI citation?
A mention is the business’s name appearing in the answer. A citation is the business’s website being linked as a source. Citations show the engine used the client’s own content and are the ones that can send traffic.
Can Google Search Console show AI visibility?
Partly. Search Console’s generative AI performance reports show impressions in Google’s AI features, including AI Overviews and AI Mode. They do not cover ChatGPT, Perplexity, or other assistants, so a prompt set is still needed.
Report it in your own template
If clients are already asking whether they show up in AI answers, the measurement needs to be repeatable before it goes in a report. See our AEO method for how SearchKata builds the prompt set, runs the engines, and re-tests every month, with every deliverable in your template. See how SearchKata works as an AEO partner for agencies.
Leave a Reply