How Do You Measure Branded vs Non-Branded Search in Search Console?

Measure branded and non-branded search with query regex filters, a known-query denominator, and clear limits for anonymized and missing data.

TL;DR

Measure branded and non-branded search by classifying visible queries with an explicit brand rule, then calculating shares within that same query set. Save the unfiltered total separately. Regex exclusions do not reveal hidden queries, and non-matching does not automatically mean non-branded. Report query coverage and ambiguous terms alongside the split.

Define the brand before measuring its share

A brand split answers a narrower question than “Is SEO working?” It describes which recorded searches mention your brand identifiers. It does not establish whether a visitor is new, whether advertising caused the search, or whether the visit converted.

Google’s brand-awareness documentation includes brand names, domains, brand-specific products and services, plus common spelling variations. Turn that description into a written classification policy:

  • Include the company name, distinctive product names and owned domain.
  • Include observed misspellings, not every typo someone can imagine.
  • Decide whether founder names and former brands belong in scope.
  • Keep ambiguous acronyms and ordinary dictionary words in a review bucket.
  • Count a query mentioning both your brand and a competitor as branded under a presence-based rule.

A fictional company called CedarPilot might include cedarpilot, cedar pilot and cederpilot, but not automatically classify cp login as branded. Save the policy with a version and effective date. Otherwise, changing the brand dictionary can masquerade as a performance change.

Choose a reviewable method, not an apparently perfect split

Search Console now documents built-in Branded and Non-branded query filters. They are useful for exploration, but Google warns that some classifications may be incorrect and that the feature is unavailable for low-impression sites. Its usage guidance also excludes sub-properties such as a blog subdirectory.

A custom regex is a separate measurement definition, not a way to reproduce Google’s classifier exactly. Choose it when someone must be able to inspect the rule behind a client report.

SituationRecommended decisionReporting consequence
Built-in filter is available; you need a quick overviewInspect Google’s branded splitLabel it as Google’s classification
You need a stable, auditable monthly definitionUse one versioned regex and an exception listPreserve the rule with each export
Brand is a common word or short acronymReview ambiguous rows separatelyPublish a review bucket, not forced labels
Query export is incompleteAnalyze captured rows and disclose coverageDo not claim a census of all queries
Historical rule changedReclassify both periods consistentlyDo not compare incompatible brand definitions

Do not alternate between the native classifier and a custom rule without saying so. Two plausible definitions can produce different trends.

Apply matching and non-matching filters to the same scope

Open Performance > Search results. Record the property, exact completed dates, search type, country, device and any page or search-appearance filters. Save the total clicks before adding a query filter. “Unfiltered” here means no query filter; other scope restrictions must stay consistent.

Under the Query filter, choose Custom (regex) and Matches regex. This illustrative pattern covers the fictional dictionary above:

\b(cedar[ -]?pilot|cederpilot)\b|cedarpilot\.example

It intentionally does not include cp. Test it against actual exported rows before accepting it as your brand rule.

Google’s regex documentation specifies RE2 syntax, case-insensitive matching by default and partial matching unless anchored. Consequently, ^cedarpilot$ would exclude cedarpilot pricing. The boundary-based example accepts the brand inside a longer query while avoiding a simple substring match inside another word.

Next select Doesn’t match regex using the identical pattern and unchanged scope. Name this result non-matching queries until you have checked omitted variants and ambiguous terms. Use the exclusion control rather than inventing a complicated negative expression.

These two chart views help inspect the rule. They are not permission to combine their totals with a separate, truncated query export as if every source had identical coverage.

Keep total clicks and captured known-query clicks separate

For a reproducible row-level analysis, export the Queries table, classify that single captured set and sum its clicks. Define:

  • T: clicks in the same-scope chart before query filtering.
  • K: clicks summed across the captured known-query rows.
  • B, N and R: captured clicks classified as branded, non-branded and requiring review.

Your row-level checks are B + N + R = K, branded share B / K, and captured-query coverage K / T. Calculate impression shares independently using impressions, not the click denominator.

Google’s query limitations explain why K need not equal T: anonymized queries appear in chart totals but disappear when a query filter is applied. The table also omits some non-anonymized rows because of internal limits.

Therefore, T - K is not attributable to captured queries, not automatically “anonymized clicks.” For export constraints, see the Search Console row-limit guide. For the privacy mechanism itself, see why Search Console hides queries.

You can report B / T as observed branded clicks divided by total clicks, but it is not the complete branded share of all traffic. Do not silently replace the known-query denominator with the property total.

Work through an illustrative classification

The following is invented teaching data, not a customer result or product measurement. Assume the same-scope chart reports 1,000 clicks and the captured query table contains these six rows:

Captured queryClicksClassificationReason
cedarpilot login180BrandedExact brand identifier
cedar pilot pricing90BrandedApproved spaced variant
cederpilot alternatives30BrandedApproved misspelling
project planning software250Non-brandedNo agreed brand identifier
team task template200Non-brandedGeneric discovery query
cp login50ReviewAcronym is ambiguous

The captured set has 800 clicks: 300 branded, 450 non-branded and 50 requiring review. Branded share among captured known queries is 37.5%; non-branded share is 56.25%; review share is 6.25%. Coverage is 80% of the chart’s clicks.

The negative regex matches 500 captured clicks, but only 450 have been classified as non-branded. That difference is why an exclusion filter should not become a business label without review.

A defensible report says: “Among 800 clicks represented by captured queries, 37.5% were branded under dictionary v1. Another 50 clicks need review. The chart total was 1,000; 200 clicks were not attributable to captured query rows.”

It does not say “the other 700 clicks were non-branded.” That would assign both ambiguous and unavailable searches without evidence.

Compare performance without confusing mix and growth

For each comparison period, show T, K, coverage, B, N and R. Apply the same dictionary to both periods and use comparable completed date ranges. Preserve the export method too: capturing more available rows in the second period can change the apparent mix without changing search behavior.

Start with absolute clicks. A rising non-branded share could reflect more non-branded clicks, fewer branded clicks, or both. Share alone cannot distinguish these outcomes. Falling coverage should also reduce confidence in a story about the whole audience.

Inspect countries, devices and relevant landing pages only after establishing the headline split. Keep page-level analysis separate from the property-level reconciliation because aggregation can differ. Calculate segment CTR from summed clicks divided by summed impressions; do not average query CTR percentages.

Finally, branded does not mean returning customer, and non-branded does not mean qualified lead. For conversion questions, use the separate workflow for measuring SEO leads with Search Console and GA4, without pretending every conversion has a known search query.

Copy this analysis prompt and preserve the evidence

Use this with an assistant that can access your exports or reporting tools. Supply the dates and brand dictionary explicitly; do not let the assistant choose them silently.

Analyze branded vs non-branded Google Search clicks.
Property: [exact property]
Periods: [completed start/end dates for both periods]
Scope: [search type, country, device, page and appearance filters]
Brand rule version: [version]
Regex: [approved expression]
Exceptions and ambiguous identifiers: [list]

First confirm which real data you can access. Save the same-scope
chart total without a query filter as T. Sum captured query-row
clicks as K. State export limits and whether rows are truncated.
Classify each captured query as branded, non-branded or review.
Return query, clicks, impressions, label and classification reason.
Calculate B, N, R; verify B + N + R = K. Calculate B/K, N/K,
R/K and K/T. Do not average row CTRs. Keep T-K unattributed;
do not infer hidden phrases or label every regex exclusion non-brand.
Apply one rule to both periods. Explain changes in absolute clicks,
share and coverage separately. If a denominator is zero, report
its share as undefined. If totals are unavailable, say so.

Retain the raw files, retrieval settings, regex and reviewed exceptions. A polished summary without those inputs is hard to reproduce.

Run this QA checklist before sharing the split

  • Confirm identical property, search type and non-query filters across inputs.
  • Record exact completed dates and avoid preliminary periods where possible.
  • Save T before applying either query filter.
  • Test positive examples, negatives, misspellings and ambiguous abbreviations.
  • Confirm the regex matches brand-plus-modifier searches, not just the bare name.
  • Record row counts, export limits and the method used to obtain K.
  • Verify each captured query receives exactly one label and B + N + R = K.
  • Recalculate percentages from sums; disclose review share and K / T coverage.
  • Investigate unexpected totals or gaps rather than forcing reconciliation.
  • Reapply the same rule to both periods and preserve the inputs with the report.

FAQ

What counts as a branded search query?

A query containing your agreed brand identifiers, such as a company name, domain, distinctive product name or approved misspelling. Document ambiguous names and acronyms separately.

Does Search Console have a built-in branded filter?

Yes. Google documents branded and non-branded query filters, but availability is limited and classifications can be incorrect. A documented regex rule provides a separate, reviewable definition.

Is a query that does not match my regex definitely non-branded?

No. It may contain an omitted spelling, an ambiguous acronym or another brand identifier. Call it non-matching until you have reviewed the classification rule.

Which denominator should I use for branded click share?

For a classified query export, divide branded clicks by clicks in that same captured query set. Label the result as share among captured known queries and disclose its coverage of total clicks.

Can I assign missing queries to non-branded traffic?

No. Missing query text cannot support that classification. Keep the unattributed difference separate and investigate privacy, truncation and scope differences.

Sources checked: 2026-11-07. Google documents linked above describe current filter behavior and reporting limitations.

Create a GSC Magic account.

, Founder of GSC Magic

Łukasz builds GSC Magic, the MCP server that gives AI agents access to Google Search Console, Bing Webmaster Tools and GA4. He writes about using Search Console data with Claude, ChatGPT and coding agents, and about the SEO workflows those tools make possible.

lukaszblania.comgithub.com/lumizone

Give your agent your search data.

GSC Magic connects Claude, ChatGPT and Cursor to Google Search Console, Bing and GA4. Free plan, 7-day Pro trial, no card.

Start free