Most B2B SEO teams find out their AI Overview problem the slow way: a quarter goes by, organic conversions soften, and nobody can point to a single ranking drop that explains it. That is because AI Overview cannibalization does not look like a ranking loss. Positions often hold steady. Impressions often hold steady or even climb. The thing that quietly erodes is clicks, and Google Search Console’s own interface is a bad tool for catching that pattern at scale, because it rounds, samples, and caps exports at a size that stops being useful the moment a site has more than a few thousand ranking queries.
This post walks through a repeatable way to catch it: pulling Search Console data directly through the API with Claude Code CLI doing the aggregation, then scoring every query on four signals that, taken together, separate “you got outranked” from “you got answered.” It is the same investigation pattern we used in our BigQuery pipeline attribution workflow and the original GA4 Data API workflow, applied to the one dataset neither of those tools can see: what happened in the SERP before the click.
Why the Search Console UI hides this problem
The Search Console Performance report is built for spot-checking, not investigation. Three limits get in the way as soon as you try to use it for a real audit:
- Row caps. The UI exports a maximum of 1,000 rows. The Search Analytics API raises that to 25,000 rows per request, and Google’s own documentation confirms results are sorted by clicks descending by default, which buries the exact rows you need (high impressions, low clicks) at the bottom of a truncated export.
- No native trend comparison at the query level. You can compare two date ranges in the UI, but only by scrolling through a table, not by computing a delta across thousands of rows at once.
- 16-month retention, no persistence. Search Console keeps roughly sixteen months of history and nothing more. If you do not pull and store it, the comparison window closes on you.
None of that is a criticism of the tool. Search Console was built for diagnostics on individual pages and queries, not for scoring thousands of them against each other. That is exactly the gap a CLI-driven pull fills.
What the data actually shows about AI Overviews and clicks
Before building a scoring system, it is worth being precise about what is actually happening in the SERP, because the numbers are more specific (and more useful) than “AI Overviews hurt SEO.”
The Pew Research Center tracked 68,879 real Google searches from a panel of U.S. adults in March 2025 and found that users clicked through to a traditional result in just 8% of searches where an AI summary appeared, versus 15% when it did not. Only 1% of visits involved clicking a link inside the summary itself, and users abandoned the search session entirely 26% of the time after seeing a summary, compared to 16% without one.
A larger, more recent practitioner study from Seer Interactive, tracking 53 brands across 5.47 million queries and 2.43 billion organic impressions from January 2025 through February 2026, adds two details that matter for this framework. First, AI Overview prevalence is not uniform by query type: it appears on roughly 36% of informational queries but only 8% of commercial and 5% of transactional queries, and it triggers on 95.4% of comparison-style queries and 85.9% of question-format queries. Second, being cited inside the AI Overview is worth something concrete: cited brands see roughly 120% more organic clicks per impression than uncited competitors on the same SERP, even though cited results still click at a lower rate than a normal blue link. That is the commercial case for treating this as a content and schema problem, not just a traffic-loss problem to mourn.
The 4-Signal AI Overview Exposure Score
The goal is to separate queries that lost clicks because you got outranked from queries that lost clicks because Google answered the question before the user reached your page. Four signals, pulled straight from the API’s date, query, page, clicks, impressions, CTR, and position fields, do most of the separating work.
Compare two trailing 90-day windows for the same query set. Flag any query where impressions are flat or rising (within a -5% to +100% band) while clicks fell by 20% or more. Rising visibility with falling clicks is the core signature: you are still being surfaced, just not being clicked.
Build a simple expected-CTR-by-position curve from the site’s own non-flagged queries at each position band, then flag queries where actual CTR sits 30% or more below that internal baseline. Using the site’s own historical curve avoids importing someone else’s benchmark and controls for niche and brand effects.
Flag only queries where average position moved by less than 1.0 between the two windows. This is the filter that rules out “you actually got outranked,” which is a different fix (content depth, links, technical) than an AI Overview problem.
Score the query text against the formats Seer’s data shows are most AI-Overview-prone: comparison phrasing (“vs,” “best,” “alternatives”), question format (“how,” “what,” “why,” “does”), and single-fact informational intent. Commercial and transactional queries score lower here even if they pass signals 1 through 3.
A query that trips all four signals gets an Exposure Score of 4 out of 4, meaning the click loss is very likely AI Overview cannibalization rather than a ranking or technical problem. A query that only trips one or two signals probably has a different root cause worth investigating separately.
Running the pull with Claude Code CLI
The mechanics are straightforward once the scoring logic is defined. The workflow: authenticate a Google Cloud service account against the Search Console API, pull two 90-day windows of query-level data (date, query, page, clicks, impressions, CTR, position) with pagination past the 25,000-row cap, then hand both extracts to Claude Code CLI to join, compute the deltas, build the position-band CTR baseline, and score every query against the four signals.
What makes the CLI genuinely useful here is not the API call itself (any script can do that); it is the second half of the loop. Once the raw rows are pulled, you can ask direct questions in plain language and get back a filtered, scored table instead of a spreadsheet you have to pivot by hand: “which queries have impressions up double digits and clicks down at least 20%, sorted by lost click volume” or “recompute the position-band baseline excluding queries with fewer than 50 impressions.” That loop, ask a specific investigative question against real data and get a scoped answer back, is the same pattern behind the BigQuery and GA4 workflows linked above. It is a genuinely repeatable capability for any team with API access and a service account, not a one-off script.
Illustrative output: what a scored query table looks like
Illustrative Example, Not Real Client Data — invented figures for demonstration only.
In this invented example, the informational and comparison queries score high (both a rising position and a rising exposure score) while the transactional query at the bottom actually grew, matching the pattern the Seer Interactive data describes: commercial and transactional intent is far less likely to trigger an AI Overview in the first place.
What to do with a high-exposure query list
A scored list is only useful if it changes what the content team does next. For queries scoring 3 or 4:
- Add direct-answer structure near the top of the page. A concise, self-contained answer in the first 100 words gives an AI Overview something extractable that still names your brand and links back, rather than synthesizing an answer from a paragraph buried lower on the page.
- Tighten FAQPage and HowTo schema around the exact question phrasing showing up in the query data, not a generic version of the topic.
- Build genuine entity clarity (consistent naming, clear authorship, structured comparisons) so that if you are going to be summarized instead of clicked, you are at least the source the summary cites. Given the roughly 120% click lift Seer’s data associates with being the cited source, this is the difference between losing the click entirely and losing it but staying visible.
This is also where the discipline connects back to structured technical work rather than just content tweaks. Our team builds this kind of query-level monitoring and the underlying schema and entity fixes as a standing part of custom analytics MCP and API implementations, so the scoring pipeline runs on a schedule instead of as a one-time audit.
Where this does not replace your existing tools
This workflow is a diagnostic layer, not a replacement for a rank tracker, a BI stack, or Search Console itself. It cannot tell you definitively that a specific SERP showed an AI Overview on a specific day (that requires SERP-tracking tools that capture the actual rendered result); it infers likelihood from the click and impression pattern. It also inherits Search Console’s own data quality quirks: query data is anonymized below a minimum threshold, and very low-volume queries will be noisy no matter how the signals are weighted. Treat a 4/4 score as a strong lead worth a manual SERP check, not a certainty.
If you want a read on how exposed your own query set is before building this out internally, MV3’s GEO audit includes a Search Console pull and citation-visibility check as part of the baseline, so you have a starting Exposure Score instead of guessing.
Frequently Asked Questions
What is the Google Search Console API used for?
The Search Console API lets you pull the same query, page, click, impression, CTR, and position data shown in the Performance report programmatically, without the UI’s 1,000-row export limit. Google’s official documentation caps each request at 25,000 rows and supports the date, page, query, searchAppearance, device, and country dimensions.
How do you pull Search Console data with Python or a CLI tool?
You authenticate a Google Cloud service account with access to the property in Search Console, then call the searchanalytics.query endpoint (via the Google API Python client or a direct REST call) with a start date, end date, and the dimensions you want. Pagination is required past 25,000 rows using the startRow parameter. From there, a tool like Claude Code CLI can ingest the raw export and run the joins and scoring logic described above without a manual spreadsheet step.
What is zero-click search?
Zero-click search describes a search result where the user’s need is satisfied directly on the search results page, whether through an AI Overview, a featured snippet, or a knowledge panel, without a click to any website. It has grown alongside AI Overview rollout, and Pew Research Center’s 2025 tracking data found session abandonment (no click to any result) at 26% when an AI summary appeared, versus 16% without one.
How much have AI Overviews reduced organic click-through rates?
Pew Research Center found the traditional-result click rate drops from 15% to 8% when an AI summary is present. Seer Interactive’s longer-running study of 5.47 million queries found organic CTR on AI-Overview-present queries bottomed out near 1.3% in December 2025 before climbing to roughly 2.4% by February 2026, still well below the 3.16% to 3.82% range seen on non-AI-Overview queries over the same period. The size of the drop varies significantly by query type, with informational and comparison queries affected far more than commercial or transactional ones.
Does this replace Search Console’s own reports or a dedicated rank tracker?
No. It is a diagnostic layer built on the same underlying data, useful for triaging thousands of queries at once to find where to look manually. A dedicated rank tracker or SERP-monitoring tool is still the right way to confirm whether a specific query actually shows an AI Overview on a given day.
What is the row limit for the Search Console API, and how far back does the data go?
Each API request returns up to 25,000 rows, so larger properties need to paginate. Search Console retains approximately 16 months of historical performance data, which sets the outer bound on how far back a trend comparison like this can reach.
Share this article
Ready to audit your organic growth opportunity?
$2,500 flat. 5 business days. Six deliverables tied to pipeline , not rankings. No retainer required.
Get the Organic Growth Audit →