Keyword Research With AI, Checked Against Real Search Console Data

When I sat down to audit my other blog on 19 September 2026, Search Console showed five clicks over the previous three months. Not five thousand. Five. The site had ninety published posts at the time, most of them on topics picked because they sounded searchable, and not one checked against real search data before it was written.

That is the context for everything below. The workflow in this post is not the one that produced those ninety posts. It is the one I use now, and its whole point is the step almost nobody shows you: taking the list the model gives you and holding it against data that came from Google rather than from a language model’s sense of what sounds like a search.

What a model can and cannot know about search

An AI assistant is genuinely good at three things here. It can phrase a topic the way a person would type it. It can guess what someone typing that phrase probably wants to find. And it can group a long, messy list into topics faster than I can.

It cannot know how many people search anything. It has no index and no clickstream. Ask it for monthly search volume and you will get numbers anyway, formatted in a neat table, with difficulty scores, looking exactly as confident as when it is telling you something true. I have watched it do this, and the output is indistinguishable from real data unless you already know the answer. Treat any search-demand figure from a chatbot as invented until a tool with an index tells you otherwise.

So the model does the language work and something else does the counting. That division is the entire method.

Step one: start with the queries you already have

Before generating a single idea, I open Search Console, go to Performance, set the date range to the last three months, switch to the Queries tab and export it. That export is the most undervalued file in blogging. It is not a list of what you want to rank for, it is a list of what Google has already decided to show your pages for, which is a completely different and much more useful thing.

On a small site, ignore the clicks column at first. With five clicks in a quarter, clicks are noise. Impressions are the signal: they tell you which queries Google has quietly been testing your pages against, sometimes hundreds of times, without anyone clicking. That gap between impressions and clicks is where the honest work is.

Two limits to hold in mind while you read that file. Search Console withholds rare queries for privacy, so the rows you see will never add up to the site totals, and on a small site that hidden portion can be most of it. And the data lags a couple of days, so nothing you did this week is in there yet.

Step two: hand over the export, not a description of your niche

The prompt that produced my worst content was some version of “I run a blog about AI tools, give me fifty article ideas”. What I do instead is paste in a couple of hundred real rows, query, impressions and average position, and ask for four things:

  1. Group these queries into topics, and name each topic the way a reader would say it out loud.
  2. For each topic, say what the person typing it most likely wants: a definition, a walkthrough, a comparison, a price, or a decision.
  3. Flag any row where the query and the page it is being shown for are about different things.
  4. List the topics you would expect to see here that are missing entirely.

The third one is the money question. The mismatch list is where you find out that a post about writing tools is picking up impressions for something about ranking blog posts, which means the page is not about what you think it is about. On a site with some history behind it, that list is where the surprises tend to be, and it can explain a poor click rate better than any theory about ranking factors.

The fourth is the only place where I let the model invent phrases from nothing, and I treat everything it produces there as a hypothesis with no evidence behind it.

Step three: the contrast pass, in three piles

Now put the generated ideas and the real queries side by side. Everything lands in one of three piles, and what you do with each is different.

Pile one: things I already show up for, badly. Real impressions, average position somewhere between 30 and 90. These are not new post ideas. They are existing pages that are close enough for Google to consider and not good enough for anyone to click. Rewriting one of these beats writing a new post, and you get to measure the effect afterwards because there is a baseline.

Pile two: plausible phrases with nothing behind them. The model produced them, they read like real searches, and there is no impression data and no Trends signal. Park them in a file. Some will turn out to be real later; most were just grammar.

Pile three: topics I cannot answer from experience. This is the pile that used to become posts on this site, and it is exactly how this site ended up with a hundred articles and fifteen clicks in three months. If the only way I could write it is by summarising what three other pages already say, it does not get written. That rule rules out a lot of ideas, and it is the single change I would keep if I could only keep one. The full version of that mistake, with what it did to this blog, is in the count I ran on all hundred posts.

Step four: Google Trends, for one question only

I open Google Trends for one thing: is this topic flat, seasonal or dying? That is a question about shape, and Trends answers it well. It does not answer how many, because it reports relative interest on a 0 to 100 scale, not volume. A term that looks like a mountain range can still be a handful of searches a month.

It is worth thirty seconds per topic, mostly as a veto. A term with a five-year slide downwards is not where a new site should spend a week, however good the article would be.

Step five: cluster into pages, not into keywords

The last step is deciding how many pages the surviving topics deserve, and the honest answer is usually fewer than you would like. My test: if two queries would be satisfied by the same page, they are one post. If they would need different pages because the reader wants something genuinely different, they are two.

This site failed that test repeatedly. It had a post about long-tail keyword strategy with AI and a separate post about keyword research with AI. Same reader, same question, same answer, split across two thin pages that competed with each other. They are one post now, and you are reading it. That merge is not a tidy-up detail, it is the point: long-tail phrases are not a separate discipline, they are the specific end of the same list, and they are easier to rank for precisely because they describe a narrower job.

Once you have your clusters, the writing job changes shape, because now you know what one page has to cover on its own. That is where the brief-first writing workflow picks up.

What this workflow will not do for you

  • It gives you no volume and no competition data. If you need those, you need a tool with an index behind it, and I do not have one to recommend from use. What I do run is in the short list of SEO tools I actually have installed, which is free Google tools and one WordPress plugin.
  • It needs a site with some history. On a brand new domain with zero impressions there is nothing to contrast against, and the honest move is to write the four or five things you know better than the internet does, publish them, and come back in three months when there is data. Getting a new site indexed is a different problem from this one.
  • It cannot tell you whether you can rank. Nothing in this process looks at who currently holds those results or how strong they are. You still have to open the top results and make a judgement.
  • It is slow. An afternoon for a real export, a proper contrast pass and a cluster map. The version where you ask for fifty ideas and start writing takes four minutes. I have tried both and I have the traffic figures for the fast one.

What I will be checking in ninety days

Three things, on the pages I rewrite out of pile one: whether impressions move at all, whether new queries start appearing for those URLs, and whether average position shifts in any direction worth mentioning. The baseline is the three months to 19 September 2026, which I had never written down before, and having one is most of what this method buys you.

I will update this post with what happened. If nothing happens, that goes in too. A keyword workflow that only gets written about when it works is not a workflow, it is an advertisement.