The Simple Way to Check AI Overview Visibility in Bulk
+ Free Python Script
If you find value in my newsletter and want to support the work that goes into it consider —> [☕Buy Me a Coffee☕]💡 Want more from me? [SEO Strategy Course] | [Build Your Own SEO Tools (with Python & Agentic AI)] | [Premium SEO Mastermind]
Alternatively you can become a paid subscriber
Intro
We talk a lot about optimizing for better visibility in AI, and there’s tons of content being shared, but one of the questions I get asked in my community calls is how to understand where you stand today in AI?
Personally, every once in a while I have someone reach out to me, and they say they found me from an LLM platform.
I just don’t share those very often so not to jinx it 😄😄😄
Anyways, for today I decided to put together a simple process for you to understand where you stand today in your AI visibility in AI Overviews.
Note: this is not an audit to find fixes, it’s an audit to observe how and when do LLMs cite you, and recommend you.
I did that before
I recently created the data study “Who Does Google Trust in AI Overviews for SEO Advice?”
and it all started with a simple data export of a bunch of related keywords (thousands)
Then I did some cleanup, used an API to get AIO for each of the keywords, and analyzed those answers in bulk.
I really recommend you check out this study so you can imagine what you can do if you follow my process. Works wonders when you begin with the end in mind.
Let’s get to it
So there are two thing you want to do:
how often, and in what situations is your brand cited and/or mentioned
who does AIO cites and mentions in general (competitor analysis)
The steps are simple.
The keywords list
First, pull a list of keywords that you want to analyze your visibility for. You can get those keywords from GSC, or you can get them from any of the third-party SEO tools.
Once you have your list looking something like this:
The cleanup
If you pulled a large list of keywords, it’s always a good idea to sift through it to remove any noise. For example, you may want to remove competitor brand names (or not depending on what keywords are important to you to analyze), keywords with Non-Latin letters for example. API calls can be expensive if you’re doing them for a large number of keywords, so cleanup is important to reduce the cost, but also, bad or noise keywords will reduce the quality of your report.
The best way to do this cleanup is a mix of both manual checks and using claude or chatgpt for more large scale automated changes. But always ask them to show you examples of any keywords they removed. Double check, double check, double check.
The API calls
There are a lot of SEO APIs out there, and I have been using SERPapi and the good news is that you can create a free account and get 250 free search per month (not sponsored)!
250 searches are not a lot, but can be a good place if you’re working on a small audit for your website.
I created this free SEO python script for you, once you run it, it will ask you for your API key, which you can get from SERPapi as I mentioned above. Then it will ask you for a CSV that has your keywords. It needs to be called “sample_keywords” and the keywords are in the first column that’s called “keywords” all lowercase. here’s the sample input and output file that I used for the purpose of this blog.
For each of the keywords on your list, the output will look like this
You have the keyword, the AI Overviews, and all the URLs in serps as well. Looks good right?
Note: before running the API on thousands of urls, make sure you run the code on a small set of keywords to test it’s doing what you would like it to do.
The analysis
This is what separates men from boys, or great SEOs from just SEOs. Using chatgpt or claude (I personally used claude code) I would ask it to analyze this output data. For every analysis it should save the output, as we will need to create an HTML report in the end (similar to the report I created).
Note: If you think this is a quick and easy task, you’re probably doing it wrong. You need to double- and triple-check the output for every question before moving on to the next one.
I also recommend asking Claude or ChatGPT to write code to analyze the data, rather than having them analyze the dataset directly. This will give you more consistent results, save you money, and, perhaps most importantly, make it much easier to audit the analysis when you understand exactly how the results were generated in the first place.
Some of the analysis questions you can perform:
How often was my brand cited compared to my competitors (provide the list of competitors and of course your brand name)
How often does being cited or mentioned overlaps with ranking and in what positions.
When your brand is cited, what was the sentiment? perform a sentiment analysis for each time your brand was cited or mentioned in AI Overviews to understand was is cited in positive, negative or neutral tone.
What type of queries trigger my visibility (is it informational? is it when a specific feature is mentioned, etc…)
What type of queries are we lagging in visibility (same question as previous one but looking to the other half of the glass)
the sky is really the limit… and this is where you shine!
Finally combine all this data into an hmtl report because it’s easier to format and you have a very cool report that you can use to drive optimization initiatives in your organization.
And That’s a Wrap (Almost 😄)
I may have made this task sound simpler than it actually is, I know. But that’s not necessarily a bad thing.
Well… I hope I made it simple enough for you to test out and have fun with!
That’s that for today folks and see you in the next newsletter!
Support the Riddler!
Sign up for my newsletter if you’re not already. (Pssst, you can also become a paid subscriber)
Share the newsletter and invite your friends to signup. Help me reach 2k signups by end of 2025 please 🙂
Provide feedback on how I can make this newsletter better!!!
If you’re an SEO tool or an SEO service provider, consider sponsoring my newsletter. I’m also open to other partnership ideas as well.
Disclaimer: LLMs were used to assist in wording and phrasing this blog.







