How to Analyze Search Console Data with Regex

About 24 minutes

We've learned a lot of regex by now. But if you stop here, you've learned to build good filters. You haven't yet learned to use regex as an SEO. Today we tie everything together and walk through a real analysis, from the first question to something we can act on.

Say you run an ecommerce store called Tech House. You look at Search Console and see that organic clicks went up over the last 3 months, from 13,000 to 18,500. A decent jump. The easy first reaction: "Great, SEO is improving." But wait: we don't know yet where that growth came from. Google could be showing the site for new queries, more people could be searching for the brand name, or a single page could have taken off.

The rule
The number looks good, but on its own it doesn't tell us the story. That's the first difference between "reading a number" and "analyzing data".

Start with the right question

Instead of asking "how many percent did it grow?", I'll ask "is this growth coming from brand or non-brand?" Because if most of it is brand, that means more people are searching for the company name, not that the site is showing up for new searches from people who don't know the brand yet. The brand is "Tech House", and users type it more than one way: tech house, techhouse, tech-house, tek house.

Regex challenge

A brand regex for Tech House

Build a brand regex that covers the four spellings and excludes every other query. Before you use it, think about which results you expect.

Must match
  • · tech house
  • · techhouse
  • · tech-house
  • · tek house
Must not match
  • · best laptop
  • · iphone price

Now I have brand

I used Matches regex and pulled out the brand queries: 5,000 clicks in the previous period, 10,000 in the current one. Brand roughly doubled. Now I use the same pattern with Doesn't match regex to see non-brand: 8,000 in the previous period, 8,500 in the current one.

The picture just changed completely. The site total, 13,000 → 18,500, looks like very strong growth, but once we split it: brand 5,000 → 10,000, and non-brand 8,000 → 8,500. Most of the growth is coming from brand.

Watch out
That's the first real finding. But be careful how you say it. You can't say "SEO isn't improving", because the data doesn't say that. What you can say is: "Most of the click growth in the current period came from brand queries, while non-brand growth was limited." That's a fact we can see in the data. "Why did that happen?" is a new question.

This is where the real analysis starts

Now I care about non-brand, because that's the part with relatively weak growth. Look at impressions: 200,000 in the previous period, 310,000 now. A big jump. But clicks went from 8,000 to only 8,500. Now we have a much better question: why is the site showing up more for non-brand, but that extra visibility isn't turning into clicks at the same rate?

This is where CTR starts to mean something. It's natural for it to drop mathematically, because impressions grew faster than clicks. But is the fix "change the titles"? No, that's jumping ahead. We don't know the cause yet.

Look at the queries themselves

I open the non-brand queries and sort by impressions. I find queries like "best laptop for working from home with long battery life": longer than what the site used to show up for. Instead of scanning them by hand, I use what we learned earlier, the long-tail regex:

^\S+(\s+\S+){6,}$
  • best laptop for working from home with long battery life
  • laptop that can run python and screaming frog
  • laptop price

I compared the two periods: impressions 15,000 → 40,000, clicks 600 → 680. Long-tail impressions rose sharply, but clicks only rose a little. Is that a problem? Not necessarily. When I looked at the positions for the new queries, they were middling (9, 11, 13, 15). The logical reading: the site expanded its visibility to longer, more specific queries, but much of that new visibility is still in middling positions, so clicks grew less than impressions.

Note
The same segment showed something else: very long queries with clear impressions and zero or almost zero clicks. Those are cases worth investigating, not a ready-made conclusion that they're "AI queries". Regex helped me find the cases, but I still need to look at which pages show up and what the results look like before I name a cause.

Change the angle: which pages do these new queries go to?

I opened the pages for the new long-tail queries and found that most of the growth comes from /blog/. I split products from the blog: product pages had impressions +10% and clicks +8%, while the blog had impressions +90% and clicks +35%. Now the story is clearer: the big growth in search visibility comes mainly from content, which explains why total impressions grew faster than clicks.

Is the site strong when the user is close to buying?

I built a price segment, (price|pricing|cost|how much|cheap), and looked at the queries: 60,000 impressions, 1,200 clicks. I went to Pages and found that much of the price traffic shows /blog/, while /product/ shows up less.

Watch out
Do I say "I have cannibalization"? No, way too early. The article may really be the better fit for a query like "average macbook price". But if a query like "macbook pro m5 price" has a product page, and Google prefers a general article, then I have a case worth investigating. I didn't start from "I have cannibalization"; I reached the case after seeing the data.
The rule
Regex isn't supposed to tell you "you have a problem". It helps you say "there's something unexpected here, let me look at it".

Let's keep going: purchase queries

I built a purchase segment, (buy|deal|discount|sale|coupon|financing), and looked at Pages. This time /product/ takes most of the visibility. That makes more sense. Now I can sketch a picture of the site: informational/long-tail → the blog is strong. Price → the blog shows up strongly; some cases need review. Purchase → product pages dominate. That's useful, because it tells me where Google sees the site's page types along the search journey. But don't turn it into a law: on another site, it could be completely different.

Position and CTR: don't read them alone

I found non-brand impressions +55%, clicks +6%, and average position improved from 13 to 10. That helps, but don't say "an average position of 10 means every query is in tenth place". It's an average: there could be queries at 3, 5, 11, 18 and 27 that end up at some average.

Same idea with CTR. Say the blog had 10,000 impressions and 1,000 clicks (CTR 10%), and later 100,000 impressions and 4,000 clicks (CTR 4%). Did the blog get worse? Look at CTR alone and you'd say "a lot". But clicks quadrupled, and visibility went up tenfold. More likely, the site entered a huge number of new searches, many of them at weaker rankings, so the CTR drop is a natural result of expanding, not necessarily a problem. The reverse is true too: if impressions fell from 100,000 to 20,000, clicks from 2,000 to 1,000, and CTR rose from 2% to 5%, the site lost about half its clicks. CTR on its own can fool you if you cut it off from the rest.

Back to the original problem

We started from "organic clicks grew 35%: does that mean SEO is working better?" After the analysis we found: brand clicks grew strongly, while non-brand click growth was limited. But non-brand impressions grew a lot, much of that growth came from the long tail, the blog was the biggest source of growth, the site started showing up for more specific queries but many of them are still in middling positions, and price queries have strong blog visibility that needs reviewing against the product pages. Had we stopped at "+35% clicks", we'd have missed all of that.

The rule
Now we can write down what we learned, but it matters to separate two things: what we actually saw, and the explanation we're considering. "Non-brand impressions rose 55% while clicks rose 6%" is something I can see in the data. "The reason is that Google started testing the site's pages on new searches" is a possible explanation. It might be right, but it needs more evidence. Don't turn your hypothesis into a fact.

So what do I do after the analysis?

Here, too, a lot of people jump ahead: they see a low CTR, so they change the title. They see the blog showing for a price query, so they build a product page. No. The next step: pull the top non-brand queries with strong impressions + a position that can improve + business relevance, and for each one look at the page that shows up, whether it's the right page, what the SERP looks like, and who the competitors are. Then decide. Maybe you edit a page, maybe you strengthen internal linking, maybe you find there's nothing to do at all. That's normal; not every analysis has to end in a change.

Note
An important point: a segment's size isn't its importance. Informational queries have 300,000 impressions, and purchase queries only 20,000. If you're measuring visibility, the first is bigger, but if you're measuring business value, the second could matter far more. Search Console gives you the size; it won't tell you what a customer is worth.
Watch out
And keep the segment's definition fixed. If this month you used long-tail to mean 7 words or more, and next month 5 words or more, and then you said "long-tail grew 80%", you aren't comparing the same thing at all. If a segment matters and you track it, save the pattern, and if you change it, know that you changed the group's definition.

And name the segment for what it actually is: instead of "AI Queries" when you're using ^\S+(\s+\S+){9,}$, call it "Queries 10+ Words". That's a fact; "AI Queries" is a conclusion. And don't build 30 segments just because you can: the question decides. If you have a brand-dependence problem, build brand and non-brand. If you're trying to understand new content, long-tail and questions. If it's ecommerce, price and purchase and how they spread across pages.

A simple way to think
  1. 1What surprises me in the data? (traffic went up, but I don't know why)
  2. 2Is the growth brand or non-brand? — Regex
  3. 3The result
  4. 4A new, sharper question (the articles were updated: are they showing up for more specific searches?) — Long-tail regex

Sometimes the result opens another question, and that's normal. Analysis isn't one step.

Answer in your own words

A site has a blog, and after a content update the owner says: the articles got better, because impressions rose 100%. We looked: impressions 50,000 → 100,000, clicks 5,000 → 6,000, CTR 10% → 6%. Write one paragraph describing what actually happened, without agreeing with "performance got worse" (looking only at CTR) or "performance is excellent" (looking only at impressions).

Write your answer first. The value is in trying before you look.

The last thing I want you to take away

If someone asks you after the course "what's your best regex?", that isn't the important question. The important one is: "what question are you trying to answer?", because the same pattern can be excellent in one analysis and worthless in another. You use regex to split a huge amount of data into a part that means something, then see how that part behaves, compare it, ask why, test your explanation, and only then decide what to do. That's the difference between knowing regex and knowing how to use it in SEO.

Before the next lesson

We've reached the last part of the course. The next lesson isn't a batch of new regex to memorize; we already have the tools we need. We'll open Search Console as if we're working on a real site, with a real question, and walk through it step by step. This time we're not learning regex; we're learning to work with it.

Well done, you reached the end of the lesson.