Skip to main content
Q-Code

Visibility engine

What the visibility engine measures

The visibility engine scores every build through four lenses: machine visibility, conversion, security and agent readiness.

Machine visibility splits into SEO, AEO and LLMO, which is why the report shows six scores rather than four. Most of it is read from the HTML a crawler actually receives rather than the source it was written from; security also reads the live response headers and the database directly, since it is checking exposure rather than markup. Every finding still comes back as a sentence and a button rather than as homework.

visibility · report

Visibility score

90/100

+11 since last build

  • SEO94
  • AEO88
  • LLMO91
  • Conversion76
  • Security92
  • Agent readiness100

Conversion

The repairs page asks for a booking twice and never says what it costs.

Fix this

AEO

Two pages open with background instead of the answer.

Fix this

A visibility report: an overall score of 90, six pillar scores, and two findings each offering a one-click fix.

Four lenses

Four questions, asked separately.

They answer genuinely different things and are deliberately not forced into one shape. Three are measured here, on the built HTML, the live response headers and the database. The fourth is fetched from somebody else’s scanner, and the report says so.

  1. Machine visibility

    40%

    Can this site be found, quoted and understood?

    Twenty-four checks across SEO, AEO and LLMO, each weighted and each scored only against the kinds of page it applies to. A legal notice is not marked down for having no FAQ.

    Whole site

  2. Conversion

    35%

    Does a visit turn into anything?

    Six sub-pillars: intent, message match, proof, action, clarity and testing. It is the lens most audits skip, and the one that catches a page that is flawlessly indexed and still a dead end.

    One page at a time

  3. Security

    15%

    Is anything left open that should not be?

    Reads transport security, the response headers a browser enforces, and the content-security-policy itself, alongside whether sensitive paths such as .env or .git are reachable. Leaked secrets are reported as a count and never as a value, alongside database row-level security, edge protections and the agent-facing surface.

    Whole site, live

  4. Agent readiness

    10%

    Can software use it rather than read it?

    The only lens that is not computed here. It is fetched from a public agent-readiness scan of the published site, which returns a fix and a specification link for every check that fails.

    Whole site, fetched

Those weights are the default and they are one setting per project. A site that genuinely intends to serve agents should raise the third one; a site that is a shop window can leave it where it is.

Insufficient data is never scored as zero. A file that could not be read, a scan that came back unparseable, a pillar with nothing to measure: each of those drops out of both sides of the average and is reported as not enough data. A zero says the site failed a test, which is a different claim from nothing having been measured.

Six scores

Six numbers you actually read.

Machine visibility splits into three, which is what turns four lenses into the six bars on the report. One overall number is what you glance at; these are what tell you where the problem is.

SEO

Can a search engine index it?

Nine checks on the plumbing: title length, meta description length, canonical link, Open Graph, exactly one h1, heading order that does not skip, alt text coverage, the sitemap and the robots policy.

  • Title and description present and the right length
  • Exactly one h1, no skipped levels
  • Canonical and Open Graph on every page
  • A sitemap, and a robots.txt that allows indexing

AEO

Will an answer engine quote it?

Answer Engine Optimisation. Seven checks on whether the page can be lifted: whether the first paragraph after the h1 answers the question, whether headings read as questions, and whether the visible Q&A is marked up.

  • The answer is in the opening paragraph
  • Headings that read as the questions people ask
  • FAQPage markup for a Q&A the reader can actually see
  • Article markup on the pages that are content

LLMO

Does a model understand what this site is?

Large Language Model Optimisation. Eight checks on identity and depth: whether the site states its own purpose in machine-readable form, whether the publisher is declared once, and whether the crawler policy lets an answer engine in at all.

  • /llms.txt states the purpose and the key pages
  • One Organisation node, not two competing identities
  • Breadcrumbs, author and citation structure
  • A crawler policy that does not block the engines that cite you

Conversion

Does the page ask for anything?

Scored on one page at a time, over six sub-pillars. A page can be perfectly indexed and still be a dead end, so this lens asks whether the headline promises an outcome, whether the page has one primary next step, and whether anything measures what happened.

  • One primary call to action, worded specifically
  • A headline, a description and an opening paragraph that agree
  • An enquiry route short enough to finish
  • A viewport, a secure connection and a server that answers quickly

Security

Could this be broken into?

Twenty-six checks across transport, headers, exposure, secrets and dependencies, the database and the edge, each skipped rather than scored as a fail when its evidence could not be gathered. A leaked-secret count is shown on the report; the secret itself never is.

  • HTTPS and HSTS enforced, with the response headers a browser actually reads
  • No .env, .git, source map or ungated admin route left reachable
  • Leaked secrets and dependency vulnerabilities counted, never shown as a value
  • Row-level security on private data, and a managed firewall at the edge

Agent readiness

Can software act on it?

Increasingly the visitor is an assistant working for a person. Six checks are hygiene every site should pass. Ten more only count once the site has said it wants to be used by agents directly, because marking a brochure site down for publishing no API catalogue would be scoring it against somebody else’s ambitions.

  • robots.txt, sitemap and explicit AI crawler rules
  • Content Signals, so the file and the zone say the same thing
  • Markdown negotiation and link headers
  • MCP, A2A, API catalog, ARD, skills and WebMCP, once agent access is on

Every check knows which kinds of page it applies to. A login screen is not marked down for having no meta description and a legal notice is not marked down for having no FAQ, because a page outside a check’s remit is excluded from the sum rather than failed by it.

The third lens

Checking whether the site can be broken into.

Security is computed here, the same as machine visibility and conversion, rather than fetched. It reads whether the site is served over HTTPS with HSTS set long enough to matter, the response headers a browser actually enforces, and whether the content-security-policy itself is present and not so loose that it would let arbitrary script run.

It also checks for exposure: whether a .env file, a .git folder, a source map or an admin route is reachable by anyone who asks. Any secret-shaped string it finds in the built output or the repository is reported as a count, never as the value, so the report itself cannot leak what it is warning about. The same pass checks database row-level security, so a private table refuses an anonymous read, the edge protections in front of the site, meaning a managed firewall and rate limiting on any public route that writes, and whether the site’s agent-facing surface matches what it has actually turned on.

A check whose evidence could not be gathered is skipped rather than scored as a fail, the same rule every lens follows. Its findings go through the same fix loop as the rest of the report: a missing security.txt file is mechanical and applies itself, a header or policy change waits for a nod because it changes what the site serves, and a finding like rotating a leaked key or turning on a database policy is the owner’s own infrastructure to act on, so the fix note says that plainly rather than pretending to have done it.

The fourth lens

Measuring whether software can use the site.

Most audit tools stop at whether a person can find the page. This one also asks whether an assistant can act on it, which as far as we know is an unusual thing for a site builder to check at all.

The score is fetched rather than computed. It comes from a public agent-readiness scan of the published site, which ships the same checks as an unauthenticated MCP server and returns a fix and a specification link for every one that fails. Six of them are hygiene: robots.txt, a sitemap, explicit AI crawler rules, Content Signals, Markdown negotiation and link headers. Ten more are the agent-facing surfaces, and they only count once the project has said it wants them.

Two guards sit around it, because a confident wrong number is worse than no number. A scan whose host does not match the host that was asked for is discarded, since following a redirect into a sign-in screen scores the login page rather than the site. And a response that cannot be parsed is reported as unavailable rather than as a zero.

What an AI-ready site is

The fix loop

A finding you cannot act on is a complaint.

Most audit tools stop at the diagnosis, in a vocabulary that assumes you already know what a canonical link is for. That is fine for a developer and useless for the person who owns the site.

So each finding here is three things: what is wrong, in a sentence; why it costs you something, in another; and a button that sends it back to the builder as work. Approving a fix starts a build with the task already written.

  1. 01

    Measured

    The built HTML is read page by page. Nothing is inferred from the source.

  2. 02

    Explained

    Each finding says what it is and what it costs, without the jargon.

  3. 03

    Fixed

    One click turns the finding into a build, and the next report shows whether it worked.

Routed by consequence, not by pillar

Every fix is a change to code or content. What differs is how much damage the wrong one could do, so findings are sorted into three buckets by consequence rather than by which check raised them.

Safe
Applied without asking
Mechanical and reversible, with no judgement in them. A title that is too long, a missing canonical, a heading that skips a level, an image with no alt text, a page whose opening paragraph does not answer its own headline.
Consequential
Waits for a nod
Changes what the site says or how it behaves. FAQ and HowTo markup, the robots policy, /llms.txt, adding a call to action, anything touching analytics or consent. Honest FAQ markup needs real questions with real answers, and inventing them to satisfy a check is how a site publishes claims nobody made.
Exposure
Needs the switch and the nod
Publishes a new agent-facing surface: an MCP card, an API catalogue, a skills index. Never applied unless the project has turned agent access on and then approved it. Opening a door on somebody’s brochure site to lift a number is not a fix.

Limits

What it will not do.

A visibility tool that will do anything to raise its own number is a liability. These are the things this one refuses.

  • Mark up what you cannot see

    No FAQ markup without a visible FAQ. No rating without a rating. Both are penalties, and both are easy to get away with until you do not.

  • Stuff keywords

    It checks whether a page has one clear topic, not whether a phrase appears often enough to look unnatural.

  • Block AI crawlers to look safe

    Search and citation crawlers stay allowed. Blocking them removes you from AI answers and protects nothing.

  • Open a door nobody asked for

    It will not publish an MCP card or an API catalogue to lift the agent score. That bucket needs the project to have opted in and then approved the change.

  • Score a guess as a fact

    A check it could not run is reported as insufficient data, never as a zero.

  • Promise a ranking

    It scores whether a page can be found, quoted and acted on. It does not pretend to know what it deserves.

Q&A

Questions about the audit

What is the difference between SEO, AEO and LLMO?

SEO is being findable in a list of links. AEO is being the passage an answer engine quotes when it answers instead of listing. LLMO is a model understanding what your site is for at all, so it reaches for you on the right topic. They overlap, but a page can pass one and fail another, which is why they are scored separately.

How are the four lenses weighted?

By default, machine visibility accounts for 40 percent of the score, conversion 35 percent, security 15 percent, and agent readiness 10 percent. Machine visibility and conversion remain the two heaviest factors because being found is worth nothing if the page does not convert, and a converting page nobody reaches is worth as little. Security sits above agent readiness because a leaked key or an ungated admin route is a real, present risk to the site owner, but it stays below the two commercial lenses because a hardened site nobody visits still fails its job. Agent readiness maintains its small share until a project indicates it intends to serve agents, at which point raising it is one setting.

What happens to a check it could not run?

It is left out of the score rather than failed. A file that could not be read, a scan that came back unparseable, a pillar with nothing to measure: all of them report as insufficient data and drop out of both sides of the average. A zero is a claim that the site failed a test, and saying that when nothing was measured is worse than saying nothing.

Why audit the built HTML instead of the source?

Because a component can look correct and still compose into a page with two h1 elements. Crawlers receive the output, so the output is what gets checked.

Will the audit add an FAQ to my page to raise the score?

No. Marking up questions a reader cannot see is a penalty from Google, not a shortcut, and the same is true of a rating that does not exist. If the audit wants an FAQ it asks for a visible one with real answers, and that request waits for your approval rather than applying itself.

Will it switch on agent access to raise the agent score?

No. Anything that would publish a new agent-facing surface sits in a separate bucket that needs the project to have opted in and then approved the specific change. Until then the agentic checks are shown as opportunities rather than failures.

Does a perfect score mean I will rank first?

No, and any tool promising that is selling you something. The score measures whether the page is technically able to be found, quoted and acted on. Whether it deserves to rank is about what it says.

How often does it run?

On every build, before you publish, and again on the published site. Each report is kept with a timestamp, so the score has a history you can watch move over time rather than only a current value.

Can I ignore a finding?

Yes. Dismissed findings stay dismissed and stop appearing in the report. A tool that keeps re-reporting a decision you have already made is a tool you learn to stop reading.

Every build is scored before you publish it.

The audit runs on the preview, not as a report you request afterwards. By the time you decide to publish, you already know what it costs you.