Audit your site the way answer engines read it.

A self-hosted crawler that scores seven dimensions, tracks citations across Perplexity, Gemini and ChatGPT, and never invents a number.

https://wrenfield.co.uk Sample audit
0 Overall score
across 6 of 7 dimensions
  • technical0
  • content0
  • onpage0
  • schema0
  • performance0
  • images0
  • geonull

GEO analysis is opt-in. Nothing assessed it, so it scores null rather than 100.

Citation tracking runs against the answer engines people actually ask

OpenAI Anthropic Perplexity Google Gemini Google

A dimension nobody looked at scores nothing, not 100.

Most tools average whatever they happened to measure and hand you a grade. botAEO records what it assessed and what it did not, so a clean report means the checks ran, not that they were skipped. A competitor crawl that came back mostly rate limited is refused outright rather than published with a caveat, because people read the number and skip the caveat.

Blocking a training crawler is a policy choice. Blocking a citation crawler is a visibility cost.

botAEO reads your robots.txt and grades the two decisions separately, because allowing one is not the same as allowing the other.

Citation crawlers

Block these and your pages stop appearing in AI answers at all.

  • OAI-SearchBotAllowedOpenAI
  • Claude-SearchBotAllowedAnthropic
  • PerplexityBotBlockedPerplexity
  • DuckAssistBotAllowedDuckDuckGo
  • xAI-BotAllowedxAI

Training crawlers

Block these and you give up nothing you can measure in answers.

  • GPTBotBlockedOpenAI
  • ClaudeBotBlockedAnthropic
  • Google-ExtendedBlockedGoogle
  • CCBotAllowedCommon Crawl
  • BytespiderBlockedByteDance

The roster follows the operators' published crawler docs, not folklore. ClaudeBot is training only; Claude-SearchBot is the crawler that feeds citations. Google-Extended is a robots.txt token layered on Googlebot's data, so honouring it does not affect Search or AI Overviews.

Seven dimensions, scored the same way every run.

Findings carry stable fingerprints, so two audits of the same site can be diffed and your verdicts replayed instead of re-litigated.

geo

AI crawler access, llms.txt and whether a page can be quoted.

Checks whether your claims sit near a citation, whether an answer engine can lift a self-contained passage, and which crawlers your robots.txt lets through. Opt in per crawl; it costs about seven extra fetches.

technical

Status codes, redirect chains, canonical conflicts and click depth from the link graph.

content

Thin and duplicate pages, heading structure, and word counts measured after JavaScript renders.

onpage

Titles, descriptions and headings, checked against what actually shipped rather than what the CMS intended.

schema

JSON-LD validated against type, not merely detected. A malformed block scores worse than none.

performance

PageSpeed Insights plus CrUX field data, so lab scores never stand in for real visitors.

images

Missing alt text, bytes shipped against bytes needed, and formats a decade past their replacement.

JPEG 46%PNG 29%WebP 17%SVG 8%

This is the thing you are optimising for.

Ask an answer engine a buying question and a handful of sources get quoted. Everyone else is invisible. botAEO runs your prompts on a cadence and records which answers you turn up in, and which sentence earned the citation.

best waterproof panniers for bike commuting Sample answer

  1. 1 wrenfield.co.uk/guides/waterproof-panniers Your site
  2. 2 pannierlab.com/reviews/roll-top-2026
  3. 3 thecommutefiles.co.uk/best-panniers
0 of 5 engines cited you this week PerplexityGeminiOpenAIClaudeAI Overviews

Did the work move anything?

A scheduler re-crawls on a cadence and aligns your traffic, conversions and CrUX field data to audit scores by ISO week. Every correlation travels with its sample size and an explicit reliability flag.

Sample data
Audit score Organic sessions
82 68 55 7.2k 5.5k 3.8k W12 W18 W25
n = 14 weeks r = 0.81 reliable Below ten paired weeks the same panel reports the correlation as unreliable and says so.

One install. A workspace for every client.

You see all of them. Each client signs in to exactly one, read only, with no route to anyone else's crawls, findings or API keys. Registration closes in production and accounts are created from the command line.

YouAll workspaces
Wrenfield CyclesRead only
Halloran & DeyRead only
Meridian Lab SupplyRead only

Taking on a small number of agencies.

botAEO is in private beta. We onboard a few agencies at a time so the crawler gets tuned against real client sites, on real schedules, before it opens up.

Used once, to tell you when a slot opens.