Monthly AI Visibility Report Template: Per-Engine Sections and Metric Definitions
99Visibility Research · Updated October 21, 2026 · 7 min read
Short answer
An AI visibility report template is a fixed monthly structure that reports each AI engine on its own row. It covers crawler access, index status, first-party AI data, prompt-sample results, and the wrong facts each engine states. Every number carries a label: first-party measurement, your own sample, or a modelled score. Lead with the per-engine rows, never with one blended number.
Key takeaways
- Report each engine separately, because in Otterly's 2026 experiment Microsoft Copilot produced 69% of one site's tracked citations while four Google and OpenAI surfaces barely cited it.
- Label every figure as measured, sampled, or modelled, and say so inside the report rather than in a footnote.
- Run access and index checks before anything else, since a blocked crawler or a deindexed site explains a zero faster than any content change.
- Never report a rank or position inside Google's AI features, because no position data exists to check it against.
- Run the full report monthly, re-check crawler access after any deploy or CDN change, and review the prompt set quarterly.
Why every engine gets its own row
A blended AI visibility score can hide the single most useful fact in your data: which engine is doing the citing.
Otterly's 2026 experiment shows this clearly. Of the 3,934 citations Otterly tracked for one test site, 2,718 (69%) came from Microsoft Copilot. ChatGPT, Gemini, Google AI Overviews and AI Mode almost never cited it. Google had deindexed the site while Bing kept it, so Copilot, which grounds on Bing, kept citing. One averaged number would have reported a middling score and hidden all of that.
Engines also differ in ways an average can't absorb. Google says AI Overviews and AI Mode "may use different models and techniques" and can return different links. Citation units differ too: Claude cites text spans, while Perplexity cites whole sources. There is no shared denominator to average across.
The move: give ChatGPT, Claude, Gemini, Perplexity, Copilot, Google AI Overviews and Google AI Mode their own rows. Treat AI Overviews and AI Mode as two products, not one "Google AI" line.
Label every number: measured, sampled or modelled
Readers trust a report until they find one number that isn't what it claims to be. Put one of three labels next to every figure.
- Measured. A first-party or mechanical record: Search Console's generative AI impressions, Bing's AI Performance citations, your own server logs of crawler requests, the status code a crawler gets back, your robots.txt rules.
- Sampled. Answers to prompts you chose and ran. These are real observations of a small slice. In Otterly's test, Microsoft's own report counted 42,817 citations for the same site where Otterly's prompt tracker logged 3,934. The time windows may not match, so it isn't an exact ratio, but it shows that a prompt set sees only part of the picture.
- Modelled. Any composite score, including vendor scores. Someone chose the weights. Any single AI visibility score also averages answers given with and without live retrieval, and you usually can't see which was which.
Modelled numbers are useful for tracking direction on a fixed method. They are not measurements, and the report should say so plainly. If you need the difference between two common citation metrics, read citation rate vs citation share before you define yours.
The template: sections and metric definitions
Use the same seven sections every month, in this order. Access comes first because nothing downstream works without it.
| Section | Metric | Definition | Label |
|---|---|---|---|
| 1. Access | Crawler reachability | Status code returned to OAI-SearchBot, PerplexityBot, Claude-SearchBot, bingbot and Googlebot on key URLs | Measured |
| 1. Access | robots.txt permission | Allow or disallow per retrieval bot, listed separately from training bots such as GPTBot | Measured |
| 2. Index | Google and Bing index status | Key pages indexed and snippet-eligible, from Search Console and Bing Webmaster Tools | Measured |
| 3. First-party AI data | Google AI impressions | AI Overviews and AI Mode impressions from Search Console (no clicks, CTR or position) | Measured |
| 3. First-party AI data | Bing citations and grounding queries | Citations and the queries the AI ran, from Bing's AI Performance report | Measured (grounding queries are a sample, per Microsoft) |
| 4. Prompt results | Mention rate and citation rate per engine | Share of your prompts where the engine named you, or linked you, with retrieval state noted | Sampled |
| 5. Accuracy | Wrong facts per engine | Each incorrect claim listed: the fact, the engine, what it said, what is true | Sampled |
| 6. Composite | Overall score | Your or your vendor's weighted score, method named | Modelled |
| 7. Changes | Fixes shipped and what moved | Dated log of changes and which measured number shifted after | Measured |
Keep robots.txt rows bot-specific. OpenAI states each crawler setting is independent: blocking GPTBot stops training use, while OAI-SearchBot controls whether you appear in ChatGPT search.
How to build it each month
- Freeze the prompt set. Use the same prompts as last month so changes reflect the engines, not your questions. The prompt set template covers categories.
- Run access checks first. Request key pages as each AI crawler and compare the result with robots.txt. A firewall or CDN can return 403 to a crawler that robots.txt allows. The AI Crawler Checker shows which crawlers your firewall turns away.
- Pull Google's numbers. Export AI Overviews and AI Mode impressions from Search Console. This Search Console generative AI report playbook explains what the report does and doesn't show.
- Export Bing's AI Performance report. Record citations, cited pages and grounding queries. See reading Bing's AI Performance report.
- Run the prompts per engine. Use logged-out sessions with memory off. For each answer, record whether it showed sources, which tells you whether retrieval likely ran.
- Log wrong facts. Write down each incorrect price, product name, location or claim, by engine.
- Compute the composite last. Name the method and label it modelled.
- Write the change log. List what you fixed, the date, and which measured row moved afterward. Say plainly when nothing moved.
Checklist before you send
- Every engine has its own row, and AI Overviews and AI Mode are separate.
- Every number carries a label: measured, sampled or modelled.
- Access results list each retrieval bot by name, with status codes.
- Training bots (GPTBot, ClaudeBot, Google-Extended) are reported apart from retrieval bots.
- Google and Bing index status are reported separately. One being healthy says nothing about the other.
- Prompt results note the date run, the session state and whether sources appeared.
- The prompt set matches last month, or the change is stated at the top.
- No rank or position metric appears for Google AI features.
- Wrong facts are listed individually, not only as a score.
- Any known reporting bug in the period is flagged next to the affected numbers.
- The change log says what was fixed and what you expect to check next month.
What good and bad results look like
Good signs
- Every retrieval bot gets a 200 on your key pages, and robots.txt matches what the firewall does.
- Key pages are indexed in both Google and Bing.
- Per-engine movement has an explanation you can point to, such as a fix shipped or a crawler unblocked.
- The wrong-fact list shrinks, or the same facts now appear correctly on a page the engines can fetch.
Warning signs
- A 403 to OAI-SearchBot while robots.txt allows it. That's a silent visibility failure, and fixing it is a priority.
- Google AI impressions fall to near zero. Check index status first, then the Search Console inclusion control, which can be inherited from a parent property. Also check for reporting bugs: a Google-side bug depressed impressions in these reports from roughly 12 August 2026.
- One engine carries nearly all citations, as Copilot did in Otterly's test. Check the other engines' indexes and access.
- The composite rose while no measured row moved. That usually means sample noise or a method change.
A warning sign is a list of things to check, not a verdict. Nobody controls what the models say. You control whether they can reach, index and quote your pages.
How often to repeat it
Run the full report monthly. Engines change models and defaults often, and a monthly cadence catches drift without drowning readers in noise.
Some checks need a faster loop:
- Access: re-run after every deploy, CDN change or firewall rule change. As of September 2026, Cloudflare blocks Training and Agent crawlers by default on ad-displaying pages for new domains and free-tier customers, so a site can lose AI access without anyone editing it.
- Prompt set: review quarterly. Change it only between reports, and note the change.
- Accuracy: re-check a wrong fact the month after you fix it on your site.
For leadership, condense the per-engine rows into a one-page summary using reporting AI visibility to your CEO. If you want to add revenue, read whether you can attribute leads to AI search first.
Frequently asked questions
Should my AI visibility report include a ranking position in Google's AI features?
No. As of October 2026, Search Console's generative AI report shows impressions only, with no clicks, CTR or position. Google also says third-party tools don't have access to its internal ranking data. Any position figure for AI Overviews or AI Mode has nothing to be checked against. Report presence, citations and impressions per engine instead, with labels.
Can I automate the monthly AI visibility report?
Partly. Crawler access checks and prompt runs can be scripted. Search Console's generative AI report and Bing's AI Performance report had no public API in the evidence we reviewed, so those numbers come from manual exports. See [whether you can automate AI visibility reporting](/questions/automate-ai-visibility-reporting) for what to script and what to export by hand.
Why do my tracked citations differ so much from Bing's own count?
Your tracker only counts answers to prompts you asked. Bing's report counts activity across real usage. In Otterly's experiment, Microsoft reported 42,817 citations for a site where Otterly's tracker logged 3,934, though the time windows may not match. Report both, label the tracker figure as sampled, and treat the first-party count as the wider view.
What should I do when one engine shows zero citations?
Work through the gates in order. Check that the engine's search crawler gets a 200 response and is allowed in robots.txt. Check the index that engine draws on, such as Bing for Copilot. Check whether answers showed sources at all, since an answer without retrieval can't cite you. Only then look at whether other sites the engine cites mention you.
Should AI referral traffic go in the report?
Yes, but label it as a partial count. ChatGPT adds a utm_source tag to some referral links, while Google AI Overviews send no distinct referral. Free-tier and app clicks often arrive untagged. Referral numbers are an upper bound on what you can see, not an estimate of total AI influence, and the report should say so.
Sources
This page is AI-assisted. It was written from a verified evidence base and checked against our editorial policy. Engine behaviour changes often; facts are as of October 21, 2026.