Skip to content

4 min read

Search Console hidden queries: where your missing clicks went

Your query report never adds up to your page totals. Why Google anonymizes queries, how to measure the gap on your own site, and how to report revenue without pretending the gap isn't there.

Open the Performance report in Search Console, pick one page, and add up the clicks in the Queries tab. Then compare that with the page's total clicks. The query rows almost always come up short, sometimes by a lot.

The missing clicks came from real searches. Google just won't tell you which ones.

What anonymized queries are

Google leaves some queries out of Search Console to protect the privacy of the people who typed them. Its documentation describes these as queries that aren't issued by more than a few dozen users over a two-to-three month period. Their clicks and impressions still count in your page and site totals. They are only missing from the query list.

For a site with a long tail of specific searches, which describes most content-driven SaaS, the hidden share can be large. It tends to be higher for:

  • pages that rank for many long, specific queries rather than a few head terms,
  • newer or smaller sites with less search volume per query,
  • niche B2B topics where each phrasing is searched by only a handful of people.

Measure your own gap

You don't need to guess. For any page, over any date range:

  1. In the Performance report, filter by Page and note total clicks.
  2. Switch to the Queries tab with the same filter and export the rows.
  3. Sum the clicks in the export.

Hidden share = 1 − (sum of query clicks ÷ page clicks).

Do this for your five highest-traffic pages. If the hidden share is 10%, your query data is a fair picture. If it's 50%, any ranking of "best keywords" is built on half the data.

The API has the same gap, plus row limits of its own: very large sites can't pull every query and page combination in one day. Pull the top queries per page daily and roll the remainder into totals rather than dropping it silently.

Don't spread the gap across the visible queries

The tempting fix is to scale up each visible query so they add up to the page total. That assumes hidden searches behave like the visible ones. They usually don't: they're the long tail, by definition different from your head terms.

Keep the hidden clicks in their own bucket. Report "hidden queries" as a line item next to the visible ones.

Revenue per keyword, honestly

This matters most once you connect search to revenue. Say you know a page brought €400 of MRR from organic Google visitors last month, because each of those customers' first touch was that page. You don't know which query each of them typed; Google doesn't pass it to your site.

What you can do is split the page's revenue by click share:

QueryShare of page clicksModeled MRR
stripe vs paddle fees43%€172
paddle alternative22%€88
stripe or paddle for saas11%€44
Hidden queries24%€96

Three rules keep this honest:

  • Label it modeled. The page revenue is measured. The split by query is an estimate that assumes every click on the page is equally likely to convert.
  • Keep the hidden row. It tells you how much of the estimate rests on data you can't see.
  • Split month by month. Click share shifts as rankings change; one split across a year blurs it.

Where the hidden share helps

Hidden queries aren't only a gap. A page with a high hidden share and real revenue is ranking for many specific searches you never targeted. That's a signal the topic has depth worth writing into: more sections, a follow-up post, or a comparison page for the variants you can see.

In Joinsight

Joinsight backfills 16 months of Search Console data when you connect, keeps anonymized clicks in a separate hidden-queries bucket, and models keyword revenue exactly as above, labeled "modeled" everywhere it appears, including in answers through the MCP server. Keyword opportunities, queries at positions 8 to 20 on pages that already earn, are ranked by impressions times the page's revenue per click. For the attribution side, see how to see which blog posts bring paying customers.

Updated

See what makes you money.

Connect Stripe or RevenueCat and Search Console, and you see combined MRR and 16 months of search history on day one. Page and keyword revenue follow as the snippet collects first touches.

No card required. The trial clock starts when your first revenue source connects.