Search Console mixes two completely different things in one list and does not tell you which is which.

One is a query somebody typed. Short, telegraphic, keyword-shaped. The other is generated by an AI surface: AI Overviews and AI Mode fan a question out into synthetic sub-queries, and assistants issue whole prompts. Those arrive looking nothing like search.

Here is one from our own data:

evaluate the ai visibility products company brightedge on profound vs

1,293 impressions. Nobody types that.

This is the classifier we use to split them, the signals it tests, the calibration, and the family it cannot catch.

Why bother

Because a blended click-through rate averages two problems that need opposite responses.

“Nobody clicked our title” is a title problem. “A model read the page and the human never saw a link” is a citation outcome, and arguably the thing you were paying for. Averaged together you get a number that tells you to fix the wrong thing.

The gap is big enough to matter. On our own site machine queries were 15% of impressions over 90 days and 9.2% over twelve months, so the share is growing.

The two tiers

Strong signals. Any one of these is close to conclusive on its own.

SignalWhat it tests
Length12 or more words. The original working heuristic, and still the blunt one that catches most
Imperative openingStarts with evaluate, compare, analyse, assess, review, rank, identify, determine, recommend, outline, describe, generate or research, at 4+ words. Nobody types “evaluate” into a search box
Non-Latin scriptCyrillic, Greek, Hebrew, Arabic, Devanagari, Thai, Kana, Han or Hangul
Foreign function wordsTwo or more Spanish, Portuguese, French, German, Italian or Romanian function words
Versus chainTwo or more “vs” at 7+ words, so a clause is wrapped around the comparison

Medium signals. Each has an ordinary human explanation, which is why none counts alone. Three must fire together, and at least two of those must be about grammar rather than length.

That grammar requirement matters. Length says a query is unusual. Grammar is what says it was composed rather than typed. The two length signals are not independent of each other, so without the guard any single weak grammar signal would tip an ordinary 11-word commercial search into the wrong bucket.

Two overrides. Search-operator syntax (site:, filetype:, inurl:) always counts as human and beats even the strong signals, because a 37-word exclusion list is long but it is a rank tracker, not a prompt. And a chain of two or more " or “s looks like boolean syntax, so it forces human unless something strong already fired. That second one is deliberately weak, because getting it wrong the other way once cost us a 143-word persona prompt, which is about as machine as a query gets.

Calibration, and what the first version missed

Tuned against 5,000 live queries over 90 days, on 30 August 2026.

Version one was length, prompt grammar and non-Latin script. It returned 5.2% impression share and missed an entire class: Latin-script foreign-language prompts. Spanish, Portuguese, French and Romanian prompts under 12 words scored zero, because every other rule assumes English grammar and a non-Latin-script test cannot see them. Adding the foreign function-word rule, and an 11-word band one short of the hard threshold, roughly tripled the measured share.

If you build this yourself, that is the gap to check first.

The family it cannot catch, and why we left it

The live check found a second machine family that is still counted as human:

ai visibility for sra regulated firms ai visibility for uk accountants ai visibility for icaew registered accountants ai visibility for chartered tax advisers uk

Same stem, sector swapped, dozens of them, all page one, all zero clicks. Almost certainly a monitoring tool enumerating verticals.

We wrote a rule for it and then removed it. It can’t work at the level the classifier operates at. “ai visibility for uk accountants” and “geo agency for law firms” are structurally identical strings and only one of them is a machine. The distinguishing evidence lives in the corpus rather than the query: forty-eight near-identical siblings arriving together. Catching that needs template-family analysis across all queries at once, which is a different pass.

So the family stays counted as human, and our reported machine share is too low.

That is the correct direction to be wrong in. An over-count would claim AI surfaces are finding us when they are not, which is the more expensive error for an agency that sells AI visibility.

What it found across 25 websites

The most interesting result came from the comparison across all of them.

68,851 machine impressions across the portfolio, and 65,058 of them, 94.5%, on the single site that writes about AI search. Every dental, trades and local property sat at or near zero.

Writing about AI search is what attracts AI surfaces. Obvious in hindsight, and not obvious at all before we had 25 properties to compare.

The practical reading: if you are not in this category, machine queries are not yet distorting your Search Console at a scale worth modelling. If you are, separate them before anyone reads a CTR average.

Build it yourself

The logic above is a few dozen lines and you have everything you need to rewrite it.

  1. Pull queries from the Search Console API rather than the UI, so you get more than 1,000 rows.
  2. Run each string through the strong tests, then the medium tests, applying the grammar guard.
  3. Report the two buckets separately: queries, impressions, clicks and impression-weighted average position. Use an unweighted mean and one single-impression query at position 3 will drag a bucket that really sits at 40.
  4. Keep the list of signals that fired on every row. If you cannot trace a classification back to a named rule, you cannot argue with it, and you will need to.

Treat the output as a segment that trends over time rather than a count. Google doesn’t label query origin, so there’s nothing to validate against, and anyone claiming precision here is guessing.

Part of a series where we publish our own numbers including the unflattering ones: 6,482 page-one rankings that produced 218 clicks, the estate audit that measured one search engine, and organic at 9% of our traffic and 86% of our leads.

Common questions

Does Search Console show AI-generated queries?

Yes, mixed in with everything else and unlabelled. AI Overviews and AI Mode fan a user’s question into synthetic sub-queries, and assistants issue full prompts.

Those land in Search Console looking nothing like typed search: long, grammatical, often carrying a role instruction or an output format, sometimes in a language nobody in your audience speaks. Google does not mark which is which, so you have to infer it.

Why does it matter whether a query came from a person or a machine?

Because a blended click-through rate mixes two different problems. “Nobody clicked our title” is a title problem. “A model read the page and the human never saw a link” is a citation outcome.

Averaged together they produce a number that tells you to fix the wrong thing. On our own site, machine queries were 15% of impressions over 90 days, enough to move every average we report.

Is this method accurate?

It is directional, not ground truth, and we wouldn’t claim otherwise. Google does not label query origin, so there is nothing to validate against.

We calibrated against 5,000 live queries and the first version returned 5.2% while missing an entire class. Every classification carries the signals that fired, so any individual call can be traced to a named rule and argued with.

What can the classifier not catch?

Sector-swap families: dozens of near-identical siblings with the vertical swapped, almost certainly a monitoring tool enumerating sectors.

We wrote a rule and removed it, because “geo agency for law firms” is structurally identical and is a real human search. The evidence is in the corpus rather than the string. Until that analysis exists those stay counted as human, which understates the machine share.

What share of impressions are machine-generated?

On our own site, 15% over 90 days and 9.2% over twelve months. Across our wider portfolio of 25 properties the total was 68,851 impressions, and 65,058 of those, 94.5%, were on the one site that writes about AI search.

Every dental, trades and local property sat at or near zero.