---
title: "Search Console query gaps: what the studies actually measure"
description: "Read the evidence behind missing-query percentages. Compare dated Ahrefs findings, distinguish attribution from privacy, and reproduce a simple weighting example."
canonical_url: "https://gscdump.com/learn-google-search-console/research/gsc-data-loss-study"
last_updated: "2026-09-11"
---

A report can count a click without showing the query behind it. When you read that Search Console hides “half the data,” ask what the percentage counts: clicks, distinct queries, or sites. Those are different measurements.

Google [includes anonymized queries in unfiltered chart totals](https://support.google.com/webmasters/answer/17011259?hl=en), while withholding their text. It also limits which detail rows it stores and shows. A gap between query rows and a total cannot, by itself, identify how much each mechanism contributed.

> **Correction, 11 September 2026:** We withdrew this page's earlier 72-site findings and charts. We could not locate the original requests, aggregate output, or reproducing script, and the recorded measurement dates conflicted with the stated duration. Those percentages should no longer be cited as verified findings. This revision reviews published evidence and provides an explicitly synthetic calculation example.

## What the newer published evidence says

Patrick Stox's [February 2026 Ahrefs article](https://ahrefs.com/blog/gsc-anonymized-queries/) reports **46.77%** for **April 2025**, from an analysis of **22 billion clicks across 887,534 Search Console properties**. The publication is newer than the observations. It does not measure September 2026 traffic.

The earlier [June 2022 Ahrefs study](https://ahrefs.com/blog/gsc-hidden-terms-study/) reported **46.08% of all clicks** without associated query terms. It covered one month, **146,741 websites**, and nearly **9 billion clicks**. Its stated calculation subtracts query-click totals from overall clicks, then divides by overall clicks.

| Publication              | Observations                        | Reported result      |
| ------------------------ | ----------------------------------- | -------------------- |
| Ahrefs, 24 June 2022     | One month; exact endpoints unstated | 46.08% of all clicks |
| Ahrefs, 11 February 2026 | April 2025                          | 46.77%               |

Neither article supplies inputs that let us reproduce these percentages. The 2026 update also leaves weighting and continuity with the earlier sample unclear.

Both articles show substantial variation between sites. Their headline percentages cannot predict your property's gap, and the two samples do not establish a like-for-like trend.

## A query gap is broader than a privacy measurement

Consider three reasons two totals might differ:

- **Query privacy:** anonymized queries can contribute to the unfiltered chart while their text remains unavailable. Applying a query filter also changes which clicks enter the total.
- **Detail limits:** the [Search Analytics API returns top rows](https://developers.google.com/webmaster-tools/v1/searchanalytics/query), without guaranteeing every row. Finishing pagination does not remove that limit.
- **Aggregation:** Google [counts by property and by page differently](https://support.google.com/webmasters/answer/17011364?hl=en). This can change clicks as well as impressions.

That third point matters when choosing a denominator. Summing page rows for one side and query rows for the other can introduce an aggregation difference before you measure missing query detail.

If you're diagnosing one report, start with the [missing-row checks](/learn-google-search-console/limits/1000-row-limit). A research percentage needs those settings recorded as part of its method.

## Why two averages can tell different stories

The following inputs are **synthetic**. They describe no real site and are not an estimate of Search Console's current behaviour.

Assume the totals and query-click counts use matching settings and aggregation:

| Site | Total clicks | Query clicks | Gap |
| ---- | -----------: | -----------: | --: |
| A    | 100          | 20           | 80% |
| B    | 900          | 810          | 10% |

The **mean site gap is 45%**: `(80% + 10%) / 2`. Each site has equal weight.

The **pooled click gap is 17%**: `(1,000 - 830) / 1,000`. Site B contributes most of the clicks.

Neither calculation changes the inputs. They answer different questions: the average site's percentage, or the share of all clicks in the combined sample. A study should tell you which it reports.

[Download the Python example](/learn-google-search-console/research/query-gap-weighting.py) to reproduce both results. It contains the synthetic inputs and uses only Python's standard library. Run `python3 query-gap-weighting.py`; no account or network access is needed.

## Measure a gap you can explain

For a repeatable API comparison, start with one property and a completed date interval. Save the exact inclusive endpoints. Use the same search type and country/device filters for both requests.

Keep property aggregation on both sides, without a page grouping or page filter. Use no query filter for the overall total, then group the comparison request by query. Google's [request reference](https://developers.google.com/webmaster-tools/v1/searchanalytics/query) defines the aggregation choices and their restrictions.

Retrieve the available query pages and keep the extraction details. The [export guide](/learn-google-search-console/limits/export-row-limits) separates response pagination from Google's source-data limits.

For matching inputs, calculate:

```text
query-attribution gap = (total clicks - returned query clicks) / total clicks
```

A zero denominator makes the ratio undefined. Missing results also need investigation before calculation. If query clicks exceed the chosen total, check the inputs and aggregation instead of clipping the result to zero.

Keep enough information for someone else to repeat the comparison:

- Property, dates, search type, filters, and aggregation.
- Request bodies, extraction time, pagination completion, and failures.
- Total clicks, returned query clicks, and any incomplete-data status.
- For a group of sites, selection rules and whether each site or each click receives equal weight.

This measures the gap in those returned data. It does not count distinct hidden queries or establish privacy as the only cause.

### When you have a BigQuery export

Google's [export schema](https://support.google.com/webmasters/answer/12917991?hl=en) includes `is_anonymized_query`. Within one exported table and matching dates and filters, the click share on rows carrying that flag answers a more specific question than subtracting two API totals.

Keep property and URL tables separate, and sum metrics across repeated rows as Google instructs. The flag does not reveal the query text. No BigQuery dataset was queried for this article; the distinction here follows the documented schema.

## Reuse and citation

Our text and original calculation example retain the [CC BY 4.0 license](https://creativecommons.org/licenses/by/4.0/). External studies retain their own terms. Cite their original articles when using their reported results.

Cite this page as: gscdump. “Search Console query gaps: what the studies actually measure.” Published 4 March 2026; revised 11 September 2026. [Permanent article URL](https://gscdump.com/learn-google-search-console/research/gsc-data-loss-study).

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
