Command Palette

Search for a command to run...

BlogAnalyticsMarketingSaaS

October 19, 2026

How to Read Every Google Search Your Site Shows Up For

We tagged 55,643 Search Console queries by intent for $3.55. What it found, what we changed, what we skipped, and a five-step audit for your site.

By Nishant Modi · 8 min read

Featured image: How to Read Every Google Search Your Site Shows Up For

Most founders read Google Search Console the same way. Open the Performance report, glance at the top of the query list, nod at the clicks, close the tab. We did the same with Careerkit, a resume and career tool, for more than a year.

In October we tried something different. We pulled every search query Google would name for the last 90 days, 55,643 of them, and had a small decision model tag what each searcher actually wanted. The whole run cost $3.55, including the test that told us whether to trust the tags.

It found pages Google never showed anyone, a money page that was not in Google at all, and a top "miss" that turned out not to be ours to win. Below: how to pull and tag every query, the five things it found, what we changed, what we deliberately skipped, and a five-step audit you can run on your own site this week.

Why the top of the list misleads you

The Performance report in Search Console shows you a sorted table, and that table stops at 1,000 rows. For a small site that sounds like plenty. It is not, because the searches that tell you what to build next are rarely in the top rows. They sit in the long tail: thousands of queries with 50 or 200 impressions each, which together outweigh the head.

Careerkit's numbers for the 90 days to October 14 were 31,467 clicks and 1,611,983 impressions. The Search Console API returned 55,643 named queries for the same window. Those named queries carried 15,771 clicks, 50.1% of the total. The other half comes from searches Google anonymises or truncates for privacy, and no tool can tag those.

So even "every query" is half the picture. It is still far more than the top 20 rows you actually read, and it is the half where you can see intent in the searcher's own words.

Step 1: Pull every query from the API, not the screen

The Search Analytics endpoint of the Search Console API returns up to 25,000 rows per request, and you page through the rest with a start row. Ask for query and page as dimensions, and keep clicks, impressions and average position for each row. Add country if you serve more than one market. It explains more than you would expect, as you will see below.

Ninety days is a good window: long enough to smooth out weekly noise, short enough to reflect the site you have today. Save the raw rows to a file before you do anything else, so every later step can be rerun without calling the API again.

One rule we set early: Search Console data is private data. It goes only to an official model API, never to a reseller or a free proxy endpoint.

Step 2: Tag intent with the cheapest model that passes a test

55,643 rows is too many to read and far too many to tag by hand. A frontier model could do it, but the job is a narrow classification, so we used Jev, a small decision model from TypeSafe, at $0.042 per million input tokens. Each query got four questions:

  • What does the searcher want? A tool, a template, an example, a how-to, a job search, our brand, or another brand.
  • Which language is the query in?
  • Which document is it about: a resume or a cover letter?
  • Is a job title named in it?

The step most people skip is the test. Before trusting the tags, we checked the model against 307 queries with known answers: 217 to set thresholds and 90 held back for the final check. The bar was 90% precision while answering at least 70% of the queries. The intent question passed at 91%. Two other questions failed, one at 87% precision and one that answered only 66% of the queries. We dropped both rather than report numbers we could not trust.

Total spend for the tagging and the test: $3.55.

What the numbers said

Here is the English half of the site, by what the searcher wanted:

  • Tool: 256,129 impressions, 11,132 clicks, a 4.35% click rate
  • How-to: 192,269 impressions, 268 clicks, 0.14%
  • Template: 63,355 impressions, 424 clicks, 0.67%
  • Example: 52,197 impressions, 94 clicks, 0.18%
  • Another brand: 41,688 impressions, 114 clicks, 0.27%

Free tools carry the site: 71% of all named clicks. Templates, examples and how-tos all sit below a 1% click rate. That one breakdown reframed our roadmap more than a year of looking at the top of the list.

We also defined a "missed" impression: one where the page sits on page two or lower, or sits on page one with a click rate under a quarter of our own average at that position. By that measure, 81% of English how-to impressions were missed.

Finding 1: Page one isn't winning, and some clicks aren't yours to win

The single biggest miss was a cluster of searches about cover-letter fonts:

  • "best font for cover letter": 6,791 impressions at position 9.4, 2 clicks
  • "cover letter font": 4,539 impressions at position 5.0
  • "cover letter font size": 2,012 impressions at position 2.6
  • "what font should a cover letter be": 1,902 impressions at position 4.6

Together that is about 15,200 impressions and 12 clicks, all landing on one blog post that already ranks on page one. The obvious read is a weak title and snippet, and that was our first read too.

Then we checked the page. It works, and its title already matches the query. The more likely explanation is that Google answers "what font should a cover letter be" right on the results page, so the searcher gets what they need without clicking. We closed it without a fix.

The lesson generalises. Before you rewrite a title, search the query yourself. If the answer is already sitting on the results page, the click was never yours, and your time is better spent elsewhere.

Finding 2: Thin programmatic pages are invisible, not weak

Careerkit had 26 resume-example pages, one per role. In 90 days they earned 7 clicks at an average position of 30, and 21 of the 26 got no impressions at all.

We opened the pages that rank for an accountant resume and counted. BeamJobs shows 30 examples. Resume Worded shows 34. Resume Genius shows 14. Our page showed one, under a title that promised "Examples". The searcher wants a choice (entry level, senior, specialist), and a single generic example does not answer that query, so Google had little reason to show it.

We rebuilt all 26 pages, added 25 new roles, and gave each of the 51 pages 8 examples. Every new role also got a matching cover-letter page. They went live on October 18 and 19.

If you run programmatic pages, do the same count: open the page that ranks for your best query, list what it gives the searcher, and compare it with yours line by line.

Finding 3: Your copy is missing the words people type

Next we reviewed the 10 pages that bring Careerkit the most paying users, measured by subscription starts over 180 days. For each page we gathered every query it ranks for, plus every query the top three competitor pages rank for: 5,452 queries in all.

The free resume builder page, our biggest earner, used the phrase "resume maker" zero times. It said "designs" 12 times and "templates" only 3 times, while searchers type "templates". The H1 read "Build your resume from scratch, free." Nobody searches for "from scratch".

The H1 is now "The free resume builder with no sign-up.", which carries both the head term and the long-tail phrase that already wins clicks. A section heading changed from "Pick a design. Make it yours." to "Pick a resume template. Make it yours." Small edits, but they make the page eligible for the queries it was missing.

Finding 4: Check that your money pages are in Google at all

The same review found that /fr/cv-gratuit, the French free resume page, was not indexed. URL Inspection reported "Duplicate without user-selected canonical": Google had chosen a different URL as the canonical. That other URL was "Crawled, currently not indexed". So neither French page was in Google.

The fix had two parts. Request indexing for the right URL in Search Console, which is one click. And fix the internal links: the site footer on French and German pages was hard-coded to English URLs, so the site itself kept pointing Google at the wrong pages. Both changes went live the same week.

This is the cheapest check in SEO and the one most often skipped. Run URL Inspection on the five pages that make you money. It takes five minutes.

Finding 5: Pages that promise what the product doesn't do

A copy review against real queries also surfaces claims nobody has checked in months. Ours found a blog post claiming "50,000+ job seekers" when the real count was 18,336 users, and a translator FAQ offering to "paste the text" when the tool only accepts PDF or DOCX files.

These matter beyond SEO. A searcher who clicks because of a promise and finds something else leaves, and a claim you cannot back up is a liability. Fix them first, whatever else you change.

What we chose not to chase

Not every missed query deserves work. We left three alone, on purpose:

  • German templates miss 90% of their impressions at an average position of 29.7. One cluster, "Erzieher Lebenslauf" (a resume for a childcare worker), has about 2,800 impressions across seven variants. German programmatic pages are on hold, so this stays a candidate, not a task.
  • Competitor brand searches had 41,688 impressions and 114 clicks. People searching for a brand mostly want that brand. The one exception got a fix: "jobright ai pricing" had 1,940 impressions at position 3.4 and zero clicks, so the review post's title now answers the price question: "Jobright AI Pricing and Review (2026): Is Turbo Worth It?"
  • "how to create resume" kept landing on the French page, with 3,191 impressions and no clicks. It looked like a bug. The searchers were in Morocco, Algeria and Ivory Coast, where Google serves the French page by design.

Writing down what you will not do is part of the audit. It stops the same "opportunity" from resurfacing every month.

What better copy can't fix

Copy makes a page eligible. Authority decides how far it climbs. The free resume page still sits between positions 33 and 36 for "free resume builder", whichever synonym you try, and the site's Domain Rating is 18. No amount of rewording moves that. Links do.

So the next workstream is outreach. Starting from the backlinks of 11 competitors, we found 573 pages on 464 domains that already link to resume builders. Before this, 12 outreach emails had produced zero links, so this is the part of the plan with the least proof so far.

A five-step audit you can run this week

  1. Pull 90 days of queries from the Search Console API with query, page and country, and save the raw rows.
  2. Tag each query by intent with the cheapest model that passes a test you write first: 100 to 300 queries with known answers, some of them held back.
  3. Sort by impressions where you are already on page one and still not getting clicks. Search each one yourself and drop the ones Google answers on the results page.
  4. For your programmatic or template pages, open the page that ranks for your best query and count what it gives the searcher. Then count yours.
  5. Run URL Inspection on the five pages that make you money, and read their copy for any claim the product does not keep.

Practical takeaways

  • The Search Console screen stops at 1,000 rows. The API gives you every query Google will name.
  • Even every named query is only about half your clicks. Plan with that in mind.
  • Test an AI tagger on held-back examples before you trust it, and drop any question that fails.
  • Page one with no clicks is often a zero-click answer, not a bad title. Check before you rewrite.
  • One thin page per keyword is invisible. Match what the ranking pages give the searcher.
  • Use the searcher's words in your headings, not your team's words.
  • Indexing is the cheapest check there is. Run it on your money pages first.

Conclusion

The biggest surprise was not any single finding. It was how much of what we needed to know was already in Search Console, sitting below the rows we used to read. The full read cost $3.55, and the changes it led to went live within a week. The results land in early November, and we plan to share them.

The founder-side story of this audit ran as this week's HelloBuilder newsletter: This $3.55 AI Hack Found 21 Pages Nobody Saw on Google in 90 Days. And if you want to spot new AI search terms before keyword tools do, look at new-term-radar.

The Monday
edition

The week for builders in five minutes, written by Nishant.

Latest: This $3.55 AI Hack Found 21 Pages Nobody Saw on Google in 90 Days