Branded vs Unbranded Prompts: Why AI Scores Look Too Good
Branded vs unbranded prompts: counting prompts that name you lifted our AI visibility score from 26 (last of 6) to 51 (first). How to split them and why.
If your AI visibility score looks too good, the usual cause is branded prompts counted as if they were unbranded. A prompt that names you gets an answer that names you, every time. In our data, all 120 branded answers named the brand. Counting them lifted our visibility score from 26.0 (last of six brands) to 50.7 (first), without one extra buyer seeing us.
This post walks through the failure, shows how far it moves each metric on real answers, and explains what branded prompts are actually for. It ends with a script that splits your own answers and checks that each prompt's branded label matches its text.
Data used: 50 buyer prompts (35 unbranded, 10 branded, 5 brand-vs-rival comparisons) ร ChatGPT, Gemini, Perplexity and Claude ร 2 runs on 2026-10-20: 400 answers with web search on, collected by BugViso's AI Visibility Tracker for bugviso.com against five anonymised competitors.
Anatomy of the Inflation
A branded prompt contains your brand name, an alias or your domain: "how much does BugViso cost". An unbranded prompt describes the buyer's need without naming you: "which pay-per-report website audit tool is best for a solo consultant". A comparison prompt names you and a rival: "BugViso vs Competitor A for technical SEO audits".
The engine's job on a branded prompt is to describe you, so naming you is guaranteed. That's why it measures nothing about discovery. Here's what each prompt type produced:
| Prompt type | Answers | Named us | Named us first | Cited our site | Named a rival |
|---|---|---|---|---|---|
| Unbranded | 280 | 7.5% | 18 of 21 | 10.7% | 38.9% |
| Branded (us only) | 80 | 100% | 80 of 80 | 96.2% | 0% |
| Comparison (us vs a rival) | 40 | 100% | 30 of 40 | 100% | 100% |
On branded prompts the engines behaved like a product page: they named us first every time, cited our site in 77 of 80 answers and never mentioned a competitor. Comparison prompts stayed narrow too. Only 2 of 40 brought in a rival beyond the one named in the prompt.
Reproduce It: The Same Answers, Scored Two Ways
We scored the 400 answers with BugViso's production scoring code twice: once with branded prompts excluded (the correct way), and once treating every prompt as unbranded.
| Metric | Unbranded only | Everything blended |
|---|---|---|
| Visibility (V) | 7.5 | 35.2 |
| Share of voice (S) | 10.9 | 34.7 |
| Position (P) | 72.9 | 98.0 |
| Own-site citations (C) | 10.7 | 36.8 |
| Sentiment (T) | 50.4 | 63.1 |
| Visibility score | 26.0 | 50.7 |
| Rank of 6 | 6th | 1st |
Every part of the score rises, because branded answers are perfect on every part. Competitors fall at the same time: Competitor A, the real leader at 39.4, drops to 36.1 in the blended version because branded answers add our appearances to the share-of-voice denominator.
The blended report would tell a client they lead their category in AI search. The honest one says they're last. The difference is a filter, not a strategy.
How Much Each Branded Share Inflates the Number
The inflation scales with the share of branded prompts in the set. Using our real rates (7.5% unbranded, 100% branded):
| Branded share of prompts | Mention rate you'd report | True unbranded rate |
|---|---|---|
| 10% | 16.8% | 7.5% |
| 20% | 26.0% | 7.5% |
| 30% | 35.2% | 7.5% |
| 50% | 53.8% | 7.5% |
Our own set was 30% branded (15 of 50), which is a sensible mix for checking accuracy. Blended, it would report 35.2%, higher than the category leader's real unbranded rate of 25.4%. Even 10% branded more than doubles a challenger's number.
๐ก Rule of thumb: a mention rate above 30% for a young brand is a reason to check the prompt mix before you celebrate.
The 4 Root Causes, with Fixes
1. No branded flag at all
Many tracking sheets have one column of prompts and one score. Every answer counts the same.
# โ Broken: one pool, one number
mention_rate = answers_naming_you / all_answers # 141 / 400 = 35.2%# โ
Fixed: score unbranded answers; report branded separately
mention_rate = unbranded_naming_you / unbranded_answers # 21 / 280 = 7.5%
branded_check = branded_naming_you / branded_answers # 120 / 120 (expected)2. Labels that don't match the text
A prompt tagged "unbranded" that says "is BugViso worth it" leaks the name. Edited prompts drift the same way: someone adds a product name to make a question "more specific". The fix is to derive the label from the text by matching your name, aliases and domain, not to trust a manual tag. The script below flags every mismatch.
3. Comparison prompts counted as discovery
"BugViso vs Competitor A" names you by construction, just like a branded prompt. Our 40 comparison answers named us in all 40. Treat comparison prompts as branded for visibility, and read them for positioning instead.
4. Domains and aliases missed by the matcher
"How does bugviso.com check llms.txt" is branded even without the capitalised name. Match the registered domain and every alias. Our brand mention detection guide covers the edge cases.
What Branded Prompts Are Good For
Branded prompts are worth keeping, just not in the visibility score. They're the best place to check what engines believe about you.
| Use | Branded answers | Unbranded answers |
|---|---|---|
| Claims about the brand checked | 619 | 79 |
| Claims per answer naming us | 5.2 | 3.8 |
| Inaccurate claims found | 9 | 1 |
| Answers labelled "concern" | 3 | 0 |
| Our site's share of citations | 68.9% | 2.2% |
Branded answers produced 9 of the 10 factual errors we found and all 3 answers that raised concerns. That makes sense: when a buyer asks about you directly, the engine goes looking for prices, plans and policies, which is where errors live. Our AI brand accuracy audit found every error was about pricing or plans.
Branded prompts also show which of your pages engines treat as the source of truth. Our own site carried 68.9% of branded citations overall, ranging from 55.7% on Claude to 74.8% on Gemini. When that share is low, engines are describing you from third-party pages, and those pages decide what buyers hear. Clear Organization structured data and consistent facts across pages help engines tie those descriptions to the right entity.
Comparison prompts are where positioning shows. Our 40 comparison answers had the highest sentiment of any group (67.6 on a 0โ100 scale) but named us first in only 30 of 40. The other 10 opened with the incumbent and explained us relative to it.
Step-by-Step: Splitting Branded vs Unbranded Prompts
- Tag every prompt from its text. Match brand name, aliases and registered domain, case-insensitive with word edges. A prompt that names you is branded. One that names you and a rival is a comparison.
- Score visibility on unbranded prompts only. That covers mention rate, share of voice, position, citations and the composite index.
- Keep 20โ30% branded prompts anyway. Use them for accuracy, sentiment and source checks, as in the table above.
- Report branded results in their own section. Label it "how engines describe us", not "visibility".
- Re-tag after every edit. A reworded prompt can change type, so derive the label again rather than copying the old one.
- Check the blended number once. If it's far above the unbranded one, every chart that mixes them is misleading.
The same split applies to traditional search, where analysts separate branded and non-branded queries in the Search Console performance report for the same reason: brand demand flatters every metric.
Split Your Own Answers with a Script
The script tags every answer by whether its prompt names you, so it doesn't depend on your labels being right. It then prints mention rate, own-site citation rate and rival mentions for each group, plus the blended mention rate you'd report at different branded shares. If your CSV has a branded column, it lists every prompt whose label disagrees with its text.
#!/usr/bin/env python3
"""Split AI visibility by branded vs unbranded prompts and show how much blending inflates it.
Usage: python3 branded_split.py answers.csv --brand Acme --domain acme.com [--alias "Acme Inc"] [--competitor Globex ...]
answers.csv columns: engine, prompt, answer, cited_urls; `branded` (1/0) is checked against the prompt text.
"""
import argparse, csv, re
from collections import defaultdict
from urllib.parse import urlparse
def main():
ap = argparse.ArgumentParser()
ap.add_argument("csv"); ap.add_argument("--brand", required=True); ap.add_argument("--domain", required=True)
ap.add_argument("--alias", action="append", default=[]); ap.add_argument("--competitor", action="append", default=[])
a = ap.parse_args()
terms = [a.brand, *a.alias, a.domain]
you = re.compile("|".join(r"(?<![\w-])" + re.escape(t) + r"(?![\w-])" for t in terms), re.I)
rivals = [re.compile(r"(?<![\w-])" + re.escape(c) + r"(?![\w-])", re.I) for c in a.competitor]
groups, mislabelled = defaultdict(list), []
for r in csv.DictReader(open(a.csv, newline="", encoding="utf-8")):
names_you = bool(you.search(r["prompt"]))
if "branded" in r and (r["branded"] == "1") != names_you:
mislabelled.append(r["prompt"])
groups["branded" if names_you else "unbranded"].append(r)
own = lambda r: any((urlparse(u).hostname or "").lower().removeprefix("www.").endswith(a.domain.lower())
for u in r["cited_urls"].split())
print(f"{'prompts':<11}{'answers':>8}{'named you':>11}{'cite your site':>16}{'name a rival':>14}")
rate = {}
for g in ("unbranded", "branded"):
R = groups[g]
if not R:
continue
named = sum(bool(you.search(r["answer"])) for r in R)
rate[g] = named / len(R)
print(f"{g:<11}{len(R):>8}{100 * rate[g]:10.1f}%{100 * sum(map(own, R)) / len(R):15.1f}%"
f"{100 * sum(any(x.search(r['answer']) for x in rivals) for r in R) / len(R):13.1f}%")
if len(rate) == 2:
print("\nMention rate you'd report if branded prompts were mixed in:")
for share in (0.1, 0.2, 0.3, 0.5):
print(f" {share:4.0%} branded -> {100 * ((1 - share) * rate['unbranded'] + share * rate['branded']):5.1f}%"
f" (true unbranded rate {100 * rate['unbranded']:.1f}%)")
for p in sorted(set(mislabelled)):
print("label doesn't match text:", p)
if __name__ == "__main__":
main()python3 branded_split.py answers.csv --brand "Acme" --domain acme.com --alias "Acme Inc" \
--competitor "Globex" --competitor "Initech"On our 400 answers it prints 7.5% for unbranded and 100.0% for branded, own-site citation rates of 10.7% and 97.5%, and the same inflation table as above. It found no mislabelled prompts, because the tracker derives the labels from the text too.
How BugViso Keeps Branded Prompts Out of Your Score
BugViso's AI Visibility Tracker gives every prompt a kind: discovery (unbranded), branded or comparison. The kind is set in code from the names in the text, never trusted to a language model or to manual tags. A drafted discovery prompt that contains your name, alias or domain is rejected. A branded prompt that names a competitor becomes a comparison. A prompt you add or edit is classified again from its words.
The visibility score, leaderboard, engine scorecard and segments use unbranded answers only. Branded results get their own line in the report (the share of branded answers that name you and their mean sentiment), marked as kept out of the index. The prompt table can be filtered to unbranded, branded or versus prompts. Accuracy deliberately uses every answer, branded included, because that's where engines describe the brand most. Before a prompt set starts tracking, the freeze check requires at least 50% unbranded prompts, and the default draft is 70% discovery, 20% branded and 10% comparison. You can see the split for your own brand on the AI visibility tracker.
Traps and Edge Cases
Category words that contain your name. A brand called "Audit" would turn every audit question into a branded prompt. Common-word names need a confirmation step, which BugViso runs for brands flagged as common words.
Product names vs company names. If buyers ask about a product line ("Acme Scanner"), add it as an alias, or those prompts slip into the unbranded pool.
Competitor-named unbranded prompts. "Alternatives to Competitor A" doesn't name you, so it's unbranded, but it isn't neutral either. Keep these few. The tracker caps them at max(3, 10% of discovery prompts).
Sentiment on branded answers. It runs lower than on unbranded ones: 60.3 vs 65.3 in our data. Branded answers mention drawbacks and limits, while unbranded answers name you only when you fit. Don't compare the two.
"Cited our site" isn't "only our site". Every engine cited our site on nearly every branded answer (28 of 30 on ChatGPT, 29 of 30 on Claude, 30 of 30 on Gemini and Perplexity). Yet our pages were only 55.7โ74.8% of the citations on those answers. The rest were third-party pages, and that's where an outdated price or a wrong plan name comes from.
Low unbranded counts. With 21 unbranded mentions, our 7.5% has a 95% Wilson interval of 5.0โ11.2%. The branded 100% is certain and uninformative. Precision lives in the unbranded pool, so that's where to add prompts. For prompt-set design, see how to build an AI visibility prompt set.
Frequently Asked Questions
What is the difference between branded and unbranded prompts?
A branded prompt names your brand, alias or domain, so the answer will name you too. An unbranded prompt describes the buyer's need without naming you, so being named in its answer means the engine chose you.
Should branded prompts count toward AI visibility?
No. In our data, engines named the brand in 120 of 120 branded answers. Counting them raised our score from 26.0 to 50.7 and our rank from last to first. Score visibility on unbranded prompts and report branded ones separately.
What are branded prompts useful for?
Accuracy, sentiment and source checks. Branded answers held 9 of the 10 factual errors we found, all 3 answers that raised concerns, and show which of your pages engines treat as the source of truth.
How many branded prompts should a tracking set include?
Enough to check accuracy across your main facts, typically 20โ30% of the set. Keep at least half the set unbranded so the visibility score rests on enough answers.
Is a comparison prompt branded?
Yes, for visibility purposes. "Acme vs Globex" names you by construction, and our 40 comparison answers named us in all 40. Read comparison answers for positioning: who is named first and how you're described.
Score Discovery, Read Branded Answers for Facts
Branded prompts tell you what engines say when buyers already know your name. Unbranded prompts tell you whether buyers will learn it. Keep them apart in every number you report, which is how BugViso's AI visibility tracking scores every run.
See where your site stands
Run a free BugViso audit for SEO, speed, accessibility and AI search readiness โ with fixes you can ship today.