Quantify the visible-versus-hidden GSC gap
Subtract supplied visible-query totals from supplied page totals to measure the unexplained click and impression remainder without claiming the query strings are recoverable.
Free, no signup. Search Console never shows you every query — it anonymizes a share of clicks and impressions below its privacy threshold. Upload your GSC performance export and an Ahrefs or Semrush keyword export, and this tool estimates which of your ranking keywords plausibly explain the gap, page by page.
Search Console export limit: the UI can return only about 1,000 representative rows, and privacy-anonymized queries are omitted. Treat every analysis as a view of the exported sample, not the complete query set.
A Queries CSV is fitted into an impression-weighted curve; a Workbench {"curve":[…]} export is used as-is. Both are estimates, not actual hidden-query attribution.
Example data — replace with your own, then press Find hidden queries
Runs entirely in your browser — nothing you paste is uploaded or stored. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
Say a page's GSC export shows 142 clicks and 4,800 impressions, but the Queries export only lists two visible queries for it, totalling 92 clicks:
Page,Clicks,Impressions,CTR,Position
https://example.com/blog/best-running-shoes,142,4800,3.0%,5.2
Query,Page,Clicks,Impressions,CTR,Position
running shoes for flat feet,https://example.com/blog/best-running-shoes,58,1900,3.1%,6.1
best running shoes 2026,https://example.com/blog/best-running-shoes,34,1100,3.1%,4.8 Your Ahrefs export shows the same page also ranking for two keywords that never appear as a visible GSC query:
Keyword,URL,Position,Volume
best running shoes for overpronation,https://example.com/blog/best-running-shoes,7,880
cushioned running shoes review,https://example.com/blog/best-running-shoes,11,320
running shoes for flat feet,https://example.com/blog/best-running-shoes,6,590 The tool computes 142 − 92 = 50 hidden clicks on this page, then allocates that 50 across the two candidate keywords by estimated volume × CTR-for-position — giving the higher-volume, better-ranking keyword the larger share, each labeled with a confidence tier and a plain-language reason.
The directly observed coverage is 92 ÷ 142 = 64.8% visible-query click coverage. The remaining 35.2% is measurable as a gap, but its query strings are not recoverable from Search Console; candidate allocation is a separate modeled layer.
Pressing Try an example loads this page plus a second page with no hidden clicks, and renders:
Example data — captured by running this page's own analyzer against the "Try an example" dataset
Saved targets, named lists, and recent check summaries remain only in this browser.
Pages sorted by estimated hidden clicks. Expand a row to see candidate keywords, each with an estimate, a confidence tier, and the reasoning behind it.
Every number here is a modeled estimate, not a Search Console disclosure. Google never reveals which specific queries are hidden — this tool infers plausible candidates from public ranking and volume data you already have.
This is an estimate, not ground truth: it can only surface candidates that exist in your SEO-tool export, so a hidden query with no third-party rank tracking (or one your tool doesn't track) will never appear. The CTR-by-position curve is a published-study blend, not your site's own curve, so absolute click estimates are directional. If your GSC export has no Page column on the queries side, the tool falls back to treating the visible query set as site-wide — a coarser but honest approximation rather than falsely calling a query "hidden" for a page it may not belong to. And GSC's privacy threshold itself is undocumented and can change, so the size of the true hidden share is unknowable — only the gap between totals and visible rows is measurable.
Below a certain volume of impressions and clicks, Google anonymizes individual queries for privacy reasons — usually because the query is rare enough (or contains something identifying) that surfacing it could expose what a specific person searched for. The page-level and site-level totals in GSC still include that hidden traffic; only the per-query breakdown omits it. That is why a page’s Top pages clicks/impressions routinely exceed the sum of its visible Top queries rows.
It takes every keyword your SEO-tool export (Ahrefs or Semrush) says a page ranks for, drops the ones that already appear as a visible GSC query for that page, and treats the rest as candidates. Each candidate is scored by estimated volume × CTR-for-its-ranking-position, then the page’s hidden click/impression delta is allocated across candidates proportional to that score. It is a plausibility estimate built from public ranking + volume data, not a disclosure of real Search Console data — GSC never reveals the actual hidden queries.
That happens when no row in your SEO-tool export matches that page’s URL, or when the URL matches but every keyword found there also already appears as a visible GSC query (so there is nothing left over to explain the gap). The hidden click/impression numbers are still shown — there is just no keyword-level guess to attach to them.
High confidence is a page with exactly one plausible candidate keyword — the hidden share almost certainly belongs to it. Medium confidence is a candidate ranking in the top 10 with real search volume, competing against other candidates for the same hidden share. Low confidence is everything else: multiple candidates splitting a rough proportional allocation, or a keyword ranking outside the top 10. Treat low-confidence rows as directional, not decisive.
GSC exports from either the "Pages" or "Queries" tab of the Search Console Performance report (uploaded separately or together), and organic-keyword exports from Ahrefs or Semrush (Keyword, URL/Landing Page, Position, Volume/Search Volume columns). The format of each file is detected automatically from its header row — you do not need to tell the tool which is which.
No. All parsing and scoring happens in your browser with plain JavaScript — the CSVs never leave your machine, and nothing is sent to our server or stored. Close the tab and the analysis is gone.
Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.
You won't be emailed about that request anymore.
Loading…
New requests are reviewed before they appear here.
Where this tool helps
Subtract supplied visible-query totals from supplied page totals to measure the unexplained click and impression remainder without claiming the query strings are recoverable.
Match Ahrefs or Semrush keyword rows to a page, remove visible-query matches, and allocate the measured gap using a modeled volume-by-CTR score.
Keep the measurable page gap visible even when the keyword export supplies no unmatched candidates, instead of inventing an explanation.
Fit a curve from a suitable GSC Queries export or import a compatible Workbench curve while preserving that allocation as a model.
Carry page gaps, candidate allocations, rule-based confidence tiers, and reasons into a spreadsheet for validation and content research.
Watch the full workflow
This beginner walkthrough explains why Search Console hides some query detail, uploads three fictional exports, measures an exact fifty-click gap, models two possible candidate phrases, preserves a page with no gap, exports the research handoff, and keeps observed evidence separate from inference.
Search Console can show more clicks and impressions in the Pages report than you can explain by adding the visible rows in the Queries report. Google anonymizes some query detail for privacy. This tool measures the difference between those supplied totals, then uses an Ahrefs or Semrush ranking export to suggest phrases worth investigating. It cannot reveal the actual hidden query strings.
The analysis has two layers. First, page clicks minus visible-query clicks produce a measurable remainder from your files. Second, the tool removes already-visible phrases, scores other ranking keywords, and divides the remainder among them. The remainder is evidence. The candidate names and allocations are a model. Good reporting must keep those two layers separate.
Use it to measure how much query detail is visible, find pages with the largest unexplained gaps, rank possible phrases for follow-up research, test a site-specific click-through curve, or export an auditable handoff. It can help decide where to investigate. It cannot prove that a person searched any candidate phrase.
Bring a Search Console Pages export with total clicks and impressions, a matching Queries export with visible query rows, and an organic-keyword export with keyword, landing U-R-L, position, and volume. The date range and property scope should match. Every file is parsed locally. Individual files over ten mebibytes and combined Search Console files over twenty mebibytes are rejected.
Choose the fictional Pages and Queries files together, then choose the fictional Ahrefs keyword file. The running-shoes page has a deliberate difference between its page total and visible queries. The marathon page does not. The keyword file includes already-visible phrases and new candidate phrases so we can verify both exclusion and allocation without customer data.
The optional curve tells the model how much click-through rate to expect at different ranking positions. You can fit one from a suitable Search Console Queries file or import compatible Workbench data. This walkthrough leaves the field empty, so the result labels the published default curve as modeled. A custom curve may be more relevant, but it still cannot identify a hidden query.
Select Find hidden queries. The browser parses and normalizes the exports, subtracts visible query totals from each page total, removes keywords already represented by visible queries, scores the remaining candidates, and divides only the measured remainder among them. No Search Console, Ahrefs, or Semrush account is contacted.
The two pages contain two hundred total clicks. Visible query rows explain one hundred fifty, or seventy-five percent. Fifty clicks remain unexplained, so the hidden share is twenty-five percent. The impression gap is one thousand eight hundred, or twenty-six-point-one percent. One of two pages has a positive gap. Ahrefs is detected, and the allocation curve is clearly labeled modeled.
Visible coverage and the hidden gap are complements in this supplied evidence. One hundred fifty visible clicks divided by two hundred page clicks gives seventy-five percent coverage. Subtracting those values leaves fifty clicks, or twenty-five percent. That arithmetic is observable. The phrases responsible for those clicks are not observable in Search Console.
The page list is sorted by estimated hidden clicks. The running-shoes page leads with fifty unexplained clicks and two candidates. The marathon page has zero unexplained clicks and zero candidates. Always begin with the page-level remainder. A candidate should not be interpreted before confirming that the supplied page and query totals leave a real gap.
The running-shoes page reports one hundred forty-two total clicks. Its two visible query rows add up to ninety-two. The exact remainder is fifty clicks, or thirty-five-point-two percent of this page’s total, plus one thousand eight hundred impressions. The ranking export supplies two unmatched phrases that can be modeled against this remainder.
Expand the first page. Every candidate shows its source, position, volume, modeled click allocation, share of the page gap, rule-based confidence tier, and a plain-language reason. This makes the inference inspectable. It does not make the inferred phrase an observed Search Console query.
Best running shoes for overpronation ranks seventh with volume eight hundred eighty. Its volume-times-click-through score receives about forty-three modeled clicks, or eighty-five-point-nine percent of the gap. It receives a Medium tier because it ranks in the top ten with volume while another candidate exists. Medium is a deterministic rule, not a calibrated probability.
Cushioned running shoes review ranks eleventh with volume three hundred twenty. It receives about seven modeled clicks, or fourteen-point-one percent of the gap, and a Low tier. The split is proportional rather than equal, but neither allocation is measured attribution. Both phrases remain hypotheses for page, ranking, and intent research.
Running shoes for flat feet appears in both the Ahrefs file and the visible Search Console queries, so it does not appear as a hidden candidate. Matching normalizes exact wording, stems, and small spelling differences to reduce near-duplicate candidates. Review unusual language carefully because normalization can sometimes merge or separate phrases in ways you did not intend.
The marathon page has fifty-eight page clicks and fifty-eight visible-query clicks. Its measurable remainder is zero. Although the keyword export contains another phrase for this U-R-L, the tool assigns no hidden clicks and creates no candidate rows. The model does not invent hidden demand when the supplied totals leave nothing to explain.
Export C-S-V downloads one header and the two candidate rows from the page with a positive gap. It includes the page totals, measurable remainder, candidate, source, position, volume, modeled clicks, confidence tier, and reason. The zero-gap page is intentionally absent because this export is a candidate-research handoff, not a complete page inventory.
The measurable step is page totals minus matching visible-query totals. The modeled steps are U-R-L matching, candidate exclusion, volume-times-click-through scoring, proportional allocation, and confidence rules. Report page gaps as unexplained supplied totals. Report candidate rows as plausible research leads. Do not describe either the names or allocated clicks as Google disclosures.
Export matching Search Console page and query scopes, add a current organic-keyword report, and verify the detected formats. Review site coverage, then page gaps, then candidate reasons. Use candidates to inspect page intent, rankings, content coverage, and current results. Rerun when the date range, keyword database, rankings, or click-through assumptions change.
A hidden phrase absent from the third-party keyword export cannot become a candidate. The default click-through curve is not site-specific. Queries without page attribution force a coarser site-wide approximation, and Google’s privacy threshold is undocumented. Ranking and volume data can also be stale. Use the result for prioritization and research—never as proof that a person searched a candidate phrase or that Google revealed it.
Export the measurable page gaps and candidate reasons, investigate the strongest opportunities, and preserve pages where evidence is insufficient. Rerun when the Search Console range, rankings, keyword coverage, or click-through assumptions change. Never report a candidate as a query Google revealed.