For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Skip to content

Blog · Content Strategy

How do you run an SEO content gap analysis?

A content gap analysis finds the questions buyers ask that competitors answer and you do not, then ranks them by value and effort. Compare the keywords you and competitors rank for, read the AI answers to your category questions to see who gets named, check which pages decide each answer, and write the missing page or fix the weak one.

7 days free · card required

Answer · ChatGPTasked

Question: Otterly AI alternatives

ChatGPT answered: Quick picks: Cheapest/simple Otterly replacement: stay with Otterly or look at lighter trackers. Best for an SEO agency: Peec AI. Best for enterprise: Profound or Scrunch AI. Best if you already do SEO: Semrush or Ahrefs ecosystem.

Sources cited

  1. 1otterly.ai
  2. 2therankmasters.com
  3. 3aiseoshift.com
  4. 4geoptie.com
  5. 5brandaxis.ai
  6. 6dageno.ai

Not namedAttensira is missing from this ChatGPT answer.

Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, read over the Attensira MCP · · 1 stored answer; named 0 of 63, 5 Sep to 4 Oct
Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEO

Last updated

Key facts

A content gap analysis answers one question: which questions do your buyers ask that your competitors answer and you do not? The classic version compares keyword rankings. That still works for Google, but it misses the place many buyers now ask first, AI assistants, where the gap is not a ranking but a name that is missing from an answer.

This post gives you a method that covers both, a way to rank what you find, and a worked example from our own site, including what our product wrote to close the gaps it found.

What counts as a content gap?

There are three kinds, and they need different fixes.

  • A missing page. Nothing on your site answers the question. Competitors have a page for it; you do not.
  • A weak page. You have a page on the topic, but it does not answer the question directly, so it neither ranks nor gets quoted. This is the most common gap and the cheapest to close.
  • An off-site gap. The answer is decided by pages other people wrote (roundups, review sites, threads) and those pages name competitors, not you. No page on your own site closes it on its own.

A keyword gap report only shows the first kind. The other two need you to read the results and the answers.

How do you run a content gap analysis, step by step?

Step 1: Pick the competitors buyers actually compare you with

Three to five. Not the biggest sites in your space, but the ones that show up next to you when a buyer asks. A quick way to find them is to ask AI assistants your category question a few times and note who is named. Those are the brands your buyer will hear about first.

Step 2: Build the question list

Collect the questions from four places:

  1. Your own Search Console queries, especially those with impressions but few clicks.
  2. A keyword tool's competitor comparison: keywords two or more competitors rank for and you do not.
  3. Sales and support: the questions prospects ask before they buy.
  4. AI prompts: how buyers phrase the question to an assistant, which is longer and more specific than a search query. "Best AI visibility tool for a seed-stage B2B startup" rather than "AI visibility tool".

Group duplicates into one question each. A list of 30 to 100 questions is plenty for a first pass.

Step 3: Check the Google side

For each question, look at who ranks on page one and what kind of page ranks: a guide, a comparison, a tool, a product page. Note whether you rank, and with which page. If you rank with the wrong page (a blog post where a product page should be), that is a weak-page gap.

Step 4: Check the AI side

Ask each question to the assistants your buyers use, several times over several days, because answers vary from run to run. For each question record two things: which brands the answer names, and which pages it cites. Do not expect the Google results to predict this: the pages AI answers cite overlap only partly with the pages that rank, as why brands go missing from AI answers shows with outside data.

Step 5: Find the page that decides each lost question

For every question where competitors are named and you are not, look at the cited pages. Some will be competitors' own pages, which you cannot get onto but can answer with a better owner page. Many will be third-party pages, which you can get onto. Note for each whether it names you.

Step 6: Classify and rank

Give each gap a type (missing, weak, off-site) and score it on two axes: how valuable the question is (closeness to a purchase, volume, how often it is asked) and how much effort closing it takes. Start with high-value, low-effort gaps, which are usually weak pages.

What does a content gap look like on a real site?

Here is our own. These numbers are read from the attensira.com workspace in our product over the Attensira MCP on 4 October 2026: 61 tracked questions on ChatGPT and Perplexity, 4,524 answers between 4 September and 4 October 2026, read on 24 of the 31 days.

BrandAnswers that named it
Semrush1,621
Profound1,420
Ahrefs1,171
Peec AI988
Otterly AI967
Attensira197

That is the gap in one table: in the answers to our own category's questions, five competitors are each named between 4.9 and 8.2 times as often as we are. And every answer that names us is an answer to a question with our name in it.

The answer at the top of this page is one of those losses, read word for word. Asked for "Otterly AI alternatives" on 4 October 2026, ChatGPT recommended Peec AI, Profound, Scrunch AI, Semrush, Ahrefs and Promptwatch-style platforms, and cited roundup pages. From 5 September to 4 October, neither engine named or cited us in any of the 63 answers to that question, while Otterly AI itself was named in 48. Questions like this one are where the gap is widest, because the buyer is already choosing.

Broken down by type, the gaps look like this:

  • Weak page. For "what is generative engine optimization", ChatGPT cited one of our pages in 3 of 60 answers, and neither engine named us in any of 108. Wikipedia was cited in 81 of them. We have a page on the topic and the engine sometimes reads it; it does not give a definition worth lifting over Wikipedia's. That is a rewrite, not a new page.
  • Missing page. For "how to measure share of voice in AI answers", the deciding pages were independent explainers and competitors' guides. We had no page that owned the question. Our product drafted the article, "How to measure share of voice in AI answers", and it is waiting in our inbox for approval.
  • Off-site gap. For "AI visibility for SaaS companies", no brand was named in more than 2 of 112 answers, so nobody owns it yet. On Perplexity the answer was decided by guides from agencies and SaaS marketing blogs, none of which named us. A page on our site helps on ChatGPT; on Perplexity the work is getting onto the guides it already reads.

The fourth kind of finding is the honest one: some gaps are not worth closing. For "why am I not showing up in ChatGPT", OpenAI's own help centre carried 797 of 1,395 citations on ChatGPT. We will not out-rank OpenAI on OpenAI's product, so that question goes to the bottom of the list.

What does a filled-in gap worksheet look like?

Four of our own questions, filed by gap type, each with the reading that put it there. The type decides the work: a weak page is a rewrite, a missing page is a new owner page, an off-site gap is a placement, and a question one source owns goes to the bottom.

Gap worksheet · attensira.com · 4 questions
  • what is generative engine optimization

    Gap type
    Weak page
    Reading, 5 Sep to 4 Oct
    Cited in 3 of 60 ChatGPT answers; named in 0 of 108
  • how to measure share of voice in AI answers

    Gap type
    Missing page
    Reading, 5 Sep to 4 Oct
    No owner page; agent draft waiting for approval
  • AI visibility for SaaS companies

    Gap type
    Off-site
    Reading, 5 Sep to 4 Oct
    No brand named in more than 2 of 112 answers
  • why am I not showing up in ChatGPT

    Gap type
    Not worth closing
    Reading, 5 Sep to 4 Oct
    help.openai.com: 797 of 1,395 ChatGPT citations
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, read over the Attensira MCP · · 4 of 61 tracked questions; per question, 5 Sep to 4 Oct

What should the gap worksheet look like?

One row per question, and only the columns you will use to decide. A sheet with forty columns gets filled in once and never read again.

ColumnWhat goes in it
QuestionIn the buyer's words, as asked
StageLearning, comparing or buying
GoogleYour position and ranking page, or "not ranking"
AI answersHow many of the answers you read named you, out of how many
Deciding pagesThe three pages each engine leaned on most
On them?For each deciding page, whether it names you
Gap typeMissing, weak or off-site
Next actionRewrite page X, write page Y, get listed on Z, pitch W
Re-read dateWhen you will read the question again after the change

The last column is the one most worksheets leave out, and the reason most gap analyses never prove anything.

Does one engine name us more than the other?

The same 61 questions, read in ChatGPT and in Perplexity, counted apart. The two name attensira.com at about the same rate; a gap this small is inside the noise, so it is not a finding.

of ChatGPT answers name attensira.com
4.2%
n=2,346 answers
of Perplexity answers name attensira.com
4.5%
n=2,172 answers
link to it, ChatGPT / Perplexity
6.6% / 3.9%
n=4,518 answers
Analyst agentAnalystattensira.com workspace, Attensira MCP, ChatGPT and Perplexity · n=4,518 answers · to

How do you know a gap is closed?

Read the same question on the same engines before and after the change, over several days each time, and count. "Named in 2 of 30 answers before, 9 of 30 after" is a result you can act on. A single answer the morning after a page goes live is not. Give a rewrite two to four weeks and an off-site placement longer, because the engine has to re-read the page before anything can change.

How do you decide what to write first?

Rank the gaps with three questions:

  1. Is it close to a purchase? "Best X for Y", "X vs Y", "X pricing" and "alternatives to X" outrank definitions.
  2. Is it a weak page or a missing page? Rewriting the opening of a page engines already read is the fastest gap to close.
  3. Who decides the answer? If one dominant source owns the question (a platform's own help centre, an encyclopedia entry), the gap is expensive. If many small pages share it, a strong owner page or a few placements can move it.

Then write each owner page to answer its question in its first 40 to 60 words, in a sentence that names you and stands on its own, before any background.

What do most content gap analyses get wrong?

  • They stop at keywords. A keyword list does not tell you who the answer names.
  • They treat every gap as a new page. Most gaps are weak pages. New pages compete with old ones.
  • They read one answer. AI answers vary run to run. One reading is an anecdote.
  • They ignore off-site gaps. If the answer quotes a roundup, the roundup is the gap.
  • They never measure the result. Read the same questions before and after the new page ships, over several days, and accept "no change yet" as a result.

How does Attensira run this analysis?

Attensira reads your tracked questions on the engines you choose every day and stores every answer. For each question you lose, it lists the pages that decided the answer, ranked by citation share and position, and marks each one new (you are not on it), better (a competitor ranks above you) or fix (the work is your own page). Its agents then write the work: rewritten passages, new owner articles, directory listings and pitches, each waiting for your approval. To see the method behind the new, better and fix labels, read deciding sources in the docs.

What else do people ask?

What is a content gap in SEO?
A question your buyers search or ask an AI assistant that a competitor answers well and you answer badly or not at all. It can be a missing page, a page that exists but does not answer the question, or a question where third-party pages decide the answer and none of them names you.
Which tools do I need for a content gap analysis?
A keyword tool with a competitor comparison feature for the Google side, Google Search Console for your own queries, and a way to read AI answers to a fixed set of questions over several days. Spreadsheets do the rest. The judgement about which gaps matter cannot be automated.
How many competitors should I compare against?
Three to five. Pick the ones buyers actually compare you with, which are often the ones AI answers name next to you, not the biggest sites in your space. A publisher that ranks for everything is not a useful benchmark for a product company.
How often should I redo a content gap analysis?
Every quarter for the full method, and continuously for AI answers, because the brands and pages they name shift week to week. A gap list older than a quarter is mostly history.
Should I write a new page for every gap?
No. First check whether an existing page should own the question and only needs its answer rewritten. A new page is right when nothing on your site answers the question; otherwise you create a competitor for your own page.

Where do these facts come from?

2 sources, 7 statements: each statement with the page it came from and the day it was checked.

  1. attensira.com workspace, read over the Attensira MCP on 2026-10-04 (visibility by brand, 2026-09-04 to 2026-10-04, 4,524 ChatGPT and Perplexity answers to 61 prompts, 24 of 31 days read), Semrush was named in 1,621 answers, Profound in 1,420, Ahrefs in 1,171, Peec AI in 988, Otterly AI in 967 and Attensira in 197.

    attensira.com workspace, read over the Attensira MCP on

  2. attensira.com workspace, read over the Attensira MCP on 2026-10-04 (one tracked prompt, 5 September to 4 October 2026), for "what is generative engine optimization" attensira.com was cited in 3 of 60 ChatGPT answers and Attensira named in none of 108; en.wikipedia.org was cited in 81 of the 108.

    attensira.com workspace, read over the Attensira MCP on

  3. attensira.com workspace, read over the Attensira MCP on 2026-10-04 (5 September to 4 October 2026), for "AI visibility for SaaS companies" no brand was named in more than 2 of 112 answers; the first deciding sources on Perplexity were zenmedia.com, visiblie.com and averi.ai guides, none naming Attensira.

    attensira.com workspace, read over the Attensira MCP on

  4. attensira.com workspace, read over the Attensira MCP on 2026-10-04 (5 September to 4 October 2026), for "why am I not showing up in ChatGPT" on ChatGPT, help.openai.com carried 797 of 1,395 citations across 54 answers.

    attensira.com workspace, read over the Attensira MCP on

  5. attensira.com workspace inbox, read over the Attensira MCP on 2026-10-04, held four agent-written article drafts awaiting approval, including "How to measure share of voice in AI answers" and "Does my website show up in Perplexity?".

    attensira.com workspace, read over the Attensira MCP on

  6. attensira.com workspace, read over the Attensira MCP on 2026-10-04 (5 September to 4 October 2026): of 63 answers read for "Otterly AI alternatives", Otterly AI was named in 48; Attensira was named in 0 of 63 and cited in 0 of 63 (ChatGPT 0 of 33). The stored ChatGPT answer of 4 October named Peec AI, Profound, Scrunch AI, Semrush, Ahrefs and Promptwatch.

    attensira.com workspace, read over the Attensira MCP on

  7. Attensira ranks deciding sources by citation share times position weight, where position weight is 1 divided by mean position, and marks each source new, better or fix.

    docs.attensira.com · retrieved

Want software that does your AI-search visibility work, with you in control of every change?

7 days free · card required