Most SEO reporting fails in one of two ways. It reports too little, a traffic chart and some rankings, so leadership cannot tell whether search earns its budget. Or it reports too much, forty metrics on a dashboard that nobody reads, with the one number that matters lost among them. Both come from the same gap: nobody decided what search was supposed to achieve for this business before the tools were configured.
This guide works from that decision outwards. It starts with outcomes by business model and the indicators that lead to them, then goes through each source of data in turn: Google Search Console in depth, Bing Webmaster Tools and Microsoft Clarity, GA4 and the effect of consent rules on it, AI referral traffic, rank tracking and AI visibility tracking. It finishes with attribution and pipeline for B2B, forecasting, reporting to leadership, and how to say what cannot be measured. Each chapter covers what the data means, how to set it up, and how to check it is right. If you are here because traffic fell, the traffic drop tutorial is the faster route; it uses the same reports in a different order.
The measurement stack for search
- 01
Outcomes
What the business counts as a result: revenue, qualified leads, pipeline, subscribers or audience.
- Ecommerce revenue
- Qualified enquiries
- Pipeline and revenue
- Audience and subscribers
- 02
On-site behaviour
What visitors from search did once they arrived: landing pages, key events, conversion rates.
- GA4
- Matomo
- Plausible
- Clarity
- 03
Search engine data
What happened on the results page before the visit: impressions, clicks, queries, position, citations in AI answers.
- Search Console
- Bing Webmaster Tools
- 04
Sampled visibility
What a results page or an assistant tends to show for chosen keywords and prompts, measured by your own tests or a tool.
- Rank tracker
- AI visibility tracker
- Manual prompt tests
- 05
Business systems
Whether the lead became a customer, and what they were worth.
- CRM
- Ecommerce platform
- Call tracking
Deciding what SEO should be measured on
The first question is what the business earns from search, and it has a different answer for each business model. Agree it in writing with whoever signs off the budget, before any dashboard is built. Once the outcome is agreed, every other metric in the report earns its place by explaining that outcome.
| Business model | Primary outcome | Supporting measures | Common trap |
|---|---|---|---|
| Ecommerce | Revenue and orders from organic landing sessions, by category and product template | Non-branded clicks to category and product pages, add-to-basket rate, indexed product coverage | Crediting SEO with branded revenue that the brand would have earned anyway |
| Lead generation and services | Qualified enquiries (forms and calls) from organic, and the share that become customers | Non-branded clicks to service and location pages, enquiry rate by landing page | Counting every form fill, including spam and job applications, as a lead |
| Local multi-location | Enquiries, calls and direction requests per branch | Business Profile actions per location, local pack visibility by branch | Reporting the total so that failing branches hide behind strong ones |
| B2B SaaS | Signups, demo requests, opportunities and pipeline value from organic | Non-branded clicks to product, comparison and integration pages | Reporting blog traffic as if it were pipeline |
| Publisher or media | Engaged audience, subscribers and ad or affiliate revenue | Clicks from Search, Discover and News, return visitors | Chasing pageviews from queries that do not build an audience |
Multi-location businesses need one extra rule: report per location as well as in total. A group total can rise while several branches fall, and the branches that fall are the ones that need attention. I have written about why multi-location reporting hides failing branches and how to set the report up so it cannot.
How useful each measure is as a headline, by business model
| Ecommerce | Lead gen | B2B SaaS | Publisher | |
|---|---|---|---|---|
| Total organic sessionsAn input, and inflated by branded demand. | ||||
| Non-branded clicksThe clearest sign of SEO work landing, before revenue follows. | ||||
| Organic key eventsClose to the outcome for lead generation; one step short for SaaS. | ||||
| Organic revenue or pipelineThe outcome itself where it can be joined up. | ||||
| Average positionUseful for diagnosis, misleading as a headline. |
Detail only Fair headline Best in the row
Write the measurement plan down
Leading and lagging indicators, and how long each takes to move
Outcomes are lagging indicators. Revenue from a page that started ranking this month may not arrive for a quarter, and in B2B the deal may close a year later. Leading indicators move earlier and tell you whether the work is on track before the outcome can. A good report carries both, and labels which is which, so nobody judges a three-month-old project on revenue alone or a three-year-old one on impressions alone.
How soon each indicator responds to SEO work
- Crawling and indexingCrawling and indexing: 8 percent of the way from Moves first to Moves last.
- ImpressionsImpressions: 25 percent of the way from Moves first to Moves last.
- Average position on target queriesAverage position on target queries: 38 percent of the way from Moves first to Moves last.
- Non-branded clicksNon-branded clicks: 50 percent of the way from Moves first to Moves last.
- Key events and enquiriesKey events and enquiries: 68 percent of the way from Moves first to Moves last.
- Revenue and pipelineRevenue and pipeline: 85 percent of the way from Moves first to Moves last.
- Branded search demandBranded search demand: 95 percent of the way from Moves first to Moves last.
Hover a row for the main thing that goes wrong.
Two cautions about leading indicators. First, impressions can rise for reasons that have nothing to do with value: a page starting to appear in position 60 for thousands of loosely related queries adds impressions and no clicks. Read impressions alongside clicks and position. Second, a leading indicator only earns its place if it has, at some point, been shown to lead to the outcome on this site. If non-branded clicks to the blog have doubled for a year without any effect on enquiries, they are not a leading indicator for this business, however good they look.
Google Search Console: what the Performance report actually counts
Search Console is the only source of query and impression data from Google Search. Everything else, from rank trackers to keyword tools, estimates what Search Console measures. Its definitions are precise, and most misreadings come from not knowing them.
| Metric | Definition | What catches people out |
|---|---|---|
| Clicks | The number of times a user clicked through to your site from Google Search results.3 | Clicks from AI Overviews and AI Mode are included in the Web search type alongside ordinary results.4 |
| Impressions | How many times your site appeared in Search results.3 | An impression does not mean the result was seen: a result far down the page still counts. |
| CTR | Clicks divided by impressions.3 | Site-wide CTR mixes branded queries (high CTR) with non-branded ones (low CTR), so it moves when the mix moves. |
| Average position | The average position of the topmost result from your site.3 | An average across every query and impression. One new low-ranking query can pull it down while every important ranking holds. |
By property and by page
The chart and the table do not always aggregate the same way. Chart totals are aggregated by property, so two results from your site on the same page count as one impression. In the table, queries, countries, devices and dates are aggregated by property, while pages and search appearance are aggregated by page.3 That is why the clicks in a table grouped by page can add up to more than the chart total. Neither number is wrong; they count different things.
Freshness and time zones
The newest data is preliminary and may still change, and the chart marks it with a dotted line.3 Days are reported in Pacific Time, while GA4 uses the time zone set on the property.5 Do not judge a change on the last two days of data, and do not expect daily figures in the two tools to line up exactly. The API offers an hourly breakdown through the dataState value hourly_all, with partial data, for anyone who needs to watch the first hours after a release.6
Why Search Console clicks and analytics sessions never match
The two tools measure different events. A Search Console click happens on the results page; an analytics session happens on the site. They diverge because the analytics tag may not be installed or firing on every page, visitors can decline tracking, the time zones differ, analytics uses an attribution model where Search Console counts every click, Search Console reports clicks against the canonical URL while analytics records the URL that carried the tag, and Search Console includes files such as PDFs that analytics may not track.5 A steady gap between the two is normal. A gap that changes suddenly usually means something changed in tracking, not in search.
Filters, regex and the branded split in Search Console
Filtering is where the Performance report earns its keep. A site-wide total hides almost everything; the same data filtered by page group, query type, country and device shows where change actually happened.
Regular expression filters
Query and page filters accept a custom regular expression. The syntax is RE2, matching is partial (an expression matches anywhere in the string unless anchored with ^ or $), and it is not case-sensitive unless you start the expression with (?-i).7 To exclude a pattern, choose Doesn’t match regex. The comparison mode compares two values of one dimension, and only one comparison is possible at a time.7
# Query filter: question-style queries
^(how|what|why|when|which|can|does|is|should)\b
# Query filter: commercial modifiers
(price|cost|quote|near me|best|vs|alternative|review)
# Page filter: product pages, excluding parameter URLs
/products/[^?]*$
# Page filter: blog and guides sections together
/(blog|guides)/
# Query filter: branded terms and common misspellings
(hartley|hartly|hartely)\s*(plumbing|heating)?Search Console also has an experimental assistant that sets filters, comparisons and metrics from a typed request. It is limited to 20 requests per day, cannot sort or export, and may produce filters that do not match what you asked for, so the filters it applies should always be checked.7 It is a quick way to set up a view; it is not a substitute for knowing what the filter does.
Separating branded from non-branded queries
Branded queries (people looking for you by name) and non-branded queries (people looking for what you sell) respond to different things. Branded demand follows advertising, PR, word of mouth and the size of the customer base. Non-branded demand is where SEO work shows. Report them together and a busy marketing quarter can make SEO look better than it is, or a quiet one can hide real progress.
Search Console’s branded queries filter makes the split for you. It uses an AI-assisted system that includes brand names in all languages, typos, and queries about a product or service unique to the site, and Google’s announcement accepts that some queries may be misidentified.8 It is only available for top-level properties,8 it is not available for sites with a low number of impressions, and its history starts from March 2025.9 Where it is not available, or where you want control over the definition, build the split with a regex query filter of your brand terms and switch between Matches regex and Doesn’t match regex.
Write a branded query regex
Fill in the parts in brackets before you send it
Whichever method you use, the branded and non-branded figures will not add up to the total, for the reason in the next chapter. Write the method into the report so the gap is expected.
Anonymised queries, row limits, the API and BigQuery export
Search Console does not show every query. Queries issued by too few users are anonymised to protect privacy and left out of the query rows, though their clicks and impressions are still counted in the chart totals.10 When any query filter is applied, anonymised queries are omitted from the totals as well, so the sum of “contains brand” and “does not contain brand” will be less than the unfiltered total.10 On a specialist B2B site, where most queries are rare, the anonymised share can be large. Beyond anonymised queries, Search Console stores and shows only the most important rows, so the table is not a complete list.9
Where Search Console data goes missing
All searches
Every search on Google in which your site appeared. Not available to anyone outside Google.
Choosing an export route
| Route | Limit | Best for |
|---|---|---|
| Interface export | Up to 1,000 rows per table10 | Small sites, daily totals, one-off checks |
| Search Analytics API | Up to 25,000 rows per request, paged; top rows only, not guaranteed complete.6 A daily cap of 50,000 rows per site per search type was described in 2022.10 | Medium sites, scripted monthly pulls, spreadsheets |
| Bulk data export to BigQuery | All performance data except anonymised queries11; collects only from the day it starts12 | Large sites, long histories, joining with other data |
Search Console keeps a limited history in the interface, so a business that wants year-on-year comparisons beyond that window has to store the data itself. The bulk export is the cleanest way. It writes two main tables: searchdata_site_impression, aggregated by property, and searchdata_url_impression, aggregated by URL.13 Each row carries an is_anonymized_query flag, and where it is true the query field is null.13 Position is stored as a sum of zero-based topmost positions, so average position is SUM(sum_top_position) divided by SUM(impressions), plus one.13
-- Replace the dataset name and the brand pattern with your own.
SELECT
FORMAT_DATE('%Y-%m', data_date) AS month,
CASE
WHEN is_anonymized_query THEN 'anonymised'
WHEN REGEXP_CONTAINS(LOWER(query), r'(hartley|hartly)') THEN 'branded'
ELSE 'non-branded'
END AS query_type,
SUM(clicks) AS clicks,
SUM(impressions) AS impressions,
ROUND(SUM(sum_top_position) / SUM(impressions) + 1, 1) AS avg_position
FROM `my-project.searchconsole.searchdata_site_impression`
WHERE search_type = 'WEB'
AND data_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 13 MONTH)
GROUP BY month, query_type
ORDER BY month, query_type;Keeping anonymised queries as their own row is deliberate. It shows the reader how much of the total cannot be classified, which is more honest than quietly dropping it. If the anonymised share is large, say so in the report and treat the branded split as an estimate.
AI features in Search Console: the Generative AI performance report
Clicks from AI Overviews and AI Mode are counted in the main Performance report under the Web search type, mixed in with ordinary results.4 There is no filter that separates them. The separate Generative AI performance report covers what the main report cannot: how often links to your site appear inside those features.
- It reports impressions only, defined as the number of times links to your site were shown to a user in a generative AI feature on Google Search. There is no clicks metric.14
- It covers AI Overviews and AI Mode, and data can be grouped by page (the final URL linked), country, date and device.14
- It rolled out to all websites worldwide by 31 August 2026, but a site that has not had enough impressions in these features may see no data, and experiments in Search Labs are not included.14
Read it alongside the main report. If clicks to a set of pages fell while their AI feature impressions rose, the pages are being shown inside AI answers and fewer people are clicking through. If AI feature impressions are flat or absent while clicks fell, the cause is more likely elsewhere. The report cannot tell you which queries triggered the impressions or how prominent the link was, so treat it as a measure of presence.
What independent studies say about clicks when AI Overviews appear
Several studies have tried to measure the effect of AI Overviews on clicks, with different methods and different results. Seer Interactive measured 3,119 informational queries across 42 client organisations from June 2024 to September 2025. Organic CTR on queries with an AI Overview fell from 1.76% to 0.61%, but CTR on queries without one also fell, from 2.74% to 1.62%, so not all of the decline belongs to the Overview. Seer also found that brands cited in an Overview had higher organic CTR than those that were not, and states plainly that it cannot prove the citation causes it.15 Ahrefs compared Search Console data for 300,000 keywords, half with AI Overviews, between December 2023 and December 2025, and found the presence of an Overview correlated with a 58% lower average CTR for the top-ranking page.16 Ahrefs measured a correlation across its sample, and Seer’s data covers informational queries; neither measures the effect on your site.
Use studies like these to judge whether a pattern in your own data is unusual, never to forecast your own numbers. Your own Search Console data, filtered to the affected pages and compared year on year, is the evidence that matters for your site.
Bing Webmaster Tools, its AI Performance report and Microsoft Clarity
Bing’s share of search is smaller than Google’s in most markets, but Bing Webmaster Tools is worth setting up for two reasons. Its Search Performance report is a useful cross-check when Google traffic moves, and its AI Performance report covers Copilot, which no Google report touches.
Search Performance
The Search Performance report shows clicks, impressions and CTR, with web and chat combined, and keyword and URL detail reported for web only.17 Periods can be compared for clicks, impressions, CTR, keywords and pages.18 In August 2025 Bing extended the history to 24 months and added country and device filters, as reported by PPC Land from the announcement by Bing’s Krishna Madhavan.19 That is a longer history than Search Console’s interface keeps, which makes Bing useful for checking seasonality.
As a rule of thumb, if Bing traffic fell on the same day by a similar share as Google traffic, the cause is more likely on your own site or in demand. If Bing held steady while Google fell, look harder at what changed on Google’s side. That is a heuristic, not a test, and on sites with very little Bing traffic the numbers are too small to compare.
AI Performance
Bing’s AI Performance report, launched in public preview in February 2026, reports citations of your site across Microsoft Copilot, AI-generated summaries in Bing and select partner integrations.20 It shows four things: total citations, the average number of unique pages cited per day, grounding queries (the phrases the AI used when retrieving content it then cited), and citation counts per page.20 Microsoft is clear about the limits. Grounding queries are a sample of overall citation activity, and the report does not indicate ranking, placement or the importance of a page.20
In June 2026 Bing added four features. Intents classify grounding queries into categories such as informational, commercial, navigational and local. Topics group related grounding queries into clusters. Citation share is the percentage of citations attributed to your site out of all citations across all sites for the same grounding query. Compare overlays a previous period on the current one.21 Bing describes citation share as an observational metric, not a ranking system or a competitive scoreboard, and it does not show which other domains were cited or represent traffic share.21
The grounding queries are the most useful part for most sites. They are the closest thing any platform publishes to the searches an assistant runs behind a prompt, and they make good raw material for the prompt sets discussed later in this guide.
Microsoft Clarity
Clarity is Microsoft’s free behaviour analytics tool, best known for session recordings and heatmaps. Two of its features matter here. It classifies sessions from AI platforms into an AIPlatform channel for organic links and a PaidAIPlatform channel for ads, covering ChatGPT, Claude, Copilot, Gemini and Perplexity.22 It counts only visits from the standalone assistant sites, not AI features embedded in search engines or office tools, identifies them from referral patterns, so a hidden source may appear as Direct, and does not reclassify data from before the feature was released.22 Its AI Citations dashboard, introduced in February 2026, draws on Bing Webmaster Tools data to show cited queries, citation rate and cited pages, and Microsoft describes it as built for trend analysis, not precise accounting of individual answers, with very low volumes possibly excluded.23
Analytics: organic channels, landing pages and key events in GA4
Search engine data stops at the click. Analytics takes over from the landing page: what visitors from search did, and whether they did the things the business counts. GA4 is the default for most sites, so this chapter uses its terms, but the same principles apply to any analytics tool.
How GA4 decides a visit is organic
GA4 assigns every session to a channel using rules. Organic Search matches when the source is on GA4’s list of search sites or the medium is exactly “organic”.24 Direct matches when the source is “(direct)” and the medium is “(not set)” or “(none)”. Referral matches when the medium is “referral”, “app” or “link”. AI Assistant matches when the medium is “ai-assistant”, which GA4 sets automatically when the referrer matches its list of AI assistants.24 Two things follow. Any UTM tag with utm_medium=organic on a link you control will be counted as organic search, so do not use that medium on links from emails or social posts. And the default channel group cannot tell Google organic from Bing organic: switch the dimension to Session source / medium to see each engine.
Landing pages are the unit of SEO analysis
The Landing page report sits under Reports, Engagement, Landing page, and the Landing page dimension is the page path and query string of the first pageview in a session.25 Add a filter for the Organic Search channel, or add Session default channel group as a secondary dimension, and you have organic sessions and key events by the page people entered on. That is the view that connects SEO work, which happens page by page, to outcomes.
Individual URLs rarely carry enough traffic to read on their own. Group landing pages by template or purpose (category, product, service, location, comparison, blog) using URL patterns, and report every metric by group. A migration, a template change or a core update usually affects one group, and a group-level report shows it in a way a site total never will. The SaaS pipeline post shows landing page groups for a SaaS site.
Key events
Key events are events that measure an action particularly important to the success of the business.26 Mark only the events that match the outcome agreed in the measurement plan: a purchase, a qualified form submission, a call click, a demo request. A long list of key events makes every report harder to read and lets a trivial action (a PDF download, a video play) inflate the conversion rate. Track those as ordinary events instead.
Consent and what it does to analytics data under UK rules
Consent rules decide how much of your traffic analytics can see, and the effect on SEO reporting is often larger than any ranking change. This chapter is about measurement, not legal advice. Whether a particular setup is lawful depends on the country, the tool and how it is configured, and the guidance here is for the UK. Other countries, including EU member states, have their own rules, so check with whoever owns data protection.
The UK statistical purposes exception
UK rules on cookies and similar technologies (PECR) changed after the Data (Use and Access) Act 2025, and the ICO’s guidance on storage and access technologies, last updated in April 2026, now includes a statistical purposes exception.27 It allows storage or access without consent where the sole purpose is to collect statistical information about how the service is used with a view to improving it. The organisation must give clear and comprehensive information about the purpose and a simple, free means of objecting, and must stop if someone objects. The information collected can only be shared with others to help improve the service or website.28
The exception has firm limits. The ICO’s guidance says it does not cover tracking or monitoring individual visitors, online advertising, profiling users, or cross-site and cross-device tracking.28 A standard GA4 setup linked to advertising products, or a cookie that stores one visitor’s source so it can be attached to their CRM record, is unlikely to fit within it. Whether your configuration does is a question for whoever owns privacy compliance, not for the SEO report.
Consent mode and modelled data
Where consent is collected, Google’s consent mode lets tags adjust to the visitor’s choice. In the basic implementation, Google tags are blocked until the visitor consents, so nothing is recorded for people who decline. In the advanced implementation, tags load before the banner and send cookieless pings when consent is denied; no analytics cookies are set or read, and GA4 can use the pings for behavioural and conversion modelling to fill gaps.29 Modelled figures are estimates. They can change the shape of a trend, and they are not the same as observed visits.
| Setup | What GA4 records for visitors who decline | What it means for SEO reporting |
|---|---|---|
| No banner, analytics always on | Everything | Complete data, and a compliance question to settle before relying on it |
| Consent mode, basic | Nothing29 | Organic sessions undercounted by the share of visitors who decline |
| Consent mode, advanced | Cookieless pings, used for modelling29 | Totals partly modelled; trends smoother, single days less reliable |
| Banner added or changed mid-year | Depends on the new setup | A step change in recorded sessions that has nothing to do with search |
Search Console is unaffected by any of this, because it counts clicks on Google’s side. That makes it the best check: if organic sessions in GA4 fell sharply on the day a consent banner changed while Search Console clicks held steady, the drop is in measurement, not traffic. Annotate the date and say so in the report.
Privacy-focused alternatives
Some businesses use analytics tools designed to collect less, such as Plausible or a self-hosted Matomo, sometimes alongside GA4. Both classify AI assistant traffic as its own channel: Plausible has an AI Assistants channel for sources such as ChatGPT, Claude, Perplexity, Gemini and Copilot,30 and Matomo groups visits from ChatGPT, Claude, Gemini, Copilot, Perplexity and others under AI Assistants.31 Whether either tool, configured your way, can run without consent under UK rules is again a question for your privacy owner. What matters for measurement is that the tool you choose is configured once, documented, and left alone, because every change to tracking breaks the trend line.
AI referral traffic: how it shows up and what goes missing
Visits from ChatGPT, Perplexity, Copilot, Claude and Gemini reach analytics in several different ways, and only some of them can be labelled as coming from an assistant. Analytics tools identify assistant traffic from the referrer or from tags in the URL. When neither survives the trip to your site, the visit looks like any other direct visit.
Where a visit from an AI assistant ends up in analytics
- GA4: AI Assistant channel, or Referral from the assistant’s domain
- Clarity: AIPlatform channel
- Plausible and Matomo: AI Assistants
- Counted as Direct
- App, privacy setting or referrer policy removed it
- Cannot be recovered after the fact
- Google AI Overviews and AI Mode: Google organic
- Not separable in Search Console or GA4
- The person read the answer and later searched the brand, called or visited
- Shows up, if anywhere, as branded search or direct
What the tools see when the referrer survives
GA4’s default channel group now has an AI Assistant channel, assigned when the referrer matches GA4’s list of assistants.24 Seer Interactive’s testing, updated in June 2026 by Jonathan Wehausen, dates the native channel to May 2026 and describes it as a floor: it only catches sessions where the referral information makes it through. In Seer’s tests, ChatGPT visits that carried a tag or referrer appeared with chatgpt.com as the source, Gemini, Perplexity and Claude visits appeared as referrals from their domains, and ChatGPT visits with neither were reported as Direct.32 Clarity, Plausible and Matomo each have their own AI channel, and Matomo’s documentation states the limit directly: AI assistant referrals can only be attributed when referrer information is available.31
Why some of it goes missing
Browsers send no referrer when a page or link uses the no-referrer policy,33 and clicks from emails, documents, messaging apps and mobile apps often arrive without one.30 Assistants used in their mobile apps, links copied from an answer and pasted into a browser, and people who read an answer and type the address themselves all arrive without a referrer. None of that can be recovered later. The size of the gap is unknown and varies by site and audience, so be wary of any “true” AI traffic figure that claims to fill it.
A common rough check is to compare Direct traffic to deep pages, the ones nobody types from memory such as a specific guide or product, with the period before. A rise in Direct sessions landing on deep pages, with no campaign or offline activity to explain it, is consistent with untagged referrals from assistants or apps. It is circumstantial, and I would report it as a possibility, never as AI traffic.
Making AI traffic visible in your own reports
If your GA4 property predates the AI Assistant channel or you need a definition you control, create a custom channel group with an AI channel above Referral, matched on the session source with a regular expression of assistant domains. Place it above Referral, because traffic is included in the first channel whose definition it matches, in the order the channels are listed.34 Keep the list in one place and review it every quarter, because new assistants and domains appear.
^(.*\.)?(chatgpt\.com|chat\.openai\.com|perplexity\.ai|copilot\.microsoft\.com|gemini\.google\.com|claude\.ai|chat\.mistral\.ai|meta\.ai|you\.com)$Where you control the link, tag it. GA4’s campaign URL guidance is to always set utm_source, utm_medium and utm_campaign, to use one consistent medium per channel, and to keep values lowercase.35 You cannot tag the links an assistant writes, but you can tag links in your own content that assistants are likely to quote, such as a link in a press release or a partner listing, so the visit carries its origin even if the referrer is lost. Do not tag internal links on your own site: a UTM tag on an internal link starts a new session and overwrites the real source.
Audit how a GA4 property classifies search and AI traffic
Fill in the parts in brackets before you send it
Rank tracking and AI visibility tracking, and their limits
Both kinds of tracking sample what a results page or an assistant shows for chosen queries, from chosen places, at chosen times. Both are useful when read as samples and misleading when read as counts.
Rank tracking
A rank tracker runs a fixed list of keywords from a fixed location and device, usually unpersonalised, and records where your pages appear. Real results vary with the searcher’s location, past search history and search settings,36 so no tracked position is the position every customer saw. Local results vary most of all, often street by street. Results pages also carry more than ten blue links: AI Overviews, map packs, product grids and video carousels push a “position 3” result a long way down the screen on some queries and not others.
Search Console’s average position is a different measure again: the topmost position of your site averaged over every impression, for every searcher, in every location.3 It is real data, but an average across very different situations. The two numbers will disagree, and both are right about what they measure.
- Use a tracker for diagnosis and for competitor comparison on a fixed keyword set, not as the headline of a report.
- Track keyword groups that match landing page groups, and read visibility for the group, not individual keyword positions.
- Record the location, device and date of every tracked result, and keep them constant. A changed location setting looks exactly like a ranking change.
- Track the features on the page as well as the position, so you can see when an AI Overview or a map pack appeared above you.
- Check tracked trends against Search Console impressions and clicks for the same queries. When they disagree, believe Search Console about what happened and use the tracker to work out why.
AI visibility tracking
AI visibility trackers send a set of prompts to assistants, repeatedly, and record which brands and sources each answer names. The variation between runs is large. SparkToro’s study, published in January 2026, had 600 volunteers run 12 prompts through ChatGPT, Claude and Google’s AI a combined 2,961 times in November and December 2025. The same list of brands in the same order came up fewer than once in 1,000 runs, and SparkToro concluded that ranking positions in AI answers are not to be trusted, while visibility percentage across dozens to hundreds of prompts run several times is a reasonable metric.37 Microsoft’s Clarity team makes the complementary point: simulated prompts show what an assistant could say, not what it did say to real users, and identical prompts sent minutes apart can produce different citations.38
Reading tracking data without over-reading it
- Rank
Over-read: We rank third for “emergency plumber”.
Supported by the data: From a fixed London location on mobile, unpersonalised, the site appeared third on most checks this month.
- Average position
Over-read: Average position fell, so rankings got worse.
Supported by the data: Average position fell because the site began appearing for many new low-ranking queries; positions on the core group held.
- AI position
Over-read: We are number two in ChatGPT.
Supported by the data: We were named in 14 of 40 runs across our fixed prompt set this month, up from 9 of 40.
- AI reach
Over-read: Thousands of people saw us in AI answers.
Supported by the data: Bing reported a number of citations in Copilot and Bing summaries; no source reports how many people read them.
- Competitors
Over-read: We beat our competitor in AI.
Supported by the data: On the same prompts and runs, we were named more often than the competitor; a rise for both suggests the assistant changed, not our work.
The method that holds up is the same whether you use a tool or test by hand: a fixed, documented prompt set built from real customer questions, each prompt run several times under recorded conditions, results reported as the share of runs that name or cite you, per assistant, with branded prompts kept separate and two or three competitors tracked on the same prompts. I have set this out in how to measure visibility in AI search, and the monthly re-test stage of the tutorial on getting recommended by AI assistants compares manual testing with the tools and lists the limits of each. SearchOps, the platform I built for tracking how businesses appear in local and AI search, is one of the tools in that space.
Set the sampled numbers next to first-party data every time: impressions in the Search Console Generative AI performance report, citations and grounding queries in Bing’s AI Performance report, AI referrals in analytics, branded search in Search Console, and enquiries where the customer mentioned an assistant. Add “an AI assistant such as ChatGPT” as an option on any “how did you hear about us” question. Self-reported answers are imperfect, but they capture the person who read an answer and phoned without clicking, which no tracker can.
Attribution, assisted conversions and CRM pipeline for B2B
Attribution decides which visit gets credit for a conversion. For a shop where people buy on their first or second visit, the choice of model changes little. For B2B, where a buyer might find a comparison page through search in March and book a demo through a branded search in June, the model decides whether SEO gets any credit at all.
Attribution in GA4
GA4’s reporting attribution model is data-driven by default; the first click, linear, time decay and position-based models were removed in November 2023.39 Key events other than first visits are attributed within a lookback window that defaults to 90 days, with 30 and 60 days as options, and acquisition events default to 30 days.39 Changing the reporting model applies to historical data as well as future data, while a change to the lookback window applies only from then on.39 So a report comparing this quarter with last year can shift because someone changed the model, with no change in traffic at all. Note any change in the report.
GA4 also keeps two kinds of source dimension. “First user” dimensions record where a new user first came from and keep that value; “Session” dimensions take a new value with each session.40 For a long sales cycle you want both: first user source shows where search started the relationship, session source shows what brought them back to convert.
Carrying the source into the CRM
Analytics knows a session came from organic search; the CRM does not, unless it is told. The usual method is to store the first-touch and converting-session source, medium and landing page in hidden form fields, so they are saved on the lead record. Some CRMs do part of this automatically. HubSpot keeps an Original Traffic Source property for the first known web source and a Latest Traffic Source property for the most recent, and has an AI Referrals source for platforms such as ChatGPT and Claude.41 Both depend on tracking cookies, so the consent points in the earlier chapter apply here too: expect some leads to arrive with no stored source.
Multi-touch attribution in the CRM goes further. HubSpot’s attribution reports offer models including first interaction, last interaction, linear, U-shaped (40% each to the first interaction and the lead conversion), W-shaped, full path, time decay, J-shaped and inverse J-shaped. Contact create attribution comes with Marketing Hub Professional or Enterprise, while deal create and revenue attribution reports need Enterprise.42 Every model is a rule for sharing credit, chosen by a person. None of them measures what would have happened without the organic visit.
An illustrative B2B path from first search to closed deal
Research by search
The buyer finds a comparison page and two guides through non-branded search.
- Research by search, month 1 to 2: The buyer finds a comparison page and two guides through non-branded search.
- Return visits, month 3 to 4: Branded searches, a newsletter click and a visit from an AI assistant answer.
- Demo and evaluation, month 5 to 6: A demo request through a branded search; sales calls and a trial.
- Procurement, month 7 to 9: Security review, contract and signature. No website visits recorded.
Assisted conversions and what they can and cannot show
An assisted conversion is one where organic search appeared in the path but was not the last touch. Reporting them shows the role search plays early in the buying process, which last-click views erase. The limit is that the path only includes touches the tools recorded: a visit with no consent, a visit on another device, a conversation at an event or a recommendation from a colleague does not appear. A path report is a partial record of how someone came to buy, never the whole of it.
The SaaS pipeline post covers this setup in detail, including the GA4 Measurement Protocol for sending CRM stages back into analytics.
Forecasting SEO honestly
Leadership will ask what SEO will deliver. A forecast is reasonable to ask for and impossible to make precisely, because the inputs (search demand, competitors, the layout of results pages, algorithm updates) are outside your control. An honest forecast shows its assumptions, gives a range, and is checked against what happened.
A forecast built from your own data
Use your own CTR data where you can. Published CTR curves are averages across sites and query types, and they have been moving. Seer’s data showed organic CTR falling on informational queries with and without AI Overviews between 2024 and 2025,15 which means a curve measured even two years ago will overstate clicks today. Your own Search Console data by position, for your own query types, is closer to the truth, though it will also drift.
Search volume tools and Google Trends help with demand, with caveats. Trends data is a sample of searches, normalised by the total searches in the time and place and scaled from 0 to 100; low-volume terms show as zero, and noise is added for privacy. Google describes it as one data point among others, not a scientific poll.43 Third-party volume estimates are modelled. Use them to compare terms and spot seasonal shape, not as counts of future searches.
Dashboards and reporting to leadership
A dashboard is for monitoring; a report is for decisions. Most SEO teams need both and confuse them. The dashboard can carry detail for the people who do the work. The report to leadership should fit on a page, open with the outcome, and say what will be done next.
A monthly or quarterly report that holds up
- The outcome first: organic revenue, qualified enquiries or pipeline, against the same period last year and against the forecast range.
- Non-branded clicks and impressions from Search Console by landing page group, year on year, with the method for the branded split stated.
- Organic key events and conversion rate by landing page group from analytics.
- AI search, reported as what each source measured: Generative AI report impressions, Bing citations, AI referral sessions, and sampled visibility from a fixed prompt set if you run one. Never added together.
- What changed: work shipped, with dates, and outside events such as core updates, tracking changes, consent changes and seasonal effects.
- Known gaps and caveats in one short paragraph.
- Next quarter’s priorities, each tied to the outcome it is meant to move.
Looker Studio (now called Data Studio) has a Search Console connector that reads either the Site Impression table, aggregated by property, or the URL Impression table, aggregated by page; one data source reads one table, so a dashboard needing both needs two data sources.44 For large sites, building the dashboard on the BigQuery export avoids the row limits of the connector and lets you join search data with analytics and CRM data in one place.
Making the report trustworthy
Leadership trusts a report that has been right about bad news. Report falls as clearly as rises, explain them with the same care, and do not change a metric’s definition in a quarter where it would flatter the result. Keep a change log alongside the report: every site release, tracking change, consent change and confirmed algorithm update, with dates. When a number moves, the first question is always “what changed?”, and the log answers it.
Draft the leadership summary from your report data
Fill in the parts in brackets before you send it
What cannot be measured, and how to say so
Some of what search does for a business is beyond any tool, and saying so plainly makes the rest of the report more credible. The list below is the one I would put in front of leadership, in some form, once a year.
| What cannot be measured | Why | What to report instead |
|---|---|---|
| Searches where nobody clicked but the answer influenced them | No click, no visit. Studies suggest a large share of searches end without a click.1 | Impressions, branded search trend over time, and self-reported “how did you hear about us” |
| How many people read an AI answer that named you | No platform reports readership; Bing reports citations and Google reports impressions of links.2014 | Citations and impressions as reported, labelled with what they count |
| AI referrals that arrive without a referrer | The referrer was stripped and nothing tagged the visit.33 | Tracked AI referrals as a floor, with the gap stated |
| Visitors who declined tracking | Consent choices remove them from analytics or replace them with modelled data.29 | Search Console clicks as the consent-free check, and the consent setup named in the report |
| Rare queries | Anonymised for privacy and omitted from filtered views.10 | The anonymised share shown as its own row |
| The counterfactual: what would have happened without SEO | There is no control version of the business. | Year-on-year trends, the “do nothing” baseline, and before-and-after comparisons on pages that changed against pages that did not |
| Offline and cross-device paths | Phone calls, visits and colleague recommendations leave no click trail. | Call tracking, CRM source fields, and asking customers |
When a number is an estimate, say how it was estimated. When a number is a floor, call it a floor. When nothing measures a thing, say that nothing measures it and describe the evidence you do have. A sentence such as “tracked AI referrals were 340 sessions this quarter; this is a minimum, because visits that lose their referrer are counted as direct” tells the reader exactly how far to trust the figure, and nobody can later accuse the report of overclaiming.
The same discipline applies to experiments. If you change titles on one group of pages and want to know whether it worked, compare the changed pages with a similar group you left alone, over the same period, and judge the difference, not the raw movement. Seasonality, core updates and changes in demand move both groups; only the difference belongs to the change. It is the closest most SEO teams can get to a control, and it is far more convincing than a before-and-after chart of one group.
Common questions
01What is the most important SEO metric?
02Why do Search Console clicks and GA4 organic sessions not match?
03Why don’t my branded and non-branded clicks add up to the total?
04Can I see clicks from AI Overviews in Search Console?
05How do I track traffic from ChatGPT and other assistants?
06Does Bing Webmaster Tools show AI citations?
07Are AI visibility scores reliable?
08Do I need consent for analytics cookies in the UK?
09How should I forecast SEO results?
Sources
- Platform docs35
- Regulator2
- Industry study5
- Practitioner1
- Reporting1
- 012024 Zero-Click Search Study: For every 1,000 EU Google Searches, only 374 clicks go to the Open Web. In the US, it’s 360.SparkToro (Rand Fishkin, with Datos, July 2024)Industry study
- 02Google users are less likely to click on links when an AI summary appears in the resultsPew Research Center (July 2025)Industry study
- 03Performance report (Search results)Search Console HelpPlatform docs
- 04AI features and your websiteGoogle Search CentralPlatform docs
- 05Using Search Console and Google Analytics data for SEOGoogle Search CentralPlatform docs
- 06Search Analytics: queryGoogle for DevelopersPlatform docs
- 07Performance report (Search results): Advanced filtering and comparisonSearch Console HelpPlatform docs
- 08Introducing the branded queries filter in Search ConsoleGoogle Search Central BlogPlatform docs
- 09Performance report (Search results): Dimensions and data groupingsSearch Console HelpPlatform docs
- 10A deep dive into Search Console performance data filtering and limitsGoogle Search Central BlogPlatform docs
- 11About bulk data export of Search Console data to BigQuerySearch Console HelpPlatform docs
- 12Start a new bulk data exportSearch Console HelpPlatform docs
- 13Table guidelines and referenceSearch Console HelpPlatform docs
- 14Generative AI performance report (Search)Search Console HelpPlatform docs
- 15AIO Impact on Google CTR: September 2025 UpdateSeer InteractiveIndustry study
- 16Update: AI Overviews Reduce Clicks by 58%Ahrefs (Ryan Law, February 2026)Industry study
- 17Unlocking insights with the new Bing Webmaster Tools Performance ReportBing Webmaster Blog (September 2023)Platform docs
- 18Supercharge Your Search Performance with Bing Webmaster ToolsBing Webmaster Blog (March 2025)Platform docs
- 19Microsoft expands Bing Webmaster Tools data capabilities to 24 monthsPPC Land (August 2025)Reporting
- 20Introducing AI Performance in Bing Webmaster Tools Public PreviewBing Webmaster Blog (February 2026)Platform docs
- 21New AI Visibility Insights in Bing Webmaster Tools: Intents, Topics, Citation Share, CompareBing Search Blog (June 2026)Platform docs
- 22AIPlatform and PaidAIPlatformMicrosoft Learn (Clarity)Platform docs
- 23Understanding Your Influence in AI Answers with Microsoft ClarityMicrosoft Clarity Blog (February 2026)Platform docs
- 24Default channel groupGoogle Analytics HelpPlatform docs
- 25[GA4] Landing page reportGoogle Analytics HelpPlatform docs
- 26About key eventsGoogle Analytics HelpPlatform docs
- 27Guidance on the use of storage and access technologiesInformation Commissioner’s OfficeRegulator
- 28What are the exceptions? (Guidance on the use of storage and access technologies)Information Commissioner’s OfficeRegulator
- 29Consent mode on websites and mobile appsGoogle Analytics HelpPlatform docs
- 30Traffic sources, referrers and UTM campaignsPlausible AnalyticsPlatform docs
- 31What are AI Assistants in Matomo?MatomoPlatform docs
- 32Your AI Traffic Is Hiding: A Practical Guide to Tracking ChatGPT, Claude, and MoreSeer Interactive (Jonathan Wehausen, updated June 2026)Practitioner
- 33Referrer-Policy headerMDN Web DocsPlatform docs
- 34[GA4] Custom channel groupsGoogle Analytics HelpPlatform docs
- 35[GA4] URL builders: Collect campaign data with custom URLsGoogle Analytics HelpPlatform docs
- 36Ranking results: how Google Search worksGoogle SearchPlatform docs
- 37NEW Research: AIs are highly inconsistent when recommending brands or products; marketers should take care when tracking AI visibilitySparkToro (Rand Fishkin, January 2026)Industry study
- 38Measuring AI Visibility: Why Real Data MattersMicrosoft Clarity Blog (March 2026)Platform docs
- 39Select attribution settingsGoogle Analytics HelpPlatform docs
- 40Scopes of traffic-source dimensionsGoogle Analytics HelpPlatform docs
- 41Understand traffic source propertiesHubSpot Knowledge BasePlatform docs
- 42Understand attribution reportingHubSpot Knowledge BasePlatform docs
- 43FAQ about Google Trends dataGoogle Trends HelpPlatform docs
- 44Connect to Search ConsoleGoogle Cloud (Data Studio)Platform docs