A monthly AI visibility score can tell you that competitors keep appearing where your brand does not. You can find that out yourself with a prompt list, a spreadsheet and a weekly routine, then spend the subscription money on pages that might actually earn citations.
I made the case against paying for the score in Your AI Visibility Score Is the New Google Ads Grader. Readers asked the obvious follow-up: how do I check where I stand without a subscription? This is the build guide.
At the end, you will have 20 to 40 buyer prompts, a sheet that records each check across ChatGPT, Gemini and Google AI Overviews, and a change log for testing page edits. Before you start, get access to those three search surfaces, a blank spreadsheet, and your last ten sales calls or support tickets. Search Console queries help too. Set aside one afternoon to build the tracker; the checks become a weekly routine.
Step 1: Collect buyer prompts, not marketing slogans
Open your last ten sales calls or support tickets. If you have Search Console queries, open those too. Copy the questions and awkward phrases buyers actually use into a tab named prompts_raw. Start with the language of someone who has a problem and might pay to solve it, not the language on your homepage.
Sort the candidates into three buckets. A guide to brand monitoring in AI search also recommends drawing prompts from buyer conversations and separating the kinds of questions you check. Use these examples as a pattern, not as prompts to track unless they fit your business:
category:best CRM for small law firm with email follow upproblem:how do I reduce no shows for home service quotescomparison:Jobber vs Housecall Pro for pricing
Aim for 30 to 50 candidates, then cut to 20 to 40 prompts. Give each a bucket and a buyer stage. Delete anything that would never plausibly lead to a quote, trial or purchase. I used to tell clients to track 100 prompts for coverage. I was wrong. Forty buyer prompts you check weekly beat 100 informational prompts you never act on.
Expected result: a short, tagged prompt list you can run without debating what each question means. Common mistake: asking the team to brainstorm from memory. That produces branded phrases and tidy definitions, not the questions buyers bring to a sales call.
Step 2: Build a sheet that can hold every run
Create a tab named baseline_v1. Paste this header into cell A1:
prompt,bucket,buyer_stage,engine,date,run,brand_mentioned,mention_type,position_in_answer,sentiment,competitors_named,sources_cited,source,mention_rate
Use one row per prompt, per engine, per run. If you keep 30 prompts, check three engines and run each prompt three times, that is 270 rows for the baseline. It is repetitive. That is why the prompt list stays short.
Keep entries simple enough to filter:
- In
engine, usechatgpt,geminioraioverviews. Indate, useYYYY-MM-DD; inrun, use1,2or3. - In
brand_mentioned, enterYorN. Inmention_type, usenone,mentionorcitation. A mention names your brand; a citation links to your page. Record a citation as a citation, not as a second mention. - In
position_in_answer, usefirst,laterornone. Insentiment, usepositive,neutral,negativeorunclear. Do not force a judgment when the answer gives you nothing to judge. - Put named competitors in
competitors_namedand full linked URLs, not just domains, insources_cited. Usemanualorapiinsourceso you never mix two collection methods by accident.
The citation-tracking rundown distinguishes brand mentions from linked attributions. Keep that distinction. Being named in a paragraph that links the buyer to a competitor is not the same as earning the link.
For Google Sheets, paste this formula into N2 and fill it down. It counts your Y rows for the same prompt, engine and date, then shows the count against the number of runs logged:
=COUNTIFS($A:$A,A2,$D:$D,D2,$E:$E,E2,$G:$G,"Y")&"/"&COUNTIFS($A:$A,A2,$D:$D,D2,$E:$E,E2)
Expected result: after three runs, each prompt-engine pair reads 0/3, 1/3, 2/3 or 3/3. Common mistake: building a single 0-to-100 score before you have observations worth inspecting. Keep the rows. The URLs and competitor names tell you what to open next; a homemade grade does not.
Step 3: Check the same prompts three times
Open ChatGPT, Gemini and Google search in clean sessions. Use the same account state each week; avoid letting a personalized history become your baseline. For local prompts, keep your Google search location consistent. Paste each prompt verbatim, run it three times per engine, and log each answer before moving on. If Google shows no AI Overview, record that rather than pretending one appeared.
Do not change the wording between runs. Answers vary even when the prompt does not. Research on citation volatility and repeat-check overlap is a useful warning here: one missing link is a poor basis for rewriting a page. Three runs do not eliminate noise, but mentioned 2/3 is more honest than a single yes or no.
For every answer, check whether your brand appears, whether it gets a linked citation, where it appears, which competitors appear, and which URLs the answer links. Record the answer you see, not the answer you expected. Fill source with manual. Check that the formula reaches a denominator of 3 for each prompt-engine pair before you call the baseline complete.
Expected result: three dated rows and a mention rate for each prompt on each engine. Common mistake: checking while signed into a heavily personalized session one week and a clean session the next. You will not know whether the answer changed or your setup did. Keep the conditions as steady as you can; three weeks of comparable rates are more useful than one dramatic screenshot.
Step 4: Turn absent mentions into a short gap list
Filter baseline_v1 for prompt-engine pairs with a low mention_rate and competitors named in the answers. Start with comparison and category prompts that could lead to a purchase. Do not let a definition prompt outrank a buying question because its answer looks easier to win.
For the top five gaps, open the URLs in sources_cited. Read the section the answer appears to rely on, then open your relevant page beside it. Write down what the cited page answers that yours does not. A row showing that Jobber vs Housecall Pro for pricing linked to competitor pricing pages is more useful than an overall 30% mention rate: it points you toward the missing comparison, not toward another reporting chart.
Create a short gap list of five to ten prompts. Keep the cited URLs beside each prompt, plus the page on your site that could answer it. If there is no suitable page, write that down too. This is an action list, not a leaderboard.
Before you edit anything, run the top five gap prompts again the next day under the same conditions. If an answer flips, mark that prompt volatile in your notes and keep watching rather than rebuilding a page around one result. The same restraint matters in a repeatable mention audit: record what you saw again before you act.
Expected result: five to ten prioritized gaps with URLs to inspect. Common mistake: averaging them into a score. Fix the prompt that keeps losing in the same way; do not chase the one that changes character every time you open it.
Step 5: Automate the typing only if you need to
You can stop at a manual weekly check. If the routine becomes too tedious, automate the ChatGPT and Gemini legs where you have API access with search or grounding enabled. Send the same prompt text, parse brand names and linked URLs, and append the output to the same sheet fields. A DIY automation walkthrough shows that basic send-parse-append pattern.
Keep Google AI Overviews as a browser check. Do not quietly replace it with a different Google AI surface and label the rows aioverviews. If you use an API for another engine, set source to api and compare API weeks with API weeks, manual weeks with manual weeks. API output can differ from what you see in an app. A longer automated history is worthless if you change the thing you measure halfway through.
Run the check weekly on the same day if you can. Daily checks mostly give you more noise to sort. DIY automation may be cheap beside a subscription; the automation walkthrough gives an illustrative per-prompt cost, while this tool rundown lists paid tracker plans. Check your own provider billing before choosing the automated route. The point is not to win a pricing spreadsheet. It is to avoid paying for a polished display of gaps you could already identify.
Expected result: new rows arrive in the same format as the manual baseline, clearly marked by source. Common mistake: automating Google AI Overviews with a brittle scraper, then treating the broken collection method as a change in visibility. Automate the typing, not the judgment.
Step 6: Change one page and log the date
Pick one stable gap prompt. Open its most relevant cited page beside yours and make one focused change to one page. Put a direct answer near the top, use a heading that matches the buyer’s question, or add the comparison table or list your page is missing. Keep the facts current and consistent. Those are the kinds of page choices discussed in this Google AI Overviews citation guide; your cited-URL list tells you which choice matters for this prompt.
Create a tab named changelog and paste this header into A1:
date,prompt,page_changed,what_changed
Add a row on the day you publish. Describe the actual edit, not the intention behind it. Added direct answer and pricing table is useful later; improved AEO is not.
Run the full prompt set weekly for three weeks. Compare the edited prompt’s mention rates before and after the change, using the same engine and collection method. Read small samples honestly: 0/3 becoming 2/3 is a reason to keep watching, not proof that you won. A repeated pattern across the following weeks deserves more attention. If nothing moves after three weeks, revisit the page or choose the next gap.
Expected result: a dated edit you can compare with later checks. Common mistake: changing four pages at once, seeing mentions move, and crediting whichever edit sounds best in a meeting. One prompt, one page, one date. Otherwise the tracker is a thermometer with extra columns.
Verify the tracker, then spend on the gap
The sheet measures what you observed. It does not write the missing answer or earn the citation. To verify the Google AI Overviews leg, search your five highest-value prompts again under the same conditions. Note whether an Overview appears, whether your brand appears, and which pages it links. Check that those observations match the rows you entered. If an Overview does not appear, leave that as an observation; do not turn it into a brand failure.

Before buying a tracker, ask two questions: what will it change on my site, and where is the log of those changes? A read-only alert is not execution. Stop Counting AI Brand Mentions. Fix the Pages That Never Get Cited. covers the page-work side; DIY Checks vs. Visibility Trackers vs. Done-for-You AEO puts this spreadsheet in context. groas sits on the execution side of that line, with specialized models working across paid and organic search, logged actions and a named human strategist accountable for direction. Your sheet is the cheap measurement layer, not a substitute for doing the work.
Final check: confirm that each of your five money prompts has three rows per engine, a mention rate, competitor names where applicable, and full cited URLs when the answer provides them. Then choose the smallest stable gap, make the page change, log its date and recheck weekly for three weeks. Measure cheaply, spend on changes. A spreadsheet you use each week beats a subscription you admire each month only if you act on what it shows.

