Citegram

AI citations

AI Source Gap Analysis: Find the Sites AI Cites Instead of You

A step-by-step source gap analysis: log the sites ChatGPT and other assistants cite, score each gap, then pick the fix by page type. With a worked example.

An AI source gap analysis finds the pages that assistants like ChatGPT, Perplexity and Google AI Overviews cite when they answer your buyers’ questions without naming you. To run one, log every cited source for a fixed set of prompts across several assistants and repeated runs, compute three numbers per source (how often it’s used, how often those answers skip you, how often they name a competitor), multiply them into a gap score, then pick a fix for each top source based on its page type: outreach, a disclosed reply, a review campaign, a script or a page of your own.

A visibility score tells you that you’re missing. A source gap list tells you where to go next. This guide walks through the whole thing by hand, with a spreadsheet you can copy, then shows where Citegram does the same work.

Key takeaways

  • A source gap is a page or domain that assistants use often, that leaves you out, and that names your competitors. All three conditions matter.
  • Log sources over repeated runs and several assistants. One answer is a sample, not a pattern.
  • Score each source as usage × how often it skips you × how often it names competitors. A rough score is enough to rank a list.
  • The page type decides the fix: a listicle calls for outreach, a forum thread for a disclosed reply, a review page for real customer reviews, a video for a script, docs for a facts check.
  • Re-run the same prompts after each fix and watch the trend, not single answers.

What counts as a source gap

When an assistant searches the web before answering, it reads a handful of pages and often cites some of them. We cover how that selection works in how AI assistants choose sources. For a gap analysis, you only care about one subset: the sources that shape answers where your brand is absent.

  1. The source is used often. It appears in a meaningful share of the answers for your prompts, not once.
  2. It skips you. The answers that cite it don’t name your brand.
  3. It names competitors. The answers that rely on it recommend other brands in your category.

A page cited often that never names any brand (a general explainer) is less urgent. A page that names three competitors and not you, in answers to your most commercial prompts, is where the shortlist is being decided without you.

The worked example used in this guide

To keep things concrete, we’ll follow Brightloop, a client portal for agencies. Its tracked competitors are Taskhive, Planwise, Orbitask and Flowbench. (All five brands are fictional, and every number below is illustrative, chosen to show the method.)

Brightloop tracks 10 prompts, such as “best client portal for a small agency”, “Taskhive alternatives for agencies” and “how to share project updates with clients”. It runs each prompt in 4 assistants, twice. That gives 80 answers to work with. Brightloop is named in 22 of them.

Step 1: Fix the prompt set before you look at sources

Your gap list is only as good as the prompts behind it. Use questions buyers ask before they know your name: category questions, use cases with constraints, “alternatives to [competitor]” and head-to-head comparisons. Leave your brand name out of most of them.

Keep the wording fixed. If prompts change every week, the sources change with them and you can’t tell a real shift from a rephrasing. Our guide on choosing prompts to track covers how to build a stable set of 10 to 50 prompts.

Step 2: Log every cited source, one row per citation

Open a spreadsheet with two tabs. The first tab, Answers, gets one row per answer:

Column Example
Answer ID A-017
Date 2026-10-06
Prompt best client portal for a small agency
Assistant Perplexity
Run 2
Brightloop named? No
Competitors named Taskhive; Planwise; Orbitask

The second tab, Citations, gets one row per cited link, with the answer it came from:

Column Example
Answer ID A-017
Position 3 (third link cited)
URL roundup.example/best-client-portals
Domain roundup.example
Page type Listicle

Here is what a slice of the raw log looks like for one prompt:

Answer Assistant Run Brightloop named Competitors named Cited URLs
A-017 Perplexity 2 No Taskhive, Planwise, Orbitask roundup.example/best-client-portals; reddit.com/r/agency/… ; g2.com/categories/…
A-018 ChatGPT 2 No Taskhive, Planwise roundup.example/best-client-portals; taskhive.example/vs/planwise
A-019 Gemini 2 Yes Taskhive, Flowbench brightloop.example/docs/client-access; g2.com/categories/…
A-020 Google AI Overviews 2 No Planwise, Orbitask youtube.com/watch?v=… ; reddit.com/r/agency/…

Three practical rules make this log usable later:

  • Copy the URL, not the anchor text. Two answers can cite the same page under different titles.
  • Record answers with no sources too. An answer that cites nothing still counts in the denominator.
  • For ChatGPT, also note the web searches it ran. That query fan-out explains why a page was found, which matters when the fix is a page of your own.

Assistants don’t lean on the same pages, and some answers cite nothing. Repeat the runs: a source that appears once may be noise, while one that keeps coming back is part of how your category is described.

Step 3: Compute three numbers per source

Group the Citations tab by domain (and later by page) with a pivot table. For each source, count:

Number How to compute it What it tells you
Used Answers citing the source ÷ all answers How much influence the source has on your prompts
Without you Answers citing it that don’t name you How often it shapes an answer you’re absent from
Names competitors Answers citing it that name at least one competitor Whether it feeds your rivals’ recommendations

Count answers, not citations: a page linked three times in one answer still counts once for Used. Keep the raw citation count in a separate column, because citations per answer shows how central a source is when it does appear.

Step 4: Turn them into a gap score

A gap score combines the three signals so you can sort one column. In a spreadsheet, a simple version is:

Gap score = (Used ÷ Used of your most-cited source) × (Without you ÷ answers citing it) × (Names competitors ÷ answers citing it) × 100

In plain words: how big the source is compared with the biggest one, times the share of its answers that skip you, times the share that name a competitor. Your own site always gets 0, because it can’t be a gap.

Worked calculation for Brightloop’s top source, a “best client portals for agencies” roundup:

  • It’s cited in 26 of 80 answers. Used = 33%. It’s also the most-used source, so the first factor is 26 ÷ 26 = 1.
  • 24 of those 26 answers don’t name Brightloop: 24 ÷ 26 = 0.92.
  • 25 of those 26 answers name at least one competitor: 25 ÷ 26 = 0.96.
  • Gap score = 1 × 0.92 × 0.96 × 100 = 89.

Applied to the whole list, it gives a ranked table:

Source Page type Used Without you Competitors named alongside Gap score
roundup.example/best-client-portals Listicle 33% (26) 24 Taskhive, Planwise, Orbitask 89
reddit.com/r/agency thread “Client portal recommendations?” Forum 23% (18) 18 Taskhive, Planwise 62
g2.com client portal category page Review 25% (20) 12 Taskhive, Orbitask, Flowbench 46
YouTube video “Taskhive vs Planwise for agencies” Video 11% (9) 9 Taskhive, Planwise 31
taskhive.example/vs/planwise Comparison 9% (7) 7 Taskhive, Planwise 27
An agency workflow guide on a marketing blog Article 19% (15) 6 Taskhive (2 answers) 3
brightloop.example/docs/client-access Docs (yours) 13% (10) 0 Taskhive, Flowbench 0

Two things stand out. The workflow guide is used almost as often as the Reddit thread but scores 3, because its answers rarely skip Brightloop or name competitors. And the G2 page scores lower than its usage suggests, because Brightloop is already named in 8 of its 20 answers. The score is doing its job: it sends you to the roundup and the thread first.

Don’t over-engineer the formula: the aim is a ranked list, not a perfect model. When two sources score close, pick the easier fix.

Step 5: Let the page type decide the fix

The same gap score can call for very different work. Classify each source before you plan anything.

Page type What it usually is The honest fix Effort
Listicle A “best X for Y” roundup Pitch the author a factual inclusion, with a test account Low
Comparison A head-to-head page, often by a competitor Publish your own fair comparison; ask independent authors to include you Medium
Review A G2 or similar category or profile page Ask real customers for honest reviews; keep the profile complete. See G2 reviews and AI search Medium, slow
Forum A Reddit thread or community discussion A helpful reply from an identified account that discloses your affiliation. See Reddit and AI visibility Low
Video A YouTube review or comparison Offer creators access and facts, or publish your own walkthrough from a script High
Article A guide or news piece Pitch a correction or an expert contribution, or cover the topic better on your site Medium
Docs or reference Documentation, a wiki or an integration page Check the facts about you; fix your own docs so they answer the same question Low
Product A product or pricing page Make sure your own product and pricing pages state what assistants need Low
Homepage A brand’s homepage Usually a competitor’s: tighten your own positioning, then work the third-party gaps Medium

For Brightloop, that turns the top of the table into five concrete jobs: email the roundup author, reply in the r/agency thread, run a review request campaign for G2, write a short walkthrough video script, and publish a fair “Brightloop vs Taskhive vs Planwise” page.

Step 6: Work the top of the list

Take the top five to ten gaps and give each one an owner, a fix and a date.

Outreach to a listicle author

Keep it short and factual: what the product does, who it’s for, what it costs, how it differs, and a way to test it. Don’t ask for a ranking, and don’t pay for placement without clear disclosure. A sample email:

Subject: A client portal option for your agency tools roundup

Hi Jordan, I read your “best client portals for agencies” roundup. I work on Brightloop, a client portal for agencies of 5 to 50 people: clients get their own space for project updates, files and approvals, and it’s priced per agency, not per client.

If you update the list, it may be worth a look for readers whose clients need approvals in one place. Where it fits less well: teams that want full project management inside the same tool, which Taskhive and Planwise do more of.

I’ve set up a test workspace for you, no card needed: [link]. Happy to answer any question or correct anything you find.

Alex, Brightloop

It names a fit and a limit, offers a test and makes no claim the author can’t check.

A reply in a cited thread

Answer the question that was asked, with specifics, from an account that says who you work for. If a competitor fits the poster better, say so. The Reddit guide has a full sample reply.

A review request campaign

Invite a broad cross-section of real customers, not only the happy ones, and follow the platform’s rules on incentives. The G2 guide includes a sample email and follow-up.

A page of your own

When the gap is a topic rather than a site (ChatGPT keeps searching for something you don’t cover), publish a page that answers it. A brief built from the real answers makes that page much easier to get right; we walk through one in how to brief content AI assistants cite. Gaps on third-party pages are often worth more than another page on your own site, a point we develop in backlinks vs brand mentions.

Step 7: A 30-minute weekly routine

Once the first analysis is done, keeping it current takes about half an hour a week:

  • Re-run the same prompts in the same assistants and add the rows to the log
  • Refresh the pivot table and re-sort by gap score
  • Note new sources in the top ten and their page type
  • Check last week’s fixes: did the source start naming you? Do answers citing it name you now?
  • Pick one or two new gaps and assign an owner and a date
  • Note anything that changed in a source (a roundup updated, a thread locked, a video removed)

Expect weeks, not days. Read trends across runs and assistants; AI share of voice explains how to do that without overreacting to a single answer.

Common mistakes

  • Counting citations instead of answers. A page linked four times in one Perplexity answer isn’t four times as influential.
  • Chasing every cited domain. Most sources appear once. Work the ones that keep coming back.
  • Working at domain level only. “reddit.com” isn’t actionable; the specific thread is.
  • Ignoring page type. Emailing a forum or “optimizing” a competitor’s comparison page wastes time.
  • Gaming the sources. Fake reviews, sock-puppet accounts and undisclosed paid placements break platform rules and tend to be found out.
  • Changing prompts mid-analysis. You lose the baseline you need to see whether anything worked.

Where Citegram does this for you

Logging 80 answers by hand every week is the part most teams drop. Citegram is a Chrome extension with a dashboard: it asks your prompts in ChatGPT, Gemini, Perplexity, Claude, Grok, Mistral, Copilot, Google AI Overviews and Google AI Mode through the accounts signed in to your browser, and keeps every cited link in order with the answer around it.

Its source analytics view is the table from Step 4, built for you. Every cited domain has its type (you, competitor, UGC, review, editorial, reference, institutional, corporate), Used as the share of answers citing it, citations and citations per answer, Without you as the answers citing it that don’t name you, and a gap score from 0 to 100 that rises when a source is used often, skips you and names competitors (your own site is always 0). The competitors named alongside show as logos, with the assistants that use the source. A Pages tab lists every cited URL with its page type (homepage, listicle, comparison, review, article, docs, forum, video, product or other), sortable by Used, Without you or citations, and a Gaps only filter keeps only the third-party sites that appear in answers without you.

Opening a domain shows its usage over time, its share per assistant, the brands named alongside (you highlighted), its pages, the prompts where it appears split into “names you” and “skips you”, and the latest answers citing it. Each URL has the same detail in a side panel. Reddit threads, YouTube videos and G2 pages get their own tabs, and you can filter everything by period, tag, country tag, persona and assistant, then export to CSV on Pro.

From a domain, Draft content for this source opens Content studio with that source as the starting point, so the Step 6 jobs become a brief and a draft in the right format: a comparison page, a Reddit reply that discloses your affiliation, a review request campaign or a YouTube script. See the source analytics and Content studio pages for details.

FAQ

A source gap is a page or domain that AI assistants cite often in answers to your buyers’ questions, that doesn’t name your brand, and that names your competitors. It shows where the shortlist is being built without you.

How many prompts do I need for a source gap analysis?

Enough to see patterns: 10 to 30 prompts across several assistants is a reasonable start, run more than once. With fewer, most sources appear only once and the ranking is noise.

Should I fix my own site or third-party sources first?

Start with the sources that rank highest on your gap list. For “best X” and comparison prompts, those are often third-party pages such as roundups, review platforms and forums. When the gap is a topic nobody covers well, your own page is the fix.

Can I pay to be included in cited pages?

You can pay for sponsored placements where publishers offer them, but they must be clearly disclosed. Buying reviews or posting undisclosed promotions breaks platform rules and, in many places, advertising law.

Find your source gaps

The free plan tracks 1 prompt and 3 competitors on 1 assistant with 7 days of history and the top 2 cited sources, forever. Pro adds 20 prompts, all 9 assistants, every cited source and page with Used, Without you and a gap score, the Reddit, YouTube and G2 tabs, CSV export, and Content studio for $19 a month. See pricing.

In CitegramSource analyticsGap score, page types, Reddit, YouTube and G2

Free Chrome extension

See if ChatGPT recommends your brand

Check one question for free. Pro tracks 20 in all 9 assistants, shows the sources that leave you out and turns the gaps into drafts. Scale adds your team and a weekly run on our servers.

Check my brand for free