Questions people ask
^(who|what|when|where|why|how|which|can|does|do|is|are|should)\b Queries that start with a question word. Each one is a heading your FAQ or a how-to post could answer directly.
Search Console
The "Queries containing" filter shows you one word at a time. A regex shows you every question, every comparison, or every query without your brand in it, in one view. Test the pattern here first, so you're not pasting it into Search Console over and over to find out why the table is empty.
Runs in your browser · nothing is uploaded · checks for the RE2 rules Search Console enforces
In Search Console, go to Performance, then Search results.
Click "+ Add filter" and choose Query or Page.
Open the dropdown that says "Queries containing" and pick "Custom (regex)".
Choose "Matches regex" or "Doesn't match regex", paste your pattern, and click Apply.
The Query filter tests each search term. The Page filter tests the full URL,
protocol and domain included, which is the reason most page patterns that start with ^/blog come back empty.
The rows below are sample data. Replace them with a column from your own Search Console export (Performance → Export → Queries or Pages) and you'll see exactly which rows the filter keeps.
The tester runs your browser's regex engine with Search Console's rules layered on top: unanchored
matching, (?i) support, and a hard stop on the syntax RE2 rejects. The two
engines agree on everything in the recipes and cheat sheet below.
Each one tells you something the default report can't. Hit "Try it" to load it into the tester with the right filter type already set.
^(who|what|when|where|why|how|which|can|does|do|is|are|should)\b Queries that start with a question word. Each one is a heading your FAQ or a how-to post could answer directly.
^(\S+\s+){5,}\S+$ Low volume, high intent, and usually the easiest wins. Change the 5 to 3 for queries of four words or more.
^\S+(\s\S+)?$ The broad terms. Useful for seeing how much of your traffic depends on a handful of competitive words.
\b(vs|versus|alternatives?|compared?|comparison)\b People choosing between products. If a competitor name shows up here, that is a comparison page waiting to be written.
\b(best|top|pricing|price|cost|cheap|buy|review|reviews|free)\b Queries closest to a purchase. Sort by impressions and check whether the page ranking for them is one that sells.
\b(not working|error|fix|failed|broken|issue|problem|bounce)\b Someone is stuck. Troubleshooting content converts well because the reader already has the problem you solve.
\b(how to|tutorial|guide|step by step|examples?|template)\b Learning intent. Good candidates for resource pages and tools rather than product pages.
\b20[2-3][0-9]\b Year-stamped searches go stale every January. Find the pages they land on and keep the date in the title current.
(?i)makeinfo|make\s?info Pick "Doesn't match regex" and put your brand in. What is left is the traffic you earned from people who had never heard of you.
/blog/ Everything under /blog/. Partial matching means you do not need the domain or a wildcard on either side.
/(blog|resources|learn)/ Content sections grouped into one view, so you can compare them against product pages in a single chart.
^https://[^/]+/$ The page filter sees the full URL, so anchor from https:// to the first slash and stop.
\? Any URL with a query string. If these are getting impressions, check your canonical tags.
\.(pdf|docx?|xlsx?)$ Files Google indexed on its own. They rank, but they have no nav and no call to action.
^https://app\. Only works on a Domain property, which reports every subdomain together. Swap app for yours.
The one everyone needs
Splitting branded from non-branded traffic is the most useful thing regex does in Search Console. Branded clicks tell you how many people already know you. Non-branded clicks tell you whether your SEO is working. Lump them together and a good month for word of mouth looks like a good month for content.
Search your own queries for the first three letters of your name. The misspellings you find there are the ones to add.
Your pattern
Use the same pattern twice: once with "Matches regex" for the branded view, once with "Doesn't match regex" for everything else. Keep it in a note somewhere, because you'll be pasting it every month.
RE2 has more than this. You'll rarely need it. Click any example to load it into the tester.
| Symbol | Means | Example |
|---|---|---|
| | | OR | |
| ^ | Starts with | |
| $ | Ends with | |
| . | Any single character | |
| .* | Anything, any length (including nothing) | |
| \. | A literal dot (or any other special character) | |
| ? | The thing before it is optional | |
| + | One or more of the thing before it | |
| * | Zero or more of the thing before it | |
| {n,m} | Between n and m repeats | |
| ( ) | Group, so an OR stays inside it | |
| [abc] | Any one of these characters | |
| [^/] | Any character except these | |
| \b | Word boundary (so "vs" does not match "canvas") | |
| \s \S | A space / anything that is not a space | |
| \d | Any digit | |
| (?i) | Case-insensitive from here on |
vs matches
"neverbounce vs zerobounce", and it also matches "canvas". Wrap short words in
\b on both
sides, and use ^ and
$ when you
mean the whole query.
Put (?i) at
the front. It matters most on the Page filter, where a URL with /Blog/ in
it will quietly slip past a lowercase pattern.
An unescaped . means "any character" and an unescaped
? means "optional". The pattern still works, just not the way you
think. Write makeinfo\.co and
\?ref=.
Patterns copied from a Stack Overflow answer often use (?!...) to
exclude words. RE2 doesn't allow it, so Search Console rejects the whole pattern. Use "Doesn't match regex"
for exclusions instead. The tester above flags this before you paste.
^/blog/ never
matches anything, because every URL starts with https://. Drop the
caret, or anchor from the protocol.
Rare queries are hidden for privacy, and a Query filter drops them from the totals. Your branded and non-branded views won't add up to the unfiltered number, and that's expected. Compare each view against itself over time instead.
Yes. The Query and Page filters in the Performance report both have a "Custom (regex)" option, with a choice of "Matches regex" or "Doesn't match regex". Search Console uses Google's RE2 syntax, which covers everything most people need except lookaheads, lookbehinds, and backreferences.
Yes. Start the pattern with (?i) to make it case-insensitive. Queries mostly arrive in lowercase anyway, but page URLs and the occasional capitalised brand search do not, and (?i) costs nothing.
No. Search Console treats a regex as "contains" by default, so seo already matches "local seo tools". Add ^ and $ only when you want the pattern to match the whole query or URL.
The usual causes are an unescaped dot or question mark in a URL, a capital letter without (?i), anchoring with ^ on a Page filter without including https:// and the domain, or a date range too short for the queries you are after. Paste the pattern into the tester on this page with some rows from your own export to see which it is.
No. RE2 rejects (?!...) and (?<!...) and Search Console will show an error. Use the "Doesn't match regex" option with the words you want gone. If you need "includes X but not Y", filter the Query by one and the Page by the other, or export and finish the job in a spreadsheet.
Yes, 4,096 characters. That is enough for a brand pattern with a few dozen misspellings. If you are hitting it, you are probably listing whole queries instead of the words they share.
Search Console hides rare queries for privacy. Those anonymised queries count toward the unfiltered total but are dropped as soon as you add a Query filter, so a branded view plus a non-branded view will come up short of the overall number. Page filters are not affected.
The Search Analytics API accepts the same RE2 patterns through the includingRegex and excludingRegex filter operators. Looker Studio's Search Console connector has its own regex filters, which also use RE2.
That's the useful kind of problem. Tell us what your non-branded view looks like and we'll tell you what's missing.
Get in touch