SEO KPIs Worth Reporting (and Three to Drop)

A 2x3 grid of rounded tiles: the top row has accent-colored outlines with checkmarks, one holding a small ascending sparkline, representing the KPIs worth reporting; the bottom row has dim-colored outlines with X marks, representing the KPIs to drop

Written by

in

The SEO KPIs worth reporting are clicks over time, click-through rate checked against average position, and the share of days with zero measurable impressions or sessions. Three commonly reported numbers are not worth reporting on their own: raw impression counts, an unsorted list of top queries, and average position without its underlying distribution. This site’s own live numbers show why.

Most SEO dashboards show a handful of numbers and let you infer the rest. Impressions go up, so the dashboard implies progress. A query list appears, so the dashboard implies a ranking. Average position ticks down, so the dashboard implies decline. None of those inferences hold up once you check what the number actually measures.

I pulled this site’s own Search Console and Analytics data for the past six weeks to test that claim against a real, small, mostly unremarkable site. The method below is reproducible with any Search Console property and any analytics account. Nothing here depends on a theory of SEO. It depends on reading the fields the APIs already return, correctly.

How I check whether a KPI is worth reporting

Before reporting a number, I ask three questions. First, does the number change if I change the sort order or the date range in a way that shouldn’t matter? If yes, the number is an artifact of the pull, not the site. Second, does the number have a denominator? Impressions without clicks and clicks without impressions are both incomplete; click-through rate needs both. Third, does the number hide a distribution? An average collapses many days into one figure, and a single bad day can move that figure more than a real trend would. I pulled Search Console data through the Search Console API rather than reading the dashboard, specifically so I could check the raw rows behind each summary number.

This site’s real numbers, right now

For 2026-09-01 through 2026-10-13, Search Console reports 4 clicks, 366 impressions, a 1.09% click-through rate, and an average position of 18.70. That aggregate is the authoritative number for the window. It is not a sum I calculated from daily rows, because daily rows for this property currently lag the requested end date by about two days. I checked anyway: the four clicks in the aggregate land on exactly four days, 2026-09-01 (1 click, 9 impressions), 2026-09-09 (1/6), 2026-09-16 (1/7), and 2026-09-17 (1/7), and those four days sum to the same four clicks the aggregate reports. When the two pulls agree like that, it’s a reason to trust the aggregate more, not a coincidence worth narrating further.

Impressions are thinner than the 366-impression total suggests once you look at distribution rather than sum: 19 of the 41 days returned by the by-date pull show fewer than 5 impressions each. A total built mostly from small days and a couple of larger ones is a different thing from a total built evenly, even when the headline number is identical either way.

Analytics data, pulled the same way I’d pull it for a client SEO report, shows a thinner picture than the search numbers alone suggest: across the 30 days from 2026-09-14 to 2026-10-13, only 11 days have any recorded active users at all. Nineteen days show zero. Most active days show exactly one active user and one session. Two days, 2026-10-03 and 2026-10-04, are the only days in the window with 2 active users each, rather than the usual one. Two other days stand out for a different reason: 2026-09-26 recorded an average session duration of 271.1 seconds, and 2026-10-08 recorded 149.9 seconds, both well above the sub-15-second sessions typical of the other active days. That looks like real reading rather than a bounce, though I have no way to confirm what was read. None of this came from a screenshot; I pulled every number directly from the API so I could check it against the raw rows rather than trust a rendered chart.

Three KPIs to drop (and what to report instead)

Three numbers commonly shown on SEO dashboards failed my own test above, using this site’s own data.

  • Raw impression counts treated as success. 2026-10-05 and 2026-10-07 are the two highest-impression days in the window, 22 impressions each, and both recorded zero clicks. An impression count rising while clicks stay flat is not progress. It is a change in how often the page was shown, not in how often anyone chose it.
  • An unsorted query list treated as a ranking. A default pull of this site’s queries for the window, 25 rows, returns 24 distinct terms, every one showing 0 clicks, sorted alphabetically rather than by performance. The three highest-impression queries in that list still show zero clicks each: “how to add canonical tag in the header of wordpress?” at 20 impressions and position 18.95, “multisite seo” at 17 impressions and position 35.53, and even “wp_get_canonical_url,” which sits at the best position in the whole set, 9, with just 1 impression and 0 clicks. The four actual clicks this window happened on queries that don’t appear in that alphabetical slice at all, because the default pull doesn’t sort by what matters.
  • Average position without its distribution. The aggregate average position for the window is 18.70. One day inside that window, 2026-09-20, the site averaged position 79 for a single impression, a near-total drop sandwiched between days in the high single digits and twenties. Report the average alone and that day disappears into a stable-looking number. Report the daily spread and the day is visible, which is the entire point of having daily data in the first place.

Reading the results honestly

Four clicks and 366 impressions over six weeks is a small sample. I can’t attribute the 2026-09-20 drop, or the 10-05/10-07 impression spike, to a specific cause. No live source I checked confirms why either happened, so I’m labeling both as unexplained rather than guessing. Search Console data also lags the current date by a day or two, which is why the aggregate figure above is more trustworthy than a sum of the most recent daily rows, and why I checked that the two figures agreed over the overlapping range before relying on either one.

The analytics side adds a caution of its own: a rise in impressions, like the 22-impression days on 10-05 and 10-07, didn’t show up as a rise in active users on those same dates. The two days with 2 active users, 10-03 and 10-04, sit just before that impression spike and don’t obviously connect to it. Reading GSC and GA4 side by side, rather than reporting either in isolation, is what surfaces a mismatch like that instead of hiding it inside two separate, individually unremarkable charts.

The same caution applies to comparing this period against a future one. Checking whether a KPI holds up over time is the same discipline as diffing a page before and after an edit: pull the same fields, for the same kind of window, and look at the distribution, not just the headline average.

What would falsify this

This piece makes a specific, checkable claim: that clicks over time, click-through rate against position, and the share of zero-impression days are more trustworthy KPIs than raw impressions, an unsorted query list, or a bare average position. If, 60 days after publishing, this URL shows zero Search Console impressions for any query containing the primary keyword terms despite being indexed, that is a clear sign this piece failed on its own targeting, independent of whether the measurement argument holds.


Shivaa Tripathi runs organic-os, an experiment in publishing SEO and AEO work with the research and verification shown rather than asserted.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *