Run your first audit

Read one saved answer before any dashboard, then check visibility, framing, sources, crawler access and AI traffic in a first audit.

Kamal, Co-founder, DiscoveredBy 21 min read Updated

A first AI search audit starts with one saved answer, not a dashboard. Read that answer for four separate things: whether your brand appeared, how it was framed, what reasons the answer stated, and which sources it credited. Then widen out in order: confirm each empty result is a real zero rather than a failed collection, separate citations from recommendations, review framing and objections, list the sources answers credit, check that crawlers can reach your key pages, and see whether AI engines send you visits. Every finding describes what an answer said, what your site served or who arrived. None of it shows why a model chose a brand, so treat each one as a hypothesis to test.

In short

  • Read one saved answer before any trend, and keep four questions apart: appearance, framing, stated reasons and credited sources. A trend tells you where to look; an answer tells you what happened.
  • Label every empty result before you count it. A real zero, a Google run with no AI answer, a failed run and an answer not yet analysed look alike in a table, and only the first is a miss.
  • A citation and a recommendation are separate records. You can be cited and still framed as an alternative, and you can be named with none of your pages linked.
  • Crawler access and AI referral traffic come from your own site audit, logs and analytics, not from answers. They show whether bots could fetch a page and whether people arrived, not why an answer chose a source.
  • Write every finding at the strength its evidence supports: observed in one answer, repeated across comparable answers, or a hypothesis only.

Why read one answer before a dashboard?

Because a saved answer is the only place where all four kinds of evidence sit side by side. A score such as brand visibility can tell you something is wrong, but not what an answer said about you or which pages it linked.

One answer, read closely, tells you which kind of problem you have: absence (you are not named), position (named, but as an also-ran), reasons (the answer favours a rival on something you also do well) or sources (the linked pages are ones you have no presence in).

Figure 4.1 shows the four questions to ask of one saved answer, each with its own evidence. Ask them in this order, because each depends on the one before it.

  1. 1. Did your brand appear?

    Whether you are named at all, where, and in what order among the brands.

  2. 2. How were you framed?

    The role and sentiment for you and each competitor: top pick, alternative or aside.

  3. 3. What reasons did the answer state?

    The exact phrases about each brand's strengths and weaknesses. What the answer said, not what the model weighed.

  4. 4. Which sources did it credit?

    Every link the answer gave, and whether any is yours. A link is not proof of influence.

Figure 4.1. Four questions to ask of one saved answer, each with its own evidence.
  1. Did your brand appear? A mention is your brand named in an AI answer. Note whether you are named, the order of the brands, and whether you sit in the main recommendation or an aside. If you are absent, read the framing and reasons of the brands that were named.
  2. How were you framed? Framing is how the answer treats a brand: its tone (positive, neutral or negative) and its recommendation role, such as top recommendation, alternative option, warning or caveat, or not recommended. Role matters more than tone. An answer can be warm about you and still place you behind someone else.
  3. What reasons did it state? A stated reason is a reason the answer itself gives for its view of a brand, such as "cheapest option" or "limited integrations", presented as a strength or a weakness. Copy the exact phrase, because the phrase is the evidence.
  4. Which sources did it credit? A citation is a link in the answer pointing at a specific URL as a source. List each one with its domain, the type of page and the claim it sits next to, and note whether any is yours.

Hold one line firmly. Stated reasons show which arguments the answer chose to voice, not what the model weighed internally or why one brand came first. And a cited page was linked, which does not establish that it drove the recommendation. Chapter 1 explains why appearing, being cited and being recommended are three different results.

Illustrative example: Quillstone and its competitors are fictional, and the numbers are made up to show the method.

Quillstone sells document-review software to mid-sized legal and compliance teams. Its content lead sees an engine keep recommending Brieflane for "What is the best document review software for a mid-sized compliance team?", so she opens one saved answer. It names Brieflane, Clausewise and Quillstone, in that order, so this is not an absence problem. Brieflane is the top recommendation; Quillstone is named with a caveat. The stated reasons give integrations as a strength for Brieflane and a weakness for Quillstone. The answer links four pages: a Brieflane integrations page, a legal-technology publication's roundup, a review site listing and a Clausewise pricing page. None is on Quillstone's domain, and the roundup names Brieflane and Clausewise but not Quillstone.

What she can write: "In this answer, Quillstone was named third, framed with a caveat about integrations, and none of the four linked pages were ours." What she cannot write: "AI prefers Brieflane because of integrations." Asking the engine why would not settle it either; that produces another generated answer, not a window into the first.

One answer can be a fluke, so the next move is a handful of comparable answers: the same prompt, engine and collection channel, over a window chosen in advance. The full method is in why AI recommends your competitor, and the worksheet at the end of this chapter adapts it.

Is it zero mentions, no answer or a failed collection?

Check the state of every run before you count it. An empty result can mean the engine answered and did not name you, the engine showed no AI answer, the collection failed, or the answer has not been analysed yet. Only the first is evidence about your visibility; the others are gaps in the measurement.

Four terms carry this check. A run is one attempt to ask one engine one prompt. A collected answer is a run that completed and returned a result. An analysed answer is a collected answer whose brand mentions have been extracted. Brand visibility is analysed answers naming your brand divided by analysed answers, so anything that is not an analysed answer never enters the division, in either direction (Metrics defined).

Figure 4.2 walks one run through four questions in order: did collection succeed, did the engine show an answer, has the answer been analysed, and is your brand named? Each "no" is a different state, and only the last is a visibility result.

  1. 1. Did collection succeed?

    Yes: go to the next question.

    No: Failed run

    No answer was collected. Not a visibility result: check the run history and note the gap.

  2. 2. Did the engine show an answer?

    Yes: go to the next question.

    No: No AI answer shown

    Google only. Not a miss: read the shown rate and ask whether the prompt suits Google.

  3. 3. Has the answer been analysed?

    Yes: go to the next question.

    No: Not analysed yet

    The answer is stored but not read yet. Re-read after analysis finishes.

  4. 4. Is your brand named?

    Yes: a mention.

    No: Real zero

    The engine answered and did not name you. This is a visibility result: read which brands it named.

Figure 4.2. Telling zero mentions from no answer and from a failed collection.
  • Collection failed. No answer was collected (a timeout, a rate limit, a provider or internal error). A failed run is absent from the count, not counted as a miss. In DiscoveredBy it is retried automatically later the same day, while the prompt, the engine and your plan would still run it, and a run still failed after the last retry stays failed for that day (A run failed). Note the gap; never fill it with a guess.
  • No AI answer shown. Google does not show an AI Overview for every search. When the request works and no AI answer appears, the run is not an answer, so it is not a miss. It belongs in the shown rate, the share of Google runs on which an AI answer appeared (When Google shows no AI answer). A low shown rate says the prompt offers less to measure there, not that you underperformed.
  • Not analysed yet. The answer was collected, but its brand mentions have not been extracted, so it stays outside brand numbers until analysis catches up. Re-read it then.
  • Brand not named. This is a real zero: the engine answered, the answer was analysed, and you were not in it. It is the only state that counts as a miss, and it is still an observation about one answer, not a diagnosis. If your brand is named, the run is a mention.

Two rules follow for any report. A metric with nothing behind it reads as no data, never 0%. And a figure built on fewer than 30 observations is provisional.

Here is how much this matters, using one day of Quillstone runs for the same prompt across eight engines. A hand-built summary says "visibility 25%".

Engine Run state Counts as
Gemini (API) Analysed, names Quillstone Mention
Perplexity Analysed, names two rivals Real zero
Google AI Overviews No AI answer shown Not an answer
Google AI Mode Analysed, names Quillstone Mention
ChatGPT (app) Failed (timeout), still failed after the retries Gap
Gemini (app) Collected, awaiting analysis Not yet analysed
Claude Analysed, names a rival Real zero
Grok Analysed, names a rival Real zero

Eight runs, less one failure and one run with no AI answer, leaves six collected answers. One is not analysed yet, so five are analysed, and Quillstone is named in two: visibility is 2 of 5, or 40%. The "25%" divided two mentions by all eight runs, treating the failure, the no-answer run and the pending analysis as misses; only three runs are real zeros. The Google shown rate is 1 of 2, or 50%. Five analysed answers is far below 30, so the honest line reads: "40% on 5 analysed answers (provisional); 1 failed run; Google AI Overviews showed no answer." The result-state legend and a run log are in zero mentions, no answer, or failed collection; what gaps do to a trend belongs to chapter 6.

Treat the citation and the recommendation as two findings, and investigate them separately. A citation shows your page was linked as a source for something the answer said; a recommendation is the role the answer gave a brand. You can have the first without the second, and the second without the first.

Mention and citation combine four ways: cited and named, cited but not named, named but not cited, and neither. Cited and named still needs a role check, because an answer can name you as a caution ("popular, but limited integrations") while linking your page.

When your page is cited and your brand is not recommended, you cannot read the engine's reasons, so list candidate explanations and test each against the saved answer:

  1. The prompt was informational, so your guide supported an explanation and the answer never turned to products.
  2. The cited page does not name your brand, giving the answer nothing to attach a brand to.
  3. Your page was credited for a fact, such as a definition or a step, while the product suggestions came from other sources.
  4. Your name appeared in a form that was not recognised, such as an abbreviation not saved as an alias.
  5. The role is real, and lukewarm: you were named as an alternative or a caveat.
  6. The citation is not what it looks like: on some engines the citation list is broader than what the answer credited.

The first is about the prompt, and the fourth and sixth are about how the record was built, so rule those out before rewriting anything. The most useful single piece of evidence is the passage next to your link, because it tells you what job your page did: a definition, a how-to step, a comparison criterion or a product claim. The step-by-step investigation and its sheet are in cited but not recommended.

The opposite case, your brand named with no source, needs the same restraint. A missing citation is a fact about the answer's links, not a record of where the model learned about you. Some engines decide for themselves whether to search: DiscoveredBy never asks ChatGPT (app) or Gemini (app) to search, so some of their answers cite nothing (Engines and measurement). Grade what you say: named once, named across several days, named across engines. Claims about what appeared beside the mention describe co-occurrence only, and where a model learned something is never observable. Your brand is mentioned without a source has the claim-strength checklist.

How is your brand framed, and what objections come up?

Read tone, recommendation role and stated reasons as separate signals, because they can disagree, and the disagreement is where the useful reading is. Then treat objections, the downsides engines give when they are asked for them directly, as a separate source of evidence rather than part of the same count.

A positive sentiment share does not tell you how many answers recommended you. In DiscoveredBy it is positive mention records divided by classified records, with unclassified records shown separately and left out of the denominator (Sentiment). The unit is a stored mention record, not an answer or a person; unclassified is a missing label, not neutral; and a dash (no classified evidence) is not 0%.

Tone and role are stored independently, so look for the positive but cautious answers a headline percentage hides. Pull your brand's records with a positive tone and a warning or caveat role, then alternative option and not recommended, and read each saved answer in full. Do the same for the competitor you lose to, to see whether a cautious tone is peculiar to you.

Three questions turn each quote into a decision. Is the caveat conditional on a buyer situation, such as "for small teams"? Is a strength generic or specific? Is anything factually wrong? A wrong statement belongs in a fact-correction process, not a sentiment discussion; see what to do when AI gets your pricing or product facts wrong. The answer-review rubric is in AI brand sentiment: read the evidence behind a positive score.

Stated reasons carry one built-in limit: tracked prompts rarely ask for downsides, so the weaknesses you see are only the ones answers happened to volunteer. Objections come at the same question from the other side. An objection is a reason an engine gives, when asked directly, for why a buyer might not choose a brand. Because the question asks for downsides, an engine will usually list some for any brand, including a well-regarded one. Read objections relatively: which ones engines reach for first, how they compare with the objections raised about your competitors, and whether they are new or rising since the last comparable study.

Give each objection a triage call before anyone is assigned work: true and fixable (a product backlog item), true but explainable (a trade-off to explain plainly), outdated (refresh the page that states the current facts), wrong (correct your own pages first), unclear (rework the page so the answer is easy to find), category-wide (most competitors share it, so decide whether to address or accept it), or not actionable (record it and revisit). A concern that appears both as a volunteered weakness and as an objection deserves earlier attention, since it shows up in ordinary answers as well as when downsides are requested. The backlog template is in what AI says your product is bad at.

Which sources do the answers credit?

List every link the answers gave, sort each one by owner and type, and check what the engine actually credited before reading any citation as credit. The source list tells you where answers point; it does not tell you which page shaped a recommendation.

For each answer, record the URL, the domain, the type of page (your site, a competitor's, a review site, a publication, a forum or a social network) and the claim the link sits next to. Then split two lists that look alike: sources that mention your brand, and sources in your category that omit it. A third-party page that names your competitors but not you is the kind of gap chapter 5 turns into work.

Two recording rules affect what "yours" means. In DiscoveredBy, a citation is attributed to you when the link's registrable domain matches your project's domain, and the check does not read the page, so a syndicated copy of your article on another publisher's domain is attributed to that publisher (Citations). And engines differ in what they record: for Claude, every page its search returned is stored as a citation, so a Claude citation may be a page the engine only had in front of it.

A page is returned when the engine reports it among its search results, and attributed when the answer text credits it. Only some channels report both: in DiscoveredBy, rates are computed for Claude, Perplexity and Grok, and the other engines are listed with their answer counts and not compared (Retrieved vs cited). On a channel that cannot be compared, the honest record is "unknown", not "retrieved but not cited". Where a page was returned and not credited, check the sample, access, relevance and quotable evidence in that order, as your page was retrieved but not cited sets out.

Social and community pages need a read, not a count. A cited Reddit thread, YouTube video or LinkedIn post can be a buyer question you could answer well in your own channels (an opportunity), a claim that may be wrong or dated (a reputation question), or nothing that needs action. Read or watch it before you summarise it, because a saved link does not tell you what the page says. And a citation count is not permission to post in a community. Which Reddit threads, YouTube videos and LinkedIn pages appear in your AI answers? has the source-review worksheet.

Can crawlers reach the pages that matter?

Check access in two layers: what your site declares and delivers, which a site audit shows, and what bots actually requested and were served, which only your server or CDN logs show. A page bots cannot fetch has an access problem. A page they fetch without trouble that is never cited has a different problem, and access checks cannot say what it is.

A site audit returns findings of very different weight, so work through them by evidence rather than in list order. A sensible editorial ordering has four tiers.

  1. Blocked access: a robots.txt Disallow rule for a search or training crawler, a noindex directive, an unreadable robots.txt, or a skipped page. Confirm intent first: blocking a training crawler while allowing search crawlers can be deliberate, because they are separate controls.
  2. Failed pages: an HTTP status of 400 or above, or a page that failed to load. Recheck once to rule out a one-off.
  3. Content deficiencies: a title, heading or body text missing from the delivered HTML, content or links that appear only after JavaScript runs, or a missing or conflicting canonical. Delivered HTML is what your server sends before any script runs, which is all a crawler without JavaScript sees.
  4. Weak-evidence findings: a missing meta description or alt text, irregular headings, reading complexity, absent structured data. Real observations, but the weakest basis for an urgent fix, and never the reason to give for a missing citation.

A check that reads Unknown is a task, not a pass. And a clean audit is not a clean bill of health: an audit fetches each page as its own bot, from one lab request, and does not observe real crawler traffic. The four tiers, an owner for each finding and a copyable checklist are in an AI search site audit: which issues should you fix first?.

Logs answer the second layer in four steps. First, list which bots requested each important page, grouped by intent: training, search, user-triggered and other. Second, verify each request, because a user agent is only a claim: check the address against the ranges the bot's operator publishes, keeping verified, spoofed and unverified apart. Third, look at the status served to verified bots: a 4xx or 5xx means the bot did not get the page, and a redirect needs its destination checked. Only then compare the fetched pages with the pages answers cite.

That order keeps two questions apart until the end. A page that serves a 503 to verified bots needs an access fix whatever the citation data says; a page served a 200 every time and never cited raises a citation question instead. Missing from the logs is not the same as blocked, since a response served from a CDN cache may never reach an origin log. And a fetch next to a citation shows the two happened in the same window, not that the fetch produced the citation. AI crawler logs: how to tell an access problem from a citation problem has the six-cell reading and the log-review checklist.

Is AI sending you traffic?

Look in your analytics for sessions whose source is an AI engine's own referrer, then follow those sessions to the landing pages they reached and the conversion events recorded. The count is real but partial, so treat it as a floor, not a total.

AI referral traffic is the set of sessions whose recorded source is a domain belonging to an AI engine, such as chatgpt.com or perplexity.ai. Two kinds of visit fall outside it. A visit with no referrer is recorded as direct traffic, so it cannot be counted as AI. And Google AI Overviews and AI Mode have no referrer of their own, so their clicks arrive as ordinary Google search traffic (AI traffic).

Decide what a conversion is before you read one. Mark the events that matter as key events in GA4, write the list down, and say which event "conversion" means in every report. Then read one window in three passes: which engines sent sessions, which landing pages they reached, and how many recorded conversions followed. Compare it with the same number of days immediately before it.

Then join traffic to the rest of the audit: put the pages cited in answers beside the pages that received AI sessions. A page can be in both lists, in one, or in neither, and each case suggests a different question. What you cannot do is attribute a sale to a prompt. A session carries a source, a landing page and possibly a conversion; it does not carry the question the person asked or the citation they followed. A rise in direct sessions to a deep page that nothing on your site links to is a hint worth a note, not extra AI traffic. How to measure AI referral traffic and conversions with GA4 has the measurement worksheet.

How do you put the audit on one page?

Collect the six areas on one scorecard, so anyone reading it can see which findings rest on collected answers and which on your own site data. Figure 4.3 lays it out: each area, the question it answers, and where its evidence lives in DiscoveredBy.

Scroll sideways to see the whole table.

AreaThe question it answersWhere it lives in DiscoveredBy
VisibilityAre we named in answers to the buyer questions we track?Overview
CitationsDo answers link our pages, and which ones?Citations
FramingWhat role and reasons do answers give us and competitors?Sentiment trends, Brand reasons, Objections
SourcesWhich other sites do answers credit for our category?Citations, Domains
Crawler accessCan AI crawlers reach the pages that matter?Site audit, AI crawlers
AI trafficDo people arrive from AI engines, and what do they do?AI traffic
Figure 4.3. The first audit on one page: six areas, the question each answers, and where its evidence lives.

The same six rows work in any setup:

  • Visibility: do analysed answers name your brand? The evidence lives in saved answers and their run states, with the denominator stated.
  • Citations: are your pages linked, and does a linked page come with a recommendation? The evidence lives in each answer's sources and the roles it gave each brand.
  • Framing: what tone, role, stated reasons and objections do answers give your brand? The evidence lives in quotes from saved answers and from a direct objection study.
  • Sources: which domains and page types do answers credit, and which of them omit you? The evidence lives in the citation list, read engine by engine.
  • Crawler access: can bots fetch and read the pages that matter? The evidence lives in a site audit and in your server or CDN logs.
  • AI traffic: do engines send visits, to which pages, and do they convert? The evidence lives in your analytics.

For each row, write the finding, its claim strength (observed in one answer, repeated across a stated number of comparable answers, or hypothesis only) and the next check. Keep collection channels in separate columns, because app and API answers can differ and averaging them hides that. Date the scorecard and record the prompts it covers, because it is now your baseline: chapter 6 depends on comparing a fixed set of prompts against it, and the prompts themselves come from chapter 3.

For Quillstone, the first scorecard could read: visibility 40% on five analysed answers for one prompt, provisional; none of its pages linked in the answer read closely; named third with an integrations caveat; a publication roundup naming both rivals but not Quillstone; crawler access and AI traffic not yet checked. Every line is an observation or a stated gap. The next step is to repeat the reading across comparable answers, then choose work, which is chapter 5.

One-answer investigation worksheet

Copy this into a document or spreadsheet and fill it in for one saved answer, then repeat it for a few comparable answers before you call anything a pattern. It extends the diagnosis worksheet in why AI recommends your competitor with the run-state, citation and access checks from this chapter. Fill in the evidence sections before the conclusions.

ONE-ANSWER INVESTIGATION WORKSHEET

0. WHAT I AM LOOKING AT
   Prompt (exact text):
   Prompt intent / buyer stage (as saved, or unclassified):
   Engine and collection channel:
   Date collected:
   Country / language / persona (if set):
   Link to the saved answer:
   Why this answer: worst case / typical / random pick

1. RUN STATE (fill this first)
   State: mention / real zero / no AI answer shown (Google only) /
          failed run / collected, not analysed yet / pending
   If failed: reason shown, and did a retry replace it?   yes / no
   If no AI answer shown: stop here and record it for the shown rate

2. APPEARANCE
   Was my brand named?                          yes / no
   Brands named, in order:
   My position in the order:
   Named in the main recommendation or an aside?
   Named under a variant or abbreviation?       yes / no
   If yes, is the variant saved as an alias?    yes / no

3. FRAMING (one line per brand named)
   Brand | Tone | Recommendation role | Excerpt
   -----------------------------------------------------
   Mine:
   Competitor A:
   Competitor B:
   Positive tone with a cautious role?          yes / no
   Caveat conditional on a buyer situation? Which:

4. STATED REASONS (one line per reason)
   Brand | Label | Strength or weakness | Exact quote
   -----------------------------------------------------
   Mine:
   Competitor A:
   Competitor B:
   Reasons a rival gets that I could also claim truthfully:
   Reasons against me: wrong / outdated / true / unclear
   Also raised as an objection in a direct study?   yes / no / not checked

5. CREDITED SOURCES (one line per link)
   URL | Domain | Page type | Claim it sits next to | Mine? | Rank
   -----------------------------------------------------
   This engine records: credited sources only / every returned page / cannot tell
   Any of my own pages cited?                   yes / no
   If cited: passage it was credited for, and the job it did
             (definition / how-to step / criterion / product claim)
   If named with no link: named once / across days / across engines
             (where the model learned it: not observable)
   Sources that mention my brand:
   Sources in my category that omit my brand:
   Social or community pages to read in full:

6. THE PAGES BEHIND IT (my cited pages, or the page I expected)
   Page:
   Site audit tier: blocked / failed / content / weak / none / Unknown
   Verified bot requests in the window, latest status served:
   AI-referred sessions to this page, and conversions:

7. WHAT I CAN AND CANNOT SAY
   Observed in this answer (fact):
   Pattern to check across more answers (hypothesis):
   Not supportable from this evidence:

8. NEXT CHECK
   Comparable answers to open (same prompt, engine and channel,
   window set in advance):
   Analysed answers so far (provisional under 30?):
   One hypothesis to test:
   What would change my mind:
   Owner and date:

In DiscoveredBy

On Overview, choosing a recent answer opens it in full, with the brands it names in order, each one's position and sentiment, and each source marked as your page, mentioning you, not mentioning you or not checked; notices under the headline flag answers still being analysed and engines with failed runs in the window (Reading your first results). Brand reasons counts the strengths and weaknesses answers give for your brand and each active tracked competitor, with the quote behind every count, and Objections runs a separate weekly study that asks engines directly why a buyer might not choose each brand. Site audit crawls your site as DiscoveredByBot and compares the raw HTML with a browser render; AI crawlers reads your own server or CDN logs to show which bots requested your pages, whether each request was verified and what status it received; and AI traffic reads your GA4 property for sessions from known AI referrers, their landing pages and their conversions. Availability depends on your plan; see plans and limits.

Share

Summarize with AI

Go deeper

Start monitoring your AI visibility.

See how AI search engines talk about your brand.

Free to start. No credit card required.