Sample report

What does a client report look like?

A walkthrough of the AI Visibility Audit you’d receive, a decision on page 1, then scores, evidence, fixes and the fix list we work from, shown on a fictional business, Example Ledger Co. Every number on this page is example data.

Illustrative example
A composite scenario showing our approach. Not a real client and not real results. Prompt measurement across AI tools is Coming, as part of the Retainer.
Page 1

The decision, before the detail

The first page tells the owner whether it’s worth pursuing, the three moves that matter most, and what would need to be true for them to pay off.

DecisionExample data, fictional business

Worth pursuing. The site is crawlable and AI crawlers aren’t blocked, but no page answers the questions customers ask, and the business details can’t be confirmed from a structured source.

Three moves

  1. Publish an answer-ready FAQ page, starting with “How much does a bookkeeper cost in [Local area]?”
  2. Add Organization and LocalBusiness JSON-LD with the current street address
  3. Make the business details on public listings match the website footer

What would need to be true

  • Customers ask questions like these before they call (not measured here, prompt measurement is Coming)
  • Someone can publish and keep the new pages current
  • Someone can make the fixes, our Sprint or your own team, with your sign-off on every change
The report

One document, three readers

The owner reads the first page, the decision, the scope box, the short fix list. Whoever does the work gets the detail and an editable tracker. And the evidence is logged for anyone who wants to check our working.

Example data, a fictional business on a .example domain

ScopePrinted on the cover, what was measured, and what wasn’t

Measured

  • Site crawl and page checks, crawl & indexing, on-page, content quality, links & architecture
  • Structured data & sharing checks, and security & trust checks
  • AI search readiness, AI crawler access and readiness heuristics

Not measured

  • PageSpeed performance, the performance module didn’t run in this example
  • Search visibility & authority, needs market data outside this example’s scope
  • First-party analytics, no GA4 / Search Console access in this example
  • Prompt measurement across ChatGPT, Gemini and Perplexity, Coming, as part of the Retainer

Areas without data are marked Not assessed below, never estimated, never a fake 100. A real report lists its gaps the same way.

Score summary

Nine areas, gaps left blank

After the decision block comes the score, a summary, not the outcome, with the nine audit areas underneath. Areas a module didn’t cover stay Not assessed.

Example data

61 / 100 overall

Across the seven assessed areas. The score summarizes the checks, it doesn’t predict inquiries, and it isn’t how we report progress. Progress is the fixes we verify.

AreaWhat it capturesScore / 100
Crawl and indexingCan crawlers reach and index the site70
On-pageTitles, headings and page-level signals64
Content qualityWhether pages answer the questions clearly55
Links and architectureInternal linking and site structure61
Structured data and sharingJSON-LD and sharing metadata55
AI search readinessAI crawler access and readiness heuristics (llms.txt noted as optional)52
PerformancePage speed signals, needs the performance moduleNot assessed
Security and trustHTTPS and baseline trust checks72
Search visibility and authorityMarket and authority data, needs sources outside this example’s scopeNot assessed

Illustrative overall score: the weighted mean of the assessed areas, using the published method weights (see our methodology), renormalized over the seven areas assessed here. All figures are example data, and “Not assessed” areas contribute no number.

Recheck

The fixes we promised, rechecked

From the second report onward, a targeted recheck sits near the top: each fix we promised, rechecked under the same inputs and marked verified fixed, still open or not rechecked. A fix counts only once it’s verified.

Example data, two fictional runs
Baseline 12 September 2026, recheck 2 October 2026. Anything we couldn’t check is marked not rechecked, never assumed fixed.

2 verified fixed · 2 still open · 1 not rechecked. 2 new issues found on the recheck.

  • Add JSON-LD structured data to key pagespage-check_2026-10-02 · Organization + LocalBusiness found on home and services; validates cleanlyVerified fixed
  • Make business details identical across public listingsprofile-check_2026-10-02 · current street address on the site footer and both listings we controlVerified fixed
  • Publish an answer-ready FAQ pagesite-crawl_2026-10-02 · /faq → 404Still open
  • Build one answer-ready page per service areasite-crawl_2026-10-02 · no new service-area pages foundStill open
  • Set up AI-referral tracking in analyticsNo analytics access in this example, so we can’t confirm it either wayNot rechecked

New since the last check

  • Two pages now share the same title tag (Low)
  • One public listing still shows the old phone number (Medium)

Fixes match across runs on their stable ID, not their position on the list, so a renamed item isn’t double-counted.

Findings

Every finding carries its evidence

Each finding links back to the log it came from, a page check or a profile read, so you can check the raw material, not just our summary.

AI crawler access

AI crawlers can read the site

robots.txt doesn’t block the listed AI crawlers, good, leave it that way. There’s no llms.txt; that file is optional (a community proposal, not a search engine requirement), so it’s noted, not prioritized.

readiness-check_2026-09-12 · robots.txt allows listed AI crawlers; /llms.txt → 404 (info only)

Structured data

No machine-readable business details

The homepage and services pages carry no JSON-LD, so the business name, address and service area can’t be confirmed from a structured source.

page-check_2026-09-12 · home + services HTML · no JSON-LD found

Answer-ready content

No page answers the cost question

“How much does a bookkeeper cost in [Local area]?” is a question customers commonly ask before calling, and no page answers it in plain language.

site-crawl_2026-09-12 · 14 pages indexed; no pricing or FAQ page

Profiles

Business details disagree across listings

The website footer shows the current street address; two public listings still show the old one. Inconsistent details weaken trust signals.

profile-check_2026-09-12 · site footer ≠ public listings

Fix list

Fixes ordered by impact × effort

The same order we’d work in, the most valuable change per unit of effort first. The owner column is a heuristic, technical work to whoever builds, pages to whoever writes, profiles to whoever markets, and it’s editable in the tracker we hand over.

FixWhy it mattersImpactEffortSuggested ownerAt recheck
Add JSON-LD structured data to key pagesOrganization, LocalBusiness and FAQPage markupHighLowDeveloperVerified fixed
Publish an answer-ready FAQ pageIncluding “how much does a bookkeeper cost in [Local area]”HighMediumContentStill open
Make business details identical across public listingsCurrent street address everywhere, matching the footerMediumLowMarketingVerified fixed
Set up AI-referral tracking in analyticsSo changes show up in the client’s own numbersMediumMediumMarketingNot rechecked
Build one answer-ready page per service areaPages that directly answer common customer questionsMediumHighContentStill open
Fix the two pages sharing the same title tagFound on the recheck crawl, new this timeLowLowDeveloperNew
Correct the old phone number on one public listingFound on the recheck profile check, new this timeMediumLowMarketingNew
Optional: add /llms.txtA community proposal, not a search engine requirement, low priorityLowLowDeveloperOptional

Example data, impact and effort are our estimate, ordered highest-value first. The last column is the tracker view at recheck. In a real engagement, a Sprint works through this list with your sign-off on every change.

Next step

The fix list we work from

Every finding becomes a step in a plain-language fix list like this one. In a Sprint, we make the fixes ourselves, and nothing is published without your sign-off.

Illustrative example, fictional site, fictional fix list

FIX LIST, Example Ledger Co. (https://example-ledger.example)
Illustrative example. The client approves every change before it ships.

1. robots.txt, keep AI crawlers allowed
   /robots.txt already allows GPTBot, ClaudeBot, PerplexityBot and
   Google-Extended. No change needed, leave it that way.

2. JSON-LD, add to the homepage
   Organization + LocalBusiness: name, url, logo, telephone,
   address (current street, not the old one), areaServed, and
   sameAs pointing at the public profiles we control.

3. /faq, publish an answer-ready page
   Plain-English answers to common customer questions, e.g.
   "How much does a bookkeeper cost in [Local area]?"
   Mark the page up with FAQPage JSON-LD.

4. Business details, make listings match the footer
   Update the old street address on the public listings we control.

5. Optional, low priority, /llms.txt
   A community proposal, not a search engine requirement.
   Only if it's cheap: one line per key page, URL + one sentence.

Done when: JSON-LD validates cleanly, /faq is live and linked
in the nav, and listings show the current address.

Book a Sprint and we make the top fixes ourselves, then re-audit to verify them. Or share this fix list with your own team.

Honest limits

What this page doesn’t show

This sample skips the back of the report, the method detail, the per-check logs and the full evidence index. A real report includes them, and cites the method version it was checked under.

An honest limit worth knowing
AI tools are run by third parties and change often. No one can guarantee what an AI tool will say. We check, report honestly and show the evidence.

The method behind these scores is public, read the published methodology.