How to measure SEO: KPIs vs diagnostic metrics, engine data vs sampled tools, what Google, Bing and GA4 report on AI search, and how to test a change.
How this guide was made: researched and drafted by SERP Agent, Instruware's AI writing agent, then reviewed, edited and approved by Alex.

Measuring SEO means tracking whether organic search, including AI answers, brings in business results, and reading search data to explain why those results moved.
Every SEO number sits on one of three levels:
Google Search Console and Bing Webmaster Tools report what happens up to the click. The site's own analytics, such as Google Analytics 4 (GA4), reports what happens after it.
To measure SEO, decide first which business results organic search should bring in, such as sales or leads, and track those. Then work back through the visits and the search visibility behind them, because that is where you find out why a result went up or down.
Each number also has a source that sets how far to trust it. What an engine or the site's own analytics reports says what happened; what a tool checks from outside says roughly where a site stands; only a controlled comparison says what a change caused.
A site "SEO score" from a checker tool is something else. It grades pages against the tool's own checklist, which makes it an audit, not a measure of results.
AI search added numbers that didn't exist before 2026, such as AI Overview impressions in Search Console, citations in Bing Webmaster Tools and an AI Assistant channel in GA4. It also made some clicks harder to see.
SEO KPIs (key performance indicators) are the few outcome numbers that say whether search is paying off, such as conversions and revenue from organic search; every other SEO metric is a diagnostic that explains why those KPIs moved.
The split between outcome KPIs and diagnostic metrics is our framing, not an industry standard. In the table's "Kind of data" column, first-party means reported by an engine or the site's own analytics, and sampled means checked from outside by a tool.
| Metric | Level | Role | Where it comes from | Kind of data |
|---|---|---|---|---|
| Conversions from Organic Search (GA4 calls them key events) | Results | Outcome KPI | GA4 | First-party |
| Revenue or lead value from organic search | Results | Outcome KPI | GA4 or the site's sales system | First-party |
| Conversions from the AI Assistant channel | Results | Outcome KPI | GA4 | First-party |
| Non-branded clicks | Visits | Outcome KPI | Search Console, branded queries filter | First-party |
| Clicks, impressions, click-through rate (CTR) | Visibility and visits | Diagnostic | Search Console Performance report | First-party |
| Sessions from the AI Assistant channel | Visits | Diagnostic | GA4 | First-party |
| Average position | Visibility | Diagnostic | Search Console Performance report | First-party |
| AI Overview and AI Mode impressions | Visibility | Diagnostic | Search Console generative AI performance report | First-party |
| Citations, cited pages, Citation Share (a site's share of all citations for a query) | Visibility | Diagnostic | Bing Webmaster Tools AI Performance | First-party |
| Tracked keyword rankings | Visibility | Diagnostic | Rank trackers | Sampled |
| Mention rate and citation rate in AI answers | Visibility | Diagnostic | AI visibility tools | Sampled |
| Indexed pages, Core Web Vitals | Before visibility | Diagnostic | Search Console | First-party |
| Referring domains | Before visibility | Diagnostic | Link tools | Sampled |
Non-branded clicks count as an outcome here because, in Google's description of non-branded queries, they show how new users find a site "without any initial intent to go to your site".
Vendor scores, such as a tool's visibility score, Domain Authority or an "AI visibility score", are that tool's own estimate of something no engine publishes. In our view they belong with the diagnostics at most, never among the KPIs.
Report a few outcomes, such as conversions and revenue from search, and pair each one with the diagnostics that explain it, like clicks, impressions and position. When an outcome moves, the diagnostics show why; on their own, they aren't goals.
Indexed pages and Core Web Vitals work differently: they're a technical floor to keep clear rather than numbers to grow, and the Technical SEO guide sets out how to check them.
First-party data is what an engine reports about a site's own appearances, or what the site's own analytics records: exact for what it covers, with documented gaps. Sampled data comes from tools that check engines from outside: useful for trends and competitors, never exact.
The dividing test is who collected the number: the engine or the site itself, or a tool from outside. A controlled comparison isn't a third source. It's a way of reading either kind to estimate what a change caused.
Measuring results is a different job from sizing demand. Where search volumes and other keyword data come from is covered in SEO Content Fundamentals.
Numbers an engine or your own analytics report tell you what happened. Numbers a tool collects from outside tell you roughly where you stand. Only a comparison against something that didn't change tells you what a change caused, so know which kind a number is before acting on it.
Search Console counts clicks, impressions, CTR and average position from Google's own data, and Google documents where those counts fall short:
Our takeaway: a baseline has to be built on purpose, over a wider date range than the default, with totals taken from the chart rather than summed from the table rows.
Search Console and Google Analytics never agree exactly: Google says the tools "use different metrics and systems, which means the data won't match completely", and even the closest pair, Search Console clicks and Analytics sessions (visits as Analytics counts them), "are calculated differently".
Five of the eight reasons Google lists, from its page on using the two together:
Google's own advice is to compare the two as trends, not totals: "what's important is that the general trends have the same pattern". Our rule of thumb follows from it: if both move the same way, the movement is real; if only one moves, check tracking first.
A rank tracker reports the position it found when it checked a query from one location and device; Search Console's average position averages a site's topmost position across the searches real people ran. They measure different things, so they rarely agree.
The likely causes are ordinary: results vary by location and person, a tracker checks only the keywords someone chose to track, and Search Console averages only over searches where the site appeared at all.
Each answers its own question. A sampled rank shows competitors' positions and keywords a site doesn't appear for yet. A reported average shows the site's real exposure in Google.
Google's spam policies also cover how ranks are collected. They list "scraping results for rank-checking purposes or other types of automated access to Google Search conducted without express permission" as machine-generated traffic, which they say violates Google's spam policies and Terms of Service.
For position data on Google, then, the first-party alternative is Search Console's average position.
AI visibility tools run sets of prompts through ChatGPT, Google's AI features and other assistants and count how often a brand is mentioned or cited, so their numbers are samples of answers that change from run to run.
The Interactive Advertising Bureau (IAB), an advertising trade body, named the common metrics in guidance released in August 2026: mention rate, citation rate and share of voice, with sentiment under what it calls portrayal.
Share of voice is a site's share of the visibility, mentions or citations across a set of queries or prompts, measured against named competitors. Its value depends on which queries or prompts are in the set.
The answers behind these numbers vary widely. In SparkToro's January 2026 study, 600 volunteers ran 12 prompts through ChatGPT, Claude and Google's AI a combined 2,961 times.
Asked the same prompt again, the tools gave the same list of brands less than once in 100 times, and the same list in the same order less than once in 1,000.
IAB sorts this kind of data into two grades. Directional measurement "Identifies patterns and signals trends" but "is not sufficient for budget allocation or executive strategy decisions".
Decision-grade measurement "Meets a higher standard of rigor across query volume, sample size, prompt type coverage, testing cadence, reproducibility, and platform coverage".
Unless a tool shows how it meets that higher bar, we'd read its numbers as directional: trends across many runs, not a position. A stable "AI ranking" for a prompt doesn't exist to be measured.
No outside tool can see inside Google's ranking or AI systems either, a warning from Google that the AI SEO guide quotes.
Designing prompt sets and tracking mentions and citations over time is the subject of AI Visibility, Mentions & Prompt Monitoring.
As of September 2026, Search Console reports how often a site appears in AI Overviews and AI Mode, but not the clicks or queries behind those appearances. Bing Webmaster Tools reports citations and grounding queries, the searches its AI ran to find the pages it cited.
GA4 separates visits from AI assistants such as ChatGPT, but counts clicks from Google's AI features as Organic Search. No engine reports a site's visibility inside ChatGPT, Perplexity or Claude answers.
Checked September 2026. The last column says whether the data is available through an application programming interface (API), the way software reads it:
| Surface | Impressions | Clicks | Queries | Citations | Where it's reported | API |
|---|---|---|---|---|---|---|
| Google AI Overviews and AI Mode | Yes, by page, country, device and date | Only inside Web totals | Not in the AI report | No | Search Console generative AI performance report | No AI-specific type |
| Generative AI features in Google Discover | Yes, in a separate report | Not covered here | n/a | n/a | Search Console | n/a |
| Clicks from AI Overviews and AI Mode, after the click | n/a | Counted as Organic Search | n/a | n/a | GA4 | As Organic Search |
| AI assistants such as ChatGPT, Gemini, Claude and Copilot | n/a | AI Assistant channel since May 2026; some land in Direct | No | No | GA4 | Yes, as a channel |
| Microsoft Copilot, Bing AI summaries, partners | No | No | Grounding queries, a subset | Citations, cited pages, Citation Share | Bing Webmaster Tools AI Performance | None announced |
| Answers inside ChatGPT, Perplexity, Claude, Gemini | No first-party report | Visits: GA4 AI Assistant channel | n/a | Sampled by tools only | Third-party tools | n/a |
Read Google's AI Overview and AI Mode impressions as their own trend, and count clicks from those features as Google organic, since Google documents no report that splits them out. Visits from ChatGPT and other assistants get their own analytics channel; visibility inside their answers can only be estimated by outside tools.
Search Console counts appearances in Google's AI features as ordinary Web search data, under rules set out on the same Help page that defines impressions:
The position rule has a consequence Google doesn't spell out. When a site's links move into an AI Overview near the top of the page, its average position can hold or improve while its clicks fall, so a better average position isn't proof that SEO is working.
The Search Analytics API, Search Console's API for performance data, lists no AI-specific search type. Our inference: through the API, AI Overview and AI Mode data appears only inside the web totals.
Write-ups from early 2026 say Search Console can't show AI Overviews. It has reported their impressions since June 2026, and Google's announcement adds: "As of August 31, 2026, we've rolled out these insights to all websites worldwide."
The same announcement says Google is still working out what data would help most, "such as adding additional metrics over time", which is why the map carries a date.
Since May 13, 2026, GA4's default channel group, the set of rules that sorts each visit into a channel, has had an AI Assistant channel, with the medium ai-assistant. Google's release note names "chatbots like ChatGPT, Gemini, and Claude".
The channel definitions name ChatGPT, Gemini, Deepseek, Copilot and Grok as example sources, and draw the line that matters. AI Assistant "excludes Google's AI Overviews and AI Mode"; Organic Search covers non-ad search links "including Google's AI Overviews and AI Mode".
Seer Interactive reports three gaps that Google's pages don't state:
A tracking parameter is a tag added to a link so analytics can name its source even when the referrer is missing. OpenAI says ChatGPT "automatically includes the UTM parameter utm_source=chatgpt.com in referral URLs". Seer's testing adds a caveat: being a source "does not guarantee UTMs will always be included".
The native channel means a custom channel group, rules a site writes itself to sort AI visits, no longer has to be built from scratch. Seer still keeps one alongside it, to compare with older data and to "catch any platforms or edge cases Google's native channel doesn't yet recognize".
What no channel group can do, in our reading, is pull AI Overview or AI Mode clicks out of Organic Search: GA4 receives them as ordinary Google organic visits.
Bing's AI Performance report, in public preview since February 10, 2026, covers "Microsoft Copilot, AI-generated summaries in Bing, and select partner integrations".
It reports total citations, average cited pages, page-level citation activity and grounding queries, shown for a subset of citation activity rather than all of it. Bing's help page is explicit that a citation "does not represent traffic, clicks, or user engagement".
A June 16, 2026 update, "beginning to roll out in preview", adds intents, topics, a comparison with an earlier period and Citation Share.
Bing defines Citation Share as "the percentage of citations attributed to your site out of all citations shown across all sites for that same grounding query", and the report "does not expose competitor domains".
Bing frames it as "a more directional view" of visibility over time, "not a ranking system or a competitive scoreboard". It's the only first-party AI share metric we found, and Microsoft hasn't announced an API for AI Performance.
A before-and-after comparison shows that numbers moved, not why: seasons, Google's ranking updates and shifts in demand move them too. Only a comparison against pages that didn't change, or a forecast of what would have happened without the change, estimates what the change itself did.
The checks before crediting a change, the first three from Google's guide to debugging traffic drops and the rest our additions:
Search Console's custom annotations, added in November 2025, put that log next to the data: a note of up to 120 characters on the performance chart, visible to everyone with access to the property.
When a change needs more than a careful read, there are three ways to measure it:
| Method | What gets split | What it measures | How it works | Source |
|---|---|---|---|---|
| User A/B test (conversion testing) | Visitors, between page versions | What visitors do on the page | No cloaking, rel="canonical" on variant URLs, 302 redirects, "Run the experiment only as long as necessary" | Google Search Central |
| SEO split test | Similar pages, into control and variant groups | Organic traffic to the changed pages | Changes only the variant group and forecasts its traffic from the control group | SearchPilot, a vendor describing its own method |
| Forecast-based read of one change | Nothing; uses data the change didn't touch | The change's effect on traffic | Forecasts what traffic would have been without the change, then compares | Brodersen et al., Google, 2015, the method behind CausalImpact |
Google's testing rules, such as not cloaking (showing search engines different content from what people see), exist so that user tests don't hurt rankings. They don't describe how to measure an SEO change.
When a test is worth it, in our judgment: for changes rolled out across many similar pages, such as a template or a title pattern, with enough traffic to compare groups. A one-off edit to a single page gets an annotation and the checks before crediting a change, and shouldn't be called a test.
A rise after a change shows movement, not cause. Cause needs a comparison: similar pages left unchanged, or a forecast of what would have happened anyway.
Whether SEO is worth it for a site is a calculation: return on investment (ROI) is the value organic search brings in, minus what it costs, divided by what it costs. The value side is undercounted in predictable ways.
The cost side includes people, tools and content. The formula is ordinary arithmetic; Semrush's ROI guide uses it with revenue as the value, so $5,000 of revenue on $2,000 of cost is an ROI of 150%.
What the value side misses:
Seer's advice for AI referral numbers fits the whole value side: treat them as "a directional floor rather than a precise count".
Vendors publish multipliers for what AI visitors are worth; Semrush's KPI guide, for one, reports its own research finding the average AI search visitor "4.4 times as valuable" as a traditional organic one, based on conversion rate.
Our advice is to compare conversion rate by channel in the site's own GA4 data instead of borrowing a figure measured on other sites.
A measurement plan names the outcome KPIs, records a baseline from first-party data, logs the AI search reports on a fixed schedule, and keeps a change log, so every later movement can be read against something.
Some steps are data work, with repeatable inputs and outputs: pulling reports, splitting them, logging values. Others are judgment calls about the business and about cause.
The split and the step order are our proposed method, not a published one. The order runs from what matters to the business, through the data, to reading changes.
The plan's main output is one table. Every value in the row below is illustrative:
| KPI or metric | Definition | Source | First-party or sampled | Baseline | Where it's logged |
|---|---|---|---|---|---|
| Non-branded clicks | Clicks on queries the branded filter marks non-branded | Search Console | First-party | Monthly values for the last 16 months, dated | Baseline table |
The fourth column is the rule the plan enforces. Every number carries where it came from, so nobody reads a tool's sample as a count, or a before-and-after move as proof of what a change did.
Turning the plan's numbers into dashboards and reports for people outside SEO is the subject of AI SEO Reporting.
Running this plan on a real site, with its own data, is separate work.
Sourced claims:
utm_source=chatgpt.com tag, keeping a custom channel group, and "a directional floor".utm_source=chatgpt.com to referral URLs.Argued, not sourced (this guide's reasoning from the sources above):