How to Measure AI Citation Share for Competitor Keywords
AI answer engine citation share for competitor brand keywords is measured by running a fixed set of competitor-related queries across ChatGPT, Perplexity, Google AI Overviews, Gemini, and Copilot, extracting every brand mention and source URL, and calculating: (your brand citations ÷ total brand citations) × 100. Track both mention-level citations (your brand is named in the generated answer) and source-level citations (your domain appears as a source or citation). These two numbers rarely match because an engine can mention a brand while citing a review site, competitor page, or another intermediary.
What counts as a citation?
AI answer engines don't treat citations like traditional blue links, so split measurement into two layers:
- Mention-level citation: brand name appears in the prose or list of the answer, such as "Acme, BrandX, and BrandY."
- Source-level citation: brand's root domain appears in footnotes, source cards, or linked citations, such as brandx.com.
For competitor keyword measurement, report both. A competitor can be mentioned repeatedly in prose without earning source citations, which is a different gap from having your domain listed as a source.
Step 1: Build the competitor brand keyword set
Track 50–200 keywords per competitor. Start with high-intent patterns that tend to pull brand citations:
- {competitor} alternatives
- {competitor} competitors
- {competitor} vs {your_brand}
- best {category} tools like {competitor}
- {competitor} pricing, {competitor} reviews, {competitor} features
- What to use instead of {competitor} for {use_case}
Group keywords into four intent buckets: alternative, versus, evaluation, and purchase. Citation rates move a lot between buckets. Alternative and versus queries typically produce 2–5× more brand citations than broad category queries.
Step 2: Run a fixed prompt set across engines
The measurement only works if every run follows the same setup: same prompts, same engine settings, and the same collection day each week.
- Perplexity API: set
temperature=0andreturn_citations=true. - OpenAI Responses API: use web search,
store=false, and captureurl_citations. - Gemini API: enable
google_search_retrievalgrounding and recordgroundingMetadata. - Google AI Overviews and Microsoft Copilot: often require manual capture; log answer text, date, and visible source cards.
For alternative queries, don't ask the engine to include your brand. That makes the measurement circular. The exception is "{competitor} vs {your_brand}" queries, where your brand belongs in the prompt.
Step 3: Extract and normalize citations
For each response, record:
- Engine and date
- Query and competitor target
- Full answer text
- Brands mentioned in the answer
- Source domains cited by the engine
Normalize brand names to a canonical brand ID. For domains, roll up subdomains to root domain: www.brandx.com, blog.brandx.com, and brandx.com all count as BrandX. Keep publisher domains like g2.com, capterra.com, reddit.com, and forbes.com out of the brand-domain share. Count them as a separate category because they often mention several brands in a single answer.
Tracking table template
| Week | Engine | Query | Competitor | Brands mentioned | Source domains | Your brand cited |
|---|---|---|---|---|---|---|
| W1 | Perplexity | best alternatives to Acme | Acme | Acme, BrandX, BrandY | g2.com, brandx.com, acme.com | Yes: mention + source |
| W1 | ChatGPT | Acme vs BrandX | Acme | Acme, BrandX | acme.com, brandx.com | Yes: mention + source |
| W1 | AI Overviews | Acme pricing | Acme | Acme | acme.com | No |
Step 4: Calculate citation share
Apply three formulas:
- Mention citation share: (your brand mentions ÷ all brand mentions) × 100
- Source citation share: (your domain citations ÷ all source citations) × 100
- Competitor citation gap: competitor share − your share
| Metric | Formula | Example |
|---|---|---|
| Mention citation share | (your brand mentions ÷ total brand mentions) × 100 | 195 ÷ 1,300 = 15% |
| Source citation share | (your domain citations ÷ total source citations) × 100 | 72 ÷ 480 = 15% |
| Competitor citation gap | Competitor share − your share | 35% − 15% = 20 pts |
In a 100-keyword set run across 5 engines, you get 500 responses. If those responses contain 1,300 brand mentions and your brand appears 195 times, your mention citation share is 15%. If the primary competitor appears 455 times, their share is 35%, leaving a 20-point gap.
Leave responses with zero brand citations out of the denominator. A response that names no brands and cites no domains doesn't count toward brand citation share.
Step 5: Segment by engine and intent
Don't track a single blended number. Citation share changes by engine and query type, so create separate views for:
- Perplexity vs ChatGPT vs Google AI Overviews vs Gemini vs Copilot
- Alternative queries vs versus queries vs evaluation queries
- Mention-level vs source-level
This answers the operational questions: "Where are we being cited?" and "Which engine drops us first?" For example, an 18% share in Perplexity with 6% in Google AI Overviews points to different fixes than a uniform drop across engines.
Step 6: Set a baseline and monitor weekly
Run the same set weekly or biweekly. AI answer citation share can move 10–30% between snapshots because engines rerank sources, change models, or rotate citations. Treat a change below 5 percentage points as noise. Investigate if:
- Your share drops more than 5 points against the baseline.
- The primary competitor share grows by more than 10 points.
- Your source-level share falls while mention-level share stays flat.
When that happens, check whether AI crawlers can reach key pages. Use UpGeo’s AI crawlers list to verify access for GPTBot, PerplexityBot, Google-Extended, and others.
How to improve low citation share
Measurement is only useful if it leads to fixes. Start with these:
- Make your brand entity and category relationships explicit on comparison and category pages.
- Add structured product comparisons, pricing tables, and alternate-to-X sections.
- Publish clean machine-readable context for answer engines using an llms.txt file. You can create one quickly with the llms.txt generator.
- Build the fundamentals of GEO, not just link building: answer engines cite sources that are specific, current, and easy to attribute.
UpGeo gets your brand cited across ChatGPT, Perplexity and Google AI.
See plans