Page-level vs query-level data in Google Search Console
Your query clicks never add up to your page clicks in Search Console. Here is why (about half are hidden) and which number to trust for what.
In Google Search Console, page-level data and query-level data report the same clicks and impressions two different ways, and they never add up to the same total. The query breakdown is always the smaller number, because Google hides rare queries to protect privacy. As of Ahrefs' April 2025 analysis, about 47% of clicks have no named query attached to them.
So the gap is not a bug, a tracking error, or something to fix in your setup. It is built into how Search Console reports data. Once you know which view is complete and which is a sample, the two numbers stop contradicting each other.
TL;DR:
- Page-level data is effectively complete. Use it for volume and change: totals, per-page clicks, impressions, CTR, position, and trends over time.
- Query-level data is a privacy-filtered sample. Use it for intent and alignment, never as a count of traffic.
- The query table drops "anonymized queries" (rare searches), so it always totals less than your real clicks. Google's own documentation confirms this.
- The gap is large: per Ahrefs' April 2025 study, about 47% of clicks site-wide have no named query, and 45% to 80% is common per site.
Why don't page-level and query-level numbers match?
They don't match because Search Console aggregates the two views differently and then filters one of them. Page-level data is grouped by page; query-level data is grouped by your whole property and then has rare queries stripped out for privacy. The page total keeps every click. The query table keeps only the searches common enough to name.
There is one stream of impressions and clicks. Search Console just lets you slice it by different dimensions, and the slice you choose decides how complete the number is. Google states that the chart at the top of the Performance report and the table below it can disagree: "The chart totals can sometimes differ from the table totals. This is usually due to differences in aggregation (property vs. page)." The chart is always aggregated by property, regardless of the dimension you pick. The table, when grouped by Pages, is aggregated by page instead. That is why you can read the same period two ways and get two answers, and why the per-query clicks you can see never reconcile to the total at the top.
What are anonymized queries?
Anonymized queries are the searches Google leaves out of your query report to protect user privacy: "Some queries are omitted from the report to protect user privacy. These are called anonymized queries." Their clicks and impressions still count toward your page and site totals. They are just not attached to any visible search term. They are also the single biggest reason the two views disagree: across Ahrefs' April 2025 analysis of 22 billion clicks, anonymized queries averaged about 47% of all clicks.
How Google decides which queries to hide, why no filter can recover them, and how to measure your own hidden share are the deeper questions. The full breakdown is in anonymized queries in Google Search Console.
Which Search Console data should you trust for what?
Trust page-level data for how much and what changed, and query-level data for what you rank for and why. Page-level is effectively complete, so it is the only honest basis for a total or a trend. Query-level is a sample of intent: strong for understanding the searches behind a page, wrong the moment you treat it as a count. When that intent is off from the page's job, you have a search intent mismatch.
Page-level is the source of truth for volume and change. Totals, per-page clicks, impressions, CTR, and position. Week-over-week and month-over-month deltas. Anything where you need the real number or the real movement. Because the page view keeps every click, it is the only view that can honestly answer "did this go up or down."
Query-level is for intent and alignment, never volume. What a page actually ranks for. Whether those queries match what the page is meant to do. Whether a page built to convert is pulling mostly informational searches instead. Read the query view as a strong, partial sample of intent, and never sum it into a total. This is exactly why QueryScope takes volume only from the page dimension and treats the query list as an intent signal, never a count: we built the data model around this split because summing query rows under-reported clicks on the real sites we run it against, including AppScreenshotStudio, where 30 days of its real Search Console data showed 662 named queries still undercounting the page-level totals.
The failure mode to avoid is summing query-level impressions and presenting the result as a page or site total. That number is always wrong, and always low, by exactly the hidden portion you cannot see.
Read your own Search Console, not just an essay about it.
QueryScope brings your real Search Console data into Claude Code or Cursor, so your agent reads it for you. From $14.99/month.
How big is the gap between page and query data?
The gap is large and uneven. Across Ahrefs' 2025 sample it averaged roughly 47% of clicks, but the real figure depends entirely on the page. A page that ranks for a few head terms loses almost nothing to anonymization, so its query list nearly reconciles. A page that ranks for a long tail of rare, specific searches loses a lot, because rare searches are exactly what the privacy filter removes.
That has a practical consequence when you compare pages. The long-tail page will look like it has "less query data" than the head-term page, even when it earns more clicks. That is anonymization at work, not weaker performance. The more long-tail a page is, the less its query list tells you about its volume, and the more you have to read its real numbers from the page view.
What this changes in how you read Search Console
A few habits follow directly from the split, and they save you from misreading your own data.
- Read totals and trends from the page view. If any report builds a site total by adding up query rows, it is under-reporting by the hidden portion.
- Read position per query, not per page. A page's blended "average position" hides the spread across the queries it ranks for.
- Expect the query list to come up short, and don't go hunting for the missing clicks. They are real, counted, and deliberately unnamed.
- Store your own history. Because Search Console keeps only a 16-month window and offers no delta export, the page-level totals you trust today disappear unless you snapshot them.
None of this makes Search Console less useful. It makes it honest. Read each view for what it actually measures, and the data stops fighting itself.
Reading page-level and query-level data without the headache
Holding the split straight by hand is the tedious part: page view for the number, query view for the meaning, and never mixing the two. That discipline is most of what good Search Console reading is, and it is easy to forget under a deadline.
That is the distinction QueryScope is built to hold for you. It pulls your real Search Console data into your IDE, in the terminal instead of the dashboard, reports volume from the page level and intent from the query level, and never quietly sums the query list into a total it should not be. If you want the definitions behind any of this, the Search Console glossary covers anonymized queries, average position, and the rest, each with the caveat that matters.
Sources
- Google Search Console Help, Performance report: Dimensions and data groupings (anonymized queries; property vs page aggregation).
- Google Search Console Help, Performance report: Overview and basic setup (chart totals vs table totals).
- Google Search Central, A deep dive into Search Console performance data filtering and limits.
- Ahrefs, Anonymized Queries Make Up Nearly Half of Google Search Console Traffic (April 2025, 22 billion clicks across 887,534 properties).
Read your Search Console where you code.
Ask your coding agent how your site is doing. QueryScope reads your real Search Console data in the terminal: clicks, queries, intent, and indexing. From $14.99/month. One to ten sites.