Article · SEO
How many impressions and clicks the Search Console query report hides
On happymonday.ua, queries the Queries table never shows brought 19.7% of impressions and 49.2% of clicks over six days in June. How to measure that share on your site, and what not to compute from the table alone.
The Performance report in Search Console has two kinds of numbers. The chart at the top counts every search that showed the site. The Queries table under it lists only the queries Google agrees to name. I compared the two for happymonday.ua, Ukraine’s career platform, in the Search Console bulk export to BigQuery for June 17–22, 2026: 187,123 rows, one per query, country, device and search type per day.
Queries the table never shows brought 19.7% of impressions and 49.2% of clicks. Almost every second click came from a search the Queries table does not contain.
This matters for any number computed from that table. Brand share, CTR by position, the top queries of a page: each describes the visible half of the clicks, not the site. Such a number needs a note of how much of the total the visible queries cover.
What Google leaves out of the table
Google calls them anonymized queries. In its deep dive into performance data, a query is anonymized when no more than a few dozen users searched for it over two to three months. Such queries are always left out of the tables, but they are included in the chart totals unless you filter by query.
So the difference between the chart total and the sum of the Queries table is the hidden part. In the interface it is hard to see, because the table export stops at 1,000 rows. The bulk export to BigQuery marks every row with is_anonymized_query, and that flag is what the numbers below are counted from.
What the Queries table leaves out
Hidden queries: 19.7% of impressions and 49.2% of clicks.
The share by device, search type and country
The share of hidden clicks barely moves between devices and between Ukraine and other countries. It moves with the search type, and the share of hidden impressions changes much more than the share of hidden clicks.
| Segment | Hidden impressions | Hidden clicks |
|---|---|---|
| The whole site | 19.7% | 49.2% |
| Desktop | 18.8% | 53.4% |
| Mobile | 20.4% | 46.9% |
| Web search | 19.3% | 49.3% |
| Image search | 28.5% | 39.1% |
| Searches from Ukraine | 17.4% | 48.8% |
| Searches from other countries | 42.8% | 52.4% |
Searches from outside Ukraine brought about 9% of this site’s impressions, and 42.8% of those impressions came from hidden queries. The likely reason is that a foreign market has fewer people per query, so more of its queries stay under the threshold of a few dozen users. If your site gets visitors from several countries, measure the share per country before you compare their queries.
Share of clicks from hidden queries
Desktop 53.4%, other countries 52.4%, web search 49.3%, Ukraine 48.8%, mobile 46.9%, image search 39.1%.
Why clicks are hidden more than impressions
Hidden queries had a CTR of 2.69%, visible ones 0.68%. The export shows the gap, not its cause. The likely one: a rare query is usually a precise one, a profession, a city and the word “salary” together, and the person who typed it clicks. Broad queries collect most of the impressions and few of the clicks, and they are frequent enough to be visible.
Click-through rate of visible and hidden queries
Visible queries 0.68%, hidden queries 2.69%.
So a CTR computed from the Queries table is lower than the site’s real CTR. On this site the table’s own rows gave 0.68%, all searches together 1.08%. The same goes for the share of branded clicks: brand queries are frequent and stay visible, so in the table their share looks bigger than it is.
The API adds a second limit
The Search Analytics API returns at most 50,000 rows per day per site per search type, 1,000 by default; rowLimit raises a request to 25,000 and startRow pages through the rest. For a small site this cap never bites. For a large one it adds its own gap on top of the anonymized queries.
For the same site I pulled 16 months through the API, by query and by page. The query rows added up to 53.8% of the impressions and 47.8% of the clicks of the page rows. That number mixes both effects, the privacy filter and the row cap, so it cannot tell you which one hid what. The bulk export to BigQuery has no row cap and flags each anonymized row, which is why the figures above come from it.
One more API default changes the numbers: it returns only final data, two to three days behind. How that showed up on a new site, and the one parameter that fixes it, is in the playbook on Search Console and GA4 in Claude Code.
How to measure it on your site
- A small site. Take the total clicks from the chart for a period, then export the Queries table for the same period. If the table has fewer than 1,000 rows, its sum is complete, and the difference is the hidden part.
- Through the API. Request the same period twice: without dimensions, which gives the totals, and by
query, day by day, withrowLimit: 25000andstartRowfor the rest. Coverage is the sum of the query rows divided by the totals. - Through BigQuery. Turn on the bulk export in Search Console settings. After a few days of data, one query gives the share:
SELECT is_anonymized_query,
SUM(impressions) AS impressions,
SUM(clicks) AS clicks
FROM `your_project.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-06-17' AND '2026-06-22'
GROUP BY is_anonymized_query
- In every report by query. Next to a brand share, a CTR or a list of top queries, write the coverage: “visible queries cover 51% of clicks”. A reader then knows which half of the site the number describes.
About the author
Max Kiriienko
For ten years I’ve worked in SEO and marketing. I draw up a growth plan, then build the tools and teams that carry it out every day.
Read next