AI SEO Reports: What to Include and What to Leave Out
99Visibility Research · Updated October 21, 2026 · 9 min read
Short answer
An AI SEO report should show, engine by engine, whether AI answers name your brand for real buyer questions. It should also show whether each answer used live search, which facts the engines got wrong, and whether AI crawlers can reach your pages. Leave out any 'AI rank' and any blended cross-engine score presented as a measurement. Google exposes impressions only for its AI features, so no position data exists to check a rank against.
Key takeaways
- Report each engine and surface separately, because Google says AI Overviews and AI Mode may use different models and return different links.
- Record the retrieval state, model and date for every answer, or you cannot tell a change in your visibility from a change in how the engine answered.
- Count factual errors as a rate over answers that actually returned, and keep the single worst error visible.
- Put access checks first: per-bot robots.txt rules, firewall responses, server-side rendering and snippet controls are the findings you can actually fix.
- Drop AI rank, E-E-A-T scores, domain authority and any blended score that is presented as a measurement rather than a model.
Why an AI SEO report cannot copy an SEO report
A classic SEO report tracks positions in a list of links. AI answers don't work that way. An engine writes a paragraph, sometimes with sources and sometimes without, and the same question can produce a different answer on the next run.
It helps to split what happens into four stages:
- Parametric: what the model knows with no web access, frozen at its training cutoff.
- Access: whether a crawler may fetch and store your page.
- Retrieval: whether your page enters the model's context for a given question.
- Generation: which retrieved pages the model uses and cites.
Each stage fails in a different way, so a useful report measures them separately. A July 2026 critical survey of 45 GEO studies (arXiv:2607.14035) found that already-retrieved content can change how it gets cited, but no reviewed technique showed a stable, cross-platform effect on discoverability. That shapes the whole report. It should describe what the engines say and what blocks them, not claim a position you can push up.
What is in your control and what is not
Split every finding into one of three buckets before you write a single chart.
In your control: crawler permissions in robots.txt, firewall and CDN rules, server-side rendering of key content, noindex and snippet directives, and the facts stated on your own pages.
Partly in your control: whether the third-party sites that engines cite mention you. The evidence shows a strong association here, not a promised effect.
Not in your control: which model handles a question, whether the engine decides to search, how it rewrites the question, and which retrieved sources it cites.
Knowledge cutoffs belong in the last bucket. OpenAI documents a February 16, 2026 cutoff for its GPT-5.6 family and August 31, 2025 for the Instant path (chat-latest). Anything you published after a model's cutoff cannot appear in an answer that model gives without search.
The next move: put the controllable findings at the top of the report as actions, and the rest as context. A reader should never mistake an engine's behavior for a task on their list.
The report structure: five blocks
A report that holds up has five blocks. Each one answers a different question and lands with a different owner.
| Block | What it shows | Who acts on it |
|---|---|---|
| Per-engine answers | Named or not, cited or not, per engine and per question | Marketing |
| Retrieval state | Search on or off, model, date, logged-out or not | Whoever reads the trend |
| Factual errors | Wrong prices, product names, founding facts, competitor mix-ups | Content owner |
| Access checks | Per-bot robots.txt, firewall responses, rendering, snippet controls | Engineering |
| First-party data | Search Console AI impressions, Bing AI Performance figures | Marketing |
Keep the questions fixed from month to month so the trend means something. If you need a layout to start from, the monthly AI visibility report template follows this order. If you report to leadership, cut it down to the error count, the access fixes shipped, and per-engine presence, as described in reporting AI visibility to your CEO.
Per-engine results with retrieval state disclosed
Report every engine on its own line. Google states that AI Overviews and AI Mode "may use different models and techniques" and can show different links, so even two Google surfaces need separate rows.
For every answer, record:
- Engine and surface (for example ChatGPT, Perplexity, Claude, Gemini, AI Overviews, AI Mode)
- The model, where the engine shows it
- Whether search ran, and whether citations appeared
- The date of the run
- Whether the session was logged out with memory off
Retrieval state matters because it changes per question. As of October 2026, ChatGPT searches at the model's discretion, and web search in Claude.ai is a user toggle with no published default. An answer with no citations may come straight from the model's frozen training data. That explains many surprises, including why Claude can score low in a visibility report.
Separate being named from being cited, and cited from retrieved. OpenAI's API returns the sources a model consulted separately from the ones it cited, and OpenAI says the consulted list is often longer. The difference between citation rate and citation share matters here too.
Finally, label your prompt set as a sample. In Otterly's 2026 experiment, Microsoft's own AI Performance report credited one site with 42,817 citations while Otterly's prompt tracker logged 3,934. The time windows may differ, but any prompt sample sees less than the engine's own count.
Factual errors: count them properly
Wrong facts are the finding readers act on fastest. AI platforms get specific facts wrong about specific brands: an old price, a retired product, the wrong headquarters, a competitor's feature attributed to you.
How you count them decides whether the trend is honest:
- Use a denominator. Report errors as a rate over answers, the way established factuality metrics such as FActScore normalize by a count of facts. Summing penalty points makes a bigger prompt set look worse at the same error rate.
- Count only answers that returned. An engine that errored or refused gave no evidence. Counting it as a clean answer inflates accuracy.
- Keep the worst error visible. One critical error ("acquired by" a company that never bought you) should not vanish into an average of 400 answers.
- Separate wrong from unverifiable. "The answer states a price that contradicts our pricing page" is different from "the answer states a headcount we have no record of."
Then trace each error to a cause you can check. Often the same fact appears differently on your pricing page, about page and footer. Fix the contradiction on your own site first. For trend design, see what a hallucination trend report should include.
Access checks: the part you can fix
Access checks carry the strongest evidence of anything in the report. They work by removing blocks.
Per-bot robots.txt
Rules apply per bot, and OpenAI says each setting is independent. Blocking GPTBot stops training use. OAI-SearchBot controls ChatGPT search. A common error is a blanket AI block that removes search eligibility too. This pairing keeps search and blocks training:
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
Check PerplexityBot, Claude-SearchBot and Meta-WebIndexer the same way.
Firewall and CDN
A firewall or CDN can return a 403 to a crawler that robots.txt allows. OpenAI's help center says eligibility needs the crawler allowed and the host or CDN letting its published IP ranges through. From September 15, 2026, Cloudflare blocks Training and Agent crawlers by default on ad-displaying pages for new domains and free-tier customers, so access can change without anyone editing a file. The AI Crawler Checker requests a page as each AI crawler and shows which ones get turned away.
Rendering and snippet controls
Vercel's crawler study found ChatGPT's and Claude's crawlers fetch JavaScript files but don't execute them. Compare raw HTML with the rendered page and list facts that appear only after JavaScript runs. Also scan for noindex, nosnippet, max-snippet:0 and data-nosnippet, which keep content out of AI answers, often by template accident. In Search Console, inclusion in Google's generative features is on by default, but the opt-out control inherits to child properties, so confirm it hasn't been switched off upstream.
What to leave out
Most report failures come from metrics that look precise and measure nothing. Cut these:
- AI rank or position in Google AI. As of October 2026, Search Console's generative AI report shows impressions only, with no clicks, CTR or position. There is nothing to validate a rank against. See whether you can see AI Overview clicks in Search Console.
- A blended score presented as a measurement. Any single cross-engine score, including 99Visibility's, averages answers given with and without live retrieval. If you show one, label it as a model and show the per-engine lines beside it.
- E-E-A-T scores and domain authority. Google says E-E-A-T isn't a specific ranking factor, and no engine computes Domain Authority, which is a Moz metric.
- Schema or llms.txt as wins. Ahrefs' matched test found AI Overview citations fell 4.6% after pages added schema. Google Search ignores llms.txt. List them as housekeeping at most.
- AI traffic share from referrals. ChatGPT tags links with
utm_source=chatgpt.com, while AI Overviews send no referral at all. A share of trackable referrals measures tagging, not usage. - Crawler hit counts as visibility. A training crawler has no referral surface by design.
If you're judging an AI SEO report generator, use this list as the test. A tool that outputs an AI rank or an unlabeled single score is reporting something no engine exposes.
Order of work for your first report
Build the report in this order. Each step feeds the next.
- Run access checks. Robots.txt per bot, firewall responses per crawler, the rendering diff, snippet directives. Log every block as a fix with an owner.
- Pick buyer questions. Choose the questions a customer asks before buying, not your brand name alone. Keep the set fixed.
- Run them per engine. Logged out, memory off. Record model, date, retrieval state and citations for every answer. The free checker on this site runs up to three buyer questions as a snapshot if you want a starting baseline.
- Extract facts and errors. Compare each answer with your verified facts. Report the error rate, the worst error, and the source of each one.
- Pull first-party data. Search Console's AI impressions and Bing Webmaster Tools' AI Performance report, which shows grounding queries the AI actually ran. Neither has an API as of October 2026, so export by hand. Check whether Bing's report includes ChatGPT citations before you compare it with anything, and see Google's own tools for AI search visibility for what each one covers.
- Write actions, not adjectives. Every finding ends with what is wrong, who fixes it, and how you'll confirm the fix.
Repeat monthly with the same questions. Never promise the next report will show more mentions. Promise that the blocks you found will be gone.
Frequently asked questions
Is an AI SEO report generator worth using?
It can save time on running questions and extracting answers. Judge it on what it discloses. A good generator shows results per engine, records whether search ran, counts factual errors as a rate, and checks crawler access. Be wary of any tool that reports an AI rank or a single score without saying it is a model. No engine publishes position data, so that number cannot be checked.
Why do my AI visibility results change from week to week?
Several things move without you doing anything. Engines decide per question whether to search, rewrite questions into their own queries, and route to different models. Firewall defaults can change too, as Cloudflare's did on September 15, 2026. That's why each answer needs its date, model and retrieval state recorded. Without them, you cannot tell your visibility changing from the engine's behavior changing.
Should schema markup or llms.txt appear in an AI SEO report?
Only as housekeeping, never as a visibility win. Google says structured data isn't required for generative AI search, and Ahrefs' matched test found AI Overview citations fell 4.6% after pages added schema. Google Search ignores llms.txt, and no other engine documents reading it. Existing markup does no harm, so there's no need to remove it. It just isn't a lever for AI answers.
How many buyer questions should a report track?
The evidence gives no ideal number. What matters more is consistency: use the same questions every month so the trend compares like with like. Start with the questions a customer asks before choosing a product in your category, then add more as needed. Remember that any prompt set is a sample. Engines that publish their own counts, such as Bing, see more than a tracker does.
Sources
- AI Features and Your Website
- Overview of OpenAI Crawlers
- The rise of the AI crawler - Vercel
- 2000 AI Blogs Experiment: Does Google Penalize AI Content?
- [2607.14035] Optimizing Visibility in Generative Engines: A Critical Survey of Generative Engine Optimization (2023-2026)
- We Tracked 1,885 Pages Adding Schema. AI Citations Barely Moved.
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.