Skip to content
Doctor SEO

SEO Analytics and Measurement

measure what exists, admit what cannot be measured, and stop lying to yourself with data.

By the end of this level you will be able to build a measurement system that keeps three things apart that almost nobody separates: what Google Search Console actually counts, what Google Analytics 4 infers from a sample, and what nothing measures yet and may never measure. That separation is the whole level.

Most SEO reporting runs on a simple illusion. Take a number that exists, put a number that does not exist next to it, stack them in the same table, and present both as if they carried equal weight. Real impressions from Google Search Console sit beside an "AI visibility" score a vendor produced by asking a model its own questions. Real clicks sit beside "estimated traffic" modelled by a third party from a panel. Whoever reads the table assumes every row means the same kind of thing, and no footnote corrects that assumption.

There is a documented example of the problem inside Google Search Console itself: the generative AI report exposes impressions only. No clicks, no queries, no CTR. That is Google saying, inside its own product, that for one slice of your visibility it will report a single dimension and nothing else. An honest report reflects that gap and names it. A dishonest report fills it with an estimate and paints a growth percentage beside it.

This level teaches you to measure what exists and to name what is missing. A course that pretends everything is measurable teaches people to lie to themselves with their own data, and that lie always ends in a concrete decision: a page that was working gets killed, a tactic that did nothing gets doubled down on, or a budget gets defended with a curve that had no model behind it.

What this level covers

  • Pulling from Google Search Console what it genuinely contains, and recognising the point where its data stops being a count and becomes a rounded sample.
  • Reading the Google Search Console generative AI report knowing there are only impressions in it, and building a monthly report that does not invent the rest.
  • Setting up the four or five reports in Google Analytics 4 that an SEO actually uses, and dropping the twenty nobody opens.
  • Separating traffic arriving from ChatGPT, Perplexity and Gemini from everything the attribution system dumps into the direct bucket.
  • Diagnosing a traffic drop with a fixed procedure, before forming a hypothesis and before changing anything on the site.
  • Spotting a fake SEO statistic in under a minute, and building a forecast you can still defend after it misses.

What Google Search Console measures and what it leaves out

Google Search Console is the only first-party source you have on how Google Search sees your site, and it is still not a ledger. Its performance data is sampled and rounded, and that detail changes how the tool can legitimately be used. It is good for shape, direction and order of magnitude. It is not good for reconciling figures to the digit or for defending a small difference between two similar weeks.

The first practical effect is that the sums do not add up. A property’s total clicks rarely match the sum of clicks per query, because very low-volume queries are withheld to protect searcher privacy. The more you segment, the more data drops out along the way. A report that presents the query breakdown as the total is claiming a precision Google never offered.

The second effect is average position. It is an average of positions nobody experiences continuously, blended across devices, countries and result types. A page moving from position 8.4 to 7.9 has not necessarily moved in any real result set: it may simply have picked up impressions from a country where it already ranked better. Average position is a useful alarm and a terrible target metric.

The third effect is the uncomfortable one. Impressions record that your result was present, not that anyone read it. As zero-click behaviour has grown, the distance between appearing, being read and being visited has widened, and Google Search Console only covers the two ends of that chain. The middle, which is where a large share of brand value now lives, is not instrumented in any tool.

Zero-click search and AI traffic: why attribution breaks

Attribution breaks because the answer and the visit stopped being the same event. For twenty years SEO could be measured almost entirely through a session: somebody searched, clicked, landed, and Google Analytics 4 or its predecessor logged it. Today part of the journey ends before the click, inside a generated summary, and another part arrives from an assistant that does not always send a usable referrer.

The clearest case remains the Google Search Console generative AI report: impressions only, no clicks, no queries, no CTR. You can know that you appeared, but not what you appeared in answer to, and not with what outcome. Any tool offering you that breakdown is estimating it, and your report should say which method produced the estimate.

With ChatGPT, Perplexity and Gemini the problem is different but just as real. Some traffic arrives tagged as referral and can be isolated cleanly. The rest arrives as direct because the link was opened outside the browser, copied by hand, or passed through a redirect that lost the origin. The AI traffic you can see is therefore a floor, never a ceiling, and it is worth writing that into the report rather than letting the reader assume otherwise.

The operational consequence is a change in the unit of analysis. Instead of chasing an exact attribution that no longer exists, watch three series in parallel: impressions and clicks in Google Search Console, sessions by identifiable source in Google Analytics 4, and a brand demand series built from searches for your name, direct traffic to deep pages, and whatever mentions you can track. When the first falls while the third rises, you are not losing ground: you are being cited without the click. That diagnosis is impossible from a single source.

Reading a drop without inventing a cause

When traffic drops, the procedure comes before the hypothesis. Most bad diagnoses start by choosing an explanation and then hunting for data that supports it, and in a dashboard with enough filters some supporting view always turns up. The correct order starts by ruling out that the drop is a measurement artefact.

First check whether the number is real. A broken tag container, a misconfigured consent banner, a new filter or a property change all produce clean, false drops. Then compare the same window in Google Search Console and in Google Analytics 4. If one falls and the other does not, the problem is almost always measurement rather than ranking.

Next, bound the drop. Check whether it affects the whole site or one directory, all devices or mobile only, all countries or one, all queries or only brand queries. A drop that respects a clear boundary such as a folder, a language or a template type points at a structural or editorial cause. A uniform, simultaneous drop points at a change on Google’s side or a server problem.

Only at the end do you look at the Core Update calendar and the known incidents, and you look at it carefully. Coinciding with an update does not prove causation: during a broad update there are also drops caused by competitors publishing something better, by seasonality, and by internal changes nobody documented. The honest answer to many drops is that the cause cannot be isolated with the data available, and saying so is more professional than manufacturing a culprit.

What each tool measures and what people think it measures

The table below sets out the real division of labour between the tools in this level. The columns that matter are the third and the fourth: what the tool cannot measure, and what a lot of people believe it measures without ever checking.

Tool What it actually measures What it cannot measure What people wrongly believe it measures
Google Search Console Impressions, clicks, average position and queries from Google Search, sampled and rounded Traffic from anywhere other than Google Search, conversions, and the detail of very low-volume queries That it is an exact count and that the per-query sum equals the site total
Google Search Console generative AI report Impressions, and nothing else Clicks, queries, CTR and which specific answer you appeared in That it shows the full performance of your content inside generated answers
Google Analytics 4 Sessions, events and conversions on the site side, with whatever origin the browser managed to pass along Rankings, impressions, and the real origin of visits that arrive with no referrer That the direct bucket is people typing the address by hand
Looker Studio Nothing on its own: it presents whatever Google Search Console, Google Analytics 4 or another connected source hands it Correcting, completing or validating a figure that was already wrong at the source That a well-designed dashboard is itself a data source
Rank tracking tools The position observed from a location, a device and a moment the tool itself defines The position your real users saw, personalised and shifting That there is one true position per keyword
LLM visibility tools How often you appear in answers to a set of prompts the tool writes and repeats How many real people asked those questions, and what answer each of them got That it is a market share of your AI visibility

The 10 lessons in this level

  1. Search Console In Depth: What It Tells You and What It Hides
  2. GSC’s Generative AI Report: Impressions Only
  3. Measuring LLM Visibility (And Every Tool’s Limits)
  4. GA4 for SEOs: The Reports You Actually Use
  5. Attributing AI Traffic: ChatGPT, Perplexity and Gemini in Your Data
  6. Reading a Traffic Drop Without Panicking
  7. SEO Statistics That Are Lies (And How to Spot Them)
  8. SEO Forecasting: Honest Models, Not Promises
  9. SEO Dashboards: What to Include and What to Cut
  10. SEO Testing: Running an Experiment That Means Something

How to work through this level

Work through this level with a real property open beside you. Without your own data in front of you, all of this stays theoretical and none of it sticks.

  1. Open Google Search Console for your site and export the full performance history before starting lesson 1. You will need the long series for everything that follows.
  2. Take lessons 1 to 3 back to back: they are three faces of the same question, what Google measures and what it chooses not to show you.
  3. Before lesson 4, write down the five questions you ask Google Analytics 4 every month. When the lesson ends, cut from your reports everything that answers none of those five.
  4. Practise lesson 6 on a past drop, not a live one. Take a bad month from last year and run the full procedure with the answer already known.
  5. Do lessons 8 and 10 in the same sitting: a forecast without a testing method is a promise, and a test without a prior forecast is an experiment with no hypothesis.
  6. Finish by writing the list of three things in your own monthly report that you cannot measure. That list is the real output of the level.

When you are done, go back to the full free SEO course index to choose the next level and see how analytics fits with the technical, content and link work that comes before and after it.