Table of Contents
If you have ever looked at a clicks chart in Google Search Console climbing steadily and felt good about your SEO, there is a question worth asking before you celebrate: how much of that growth is people who already know your brand? When someone searches for your company name, they were always going to find you. That traffic is real and valuable, but it tells you almost nothing about whether your content is winning new audiences from search.
The fix is to split your query data into two buckets: branded queries (searches that contain your brand name or a recognizable variant) and non-branded queries (everything else). Branded traffic measures awareness and demand you have already earned. Non-branded traffic measures discovery, the people finding you because your content ranks for what they need, not because they typed your name. When you separate the two, the picture often changes a lot.
This guide walks through how to define your brand terms (including the misspellings and variants people actually type), how to build an RE2 regex that matches them, how to use the "Custom (regex)" filter in GSC to isolate each bucket, how to track the ratio over time, and how to turn your cleaned-up non-branded data into real content decisions. Every regex here is copy-paste ready.
Why branded traffic hides your true SEO performance
Branded searches behave differently from everything else. People searching your name almost always intend to reach you, so your click-through rate is high, your average position is usually near the top, and conversions tend to be strong. None of that is a result of your SEO work on a given page. It is a result of marketing, word of mouth, ads, email, and reputation built over time.
When branded and non-branded queries sit together in one report, branded metrics dominate the averages. A site can show rising total clicks while non-branded discovery is flat or shrinking, simply because a product launch or an ad campaign drove more people to search the brand name. The headline number looks like SEO success. It is not.
This matters most in a few situations. If you run paid campaigns, branded search often spikes alongside them, inflating your "organic" totals with demand you paid to create elsewhere. If you are a known company, branded queries can be the majority of your impressions, which buries the long-tail non-branded terms you are trying to grow. And if you report to a client or a boss, mixing the two makes it easy to claim credit for awareness you did not generate. Splitting branded from non-branded is the single cleanest way to read the real story inside the GSC performance report.
Defining your brand terms (the part people rush)
Before you write any regex, list out what "branded" actually means for your site. Most people stop at the company name. That is a mistake, because searchers are messy. Your brand regex should account for several categories:
- The core brand name, in one word and spaced forms. "searchconsoletools" and "search console tools" are both branded.
- Common misspellings and typos. Think about dropped letters, doubled letters, and easy finger slips. If your brand is "Klaviyo," people type "klayvio," "klavio," and "klaviyio."
- Domain and URL fragments. People search "searchconsoletools.com" or "searchconsoletools io."
- Sub-brands and product names that only make sense in your context, like a named feature, app, or framework you own.
- Founder or spokesperson names if people search the company through a person.
- Brand plus generic modifiers such as "brand login," "brand pricing," "brand reviews." These are still branded intent even though they include a non-branded word.
Pull your actual queries to find the variants you would never guess. Export the last 12 months of query data, sort by impressions, and skim the top few hundred rows. The real-world misspellings will jump out, and you can fold them into your regex. This is also a good moment to revisit how to use Google Search Console for keyword research, because the same export powers both jobs.
Building an RE2 regex to match branded queries
Google Search Console uses the RE2 regex syntax (the same engine Google uses elsewhere), and by default matches are case-insensitive and partial. That means you do not need to anchor or lowercase anything for a basic match. A simple branded pattern looks like this:
searchconsoletools|search console tools
That catches the one-word and spaced forms. Now add typos and spacing tolerance. The ? makes a character optional, and a character class like [ -]? allows an optional space or hyphen between words:
search[ -]?console[ -]?tools|sea?rch ?consol?e ?tools?
To catch a misspelled core token, list the variants explicitly rather than trying to be clever. Explicit alternation is easier to read and debug six months later:
klaviyo|klayvio|klavio|klaviyio|klaviy
If you want to be deliberate about not catching unrelated words, RE2 supports word boundaries with \b. For example, if your brand is "Ahrefs" you probably do not want it inside some longer string, so you can wrap it:
\bahrefs?\b|\baref+s\b
A realistic, production-ready branded regex for a brand called "Search Console Tools" with a domain might look like this:
search[ -]?console[ -]?tools|sct\b|searchconsoletools?\.(com|io)|\bsct app\b
Keep the pattern in a text file so you can version it. As you discover new misspellings, add them with a pipe. For a deeper tour of the operators (anchors, groups, escaping, negation), see our full guide to Google Search Console regex filters.
A few RE2 cautions worth knowing: RE2 does not support lookaheads or lookbehinds, so do not paste a pattern copied from PCRE that uses (?=...). Escape literal dots in domains with \. or a stray dot will match any character. And test your pattern on a sample of real queries before you trust the numbers, because one overly broad token (like a short brand abbreviation that is also a common word) can silently swallow non-branded traffic.
Isolating non-branded with "Doesn't match regex"
Once your branded regex is solid, GSC makes the split easy. In the Performance report, open the Query filter, choose Custom (regex), paste your pattern, and you get two modes:
- Matches regex shows only your branded queries. Use this to size your brand demand.
- Doesn't match regex shows everything that is not branded, which is your true non-branded SEO performance.
So with a single regex you get both buckets. Apply "Doesn't match regex" and the clicks, impressions, CTR, and position you see are now your discovery numbers, stripped of brand-name searches. This is the view you should be looking at when you judge whether your content strategy is working.
Here is what each bucket actually tells you:
| Signal | Branded queries | Non-branded queries | | --- | --- | --- | | What it measures | Existing awareness and demand for your brand | Discovery of your content by new searchers | | Typical CTR | High (people intend to reach you) | Lower (you compete with the whole SERP) | | Typical position | Strong, often top of page one | Spread across positions; lots of striking-distance terms | | What moves it | PR, ads, email, word of mouth, product launches | On-page SEO, content quality, links, topical coverage | | Best used for | Tracking brand health and demand | Judging real SEO progress and finding opportunities | | Risk if ignored | You under-count loyal demand | You over-credit SEO for awareness you did not create |
A practical workflow: save both views. Run the report once with "Matches regex" and note the totals, then flip to "Doesn't match regex" for the same date range. The two should roughly add up to your unfiltered total (regex filters are not always perfectly exhaustive, but they will be close), and the gap between them is your branded share.
Tracking the branded / non-branded ratio over time
A single snapshot is useful, but the ratio over time is where the insight lives. Each month, record three numbers: total non-branded clicks, total branded clicks, and the branded share as a percentage of the total. Plot them and watch the trend.
What you want to see is non-branded clicks growing in absolute terms and ideally the branded share falling as a percentage. A falling branded share is not bad news, it usually means your non-branded discovery is outpacing your brand searches, which is exactly what healthy SEO growth looks like. Conversely, if total clicks are up but branded share is climbing, your "SEO win" is mostly brand demand, and your content is not pulling its weight.
Use GSC's date comparison to make this concrete. Set a period-over-period comparison (for example, last 28 days versus the previous 28 days), apply your branded regex with "Doesn't match regex," and read the non-branded delta directly. Then flip to "Matches regex" for the branded delta. Two comparisons, and you know which engine is actually driving your growth.
Watch for seasonality and campaign effects. A product launch, a funding announcement, or a burst of ad spend will spike branded queries for a few weeks. If you only track totals, that spike looks like SEO success. If you track the split, you can attribute it correctly and avoid setting unrealistic expectations for next quarter.
Separating the analysis per page section
Site-wide numbers hide a lot. Your homepage and "about" pages attract most of your branded queries, while your blog, docs, and resource sections do the real non-branded work. Averaging them together blurs both stories. The fix is to run the branded/non-branded split within a page section.
In GSC, add a Page filter set to "Custom (regex)" alongside your query filter. For example, to look only at your blog while excluding branded queries, set the Page filter to match your blog path and the Query filter to "Doesn't match regex" with your branded pattern:
/blog/
Now you are looking at non-branded performance for one section only. Repeat for /docs/, /pricing/, or whatever structure you have. You will often find that one section carries nearly all of your non-branded discovery, which tells you where new content investment will pay off and where you are mostly serving people who already know you.
This sectioning is especially revealing for software companies, where branded navigational queries ("[brand] login," "[brand] status") cluster on a few app pages and can dominate raw totals. Our guide on Google Search Console for SaaS digs into that pattern and how to keep navigational noise out of your content reporting.
Acting on non-branded striking-distance opportunities
The payoff of all this filtering is a clean list of non-branded queries you can actually act on. The highest-leverage targets are striking-distance terms: queries where you already rank on the edge of page one (roughly positions 8 to 20) but are not yet getting meaningful clicks. These are pages Google already considers relevant, so a focused improvement can move them up quickly.
With your "Doesn't match regex" branded filter still applied, sort the query table by impressions and scan for terms with high impressions, low CTR, and a position in that striking-distance band. Each one is a candidate for: tightening the page's title and meta to match the query intent, expanding the section that addresses it, adding the missing subtopics competitors cover, or improving internal links to the page. Our walkthrough on striking-distance keywords in Google Search Console covers how to prioritize this list.
Separately, look for non-branded queries with strong positions but weak CTR. A page sitting at position 4 with a low click rate is usually a title or snippet problem, not a ranking problem, and it is one of the fastest wins available. The tactics in how to fix low CTR in Google Search Console apply directly here, and because you have stripped out branded queries (which always have inflated CTR), the low-CTR pages you find are genuine opportunities rather than statistical noise.
Turn the recurring winners into a content brief. Group related non-branded queries into a topic, note the pages that already rank for them, and decide whether to strengthen an existing page or create a new one. That is the loop: filter to non-branded, find the gaps, brief the work, ship, and re-check the split next month.
If building and maintaining branded regex by hand sounds tedious, that is exactly the kind of thing Search Console Tools automates. Connect your property with Google OAuth (it is free), and the tool auto-detects your brand terms, splits your queries into branded and non-branded for you, and turns the non-branded striking-distance opportunities into ready-to-use content briefs. You can try it here and skip the manual regex upkeep.
Frequently Asked Questions
What counts as a branded keyword in Google Search Console?
A branded keyword is any search query that includes your brand name or a recognizable variant of it, such as your company name, common misspellings, your domain, named products or features, and brand-plus-modifier searches like "brand login" or "brand pricing." Everything else is non-branded. The exact list depends on your business, so it is worth exporting your real queries and skimming for variants you would not guess.
How do I separate branded and non-branded queries in GSC?
Build a single regex that matches your brand terms, then in the Performance report open the Query filter and choose "Custom (regex)." Selecting "Matches regex" shows only branded queries, and selecting "Doesn't match regex" shows your non-branded traffic. With one pattern you can flip between both views for the same date range.
What regex syntax does Google Search Console use?
GSC uses RE2 syntax, which is the regex engine Google uses across many products. Matching is case-insensitive and partial by default, so you do not need to lowercase or anchor a basic pattern. RE2 does not support lookaheads or lookbehinds, so avoid patterns copied from PCRE that use (?=...), and remember to escape literal dots in domains with \..
Why is non-branded growth a better SEO signal than total clicks?
Branded clicks come from people who already know you, so they reflect awareness built by marketing, ads, and word of mouth rather than your SEO work. Non-branded clicks come from new searchers discovering your content because it ranks for what they need. Tracking non-branded growth, rather than total clicks, tells you whether your content is actually winning new audiences.
Should I track the branded vs non-branded ratio over time?
Yes. Record non-branded clicks, branded clicks, and branded share as a percentage each month, then watch the trend. Growing non-branded clicks with a falling branded share is the sign of healthy SEO, while rising total clicks driven mostly by a higher branded share usually means a campaign or launch, not your content, is doing the work.
My branded regex is catching non-branded queries. What went wrong?
This almost always happens when a token in your pattern is too broad, such as a short brand abbreviation that is also a common English word. Test your pattern against a sample of real queries before trusting it, use word boundaries (\b) to constrain short tokens, and prefer explicit alternation for misspellings over loose wildcards. Tightening one greedy token usually fixes the overcounting.
Run a Free AI Citation Audit
Are you in the AI Overview? Get a free report showing how often ChatGPT, Claude, and Gemini cite your brand, plus the 3 blockers preventing your discovery in 2026.
No spam. 1-click unsubscribe. Join 1,200+ SEO teams managing the GEO pivot.