Reach — can an agent get in and read the page
Served over HTTPS core evidence
Is the home page served over HTTPS without falling back to plain HTTP?
An agent that has to downgrade to plain HTTP is reading a channel anyone can alter.
If it fails: Serve the site over HTTPS and redirect http:// to https://.
reach.httpsrobots.txt is present core evidence
Does /robots.txt exist and contain at least one directive?
robots.txt is where a site states its crawling policy. Absent, an agent has nothing to read.
If it fails: Publish /robots.txt, even if it only declares a sitemap and allows everything.
reach.robots_presentNamed AI agents are not blocked at the root core evidence
Does robots.txt disallow the site root for any well-known AI agent token?
A site can be perfectly readable and still invisible because one line of robots.txt refused the agent.
If it fails: Remove the root Disallow for the agent tokens you want to admit, or scope it to the paths you mean to protect.
reach.ai_agents_allowedThe page is served to an honest client core evidence
Does the home page return a success status to an ordinary HTTP request with an identifying user agent?
A bot wall, challenge page or 403 does not care how good your markup is. Nothing downstream can be read.
If it fails: Allow ordinary clients and named AI agents to fetch public pages; keep the wall for abusive traffic.
reach.bot_wallContent is present without running scripts core evidence
Does the raw HTML contain a meaningful amount of text before any script runs?
Many agents read the response body and never execute JavaScript. A client-rendered page can read as empty.
If it fails: Render the essential content on the server so it is present in the first response.
reach.content_without_js
Identity — does the agent know who you are
Structured identity is published core evidence
Is there JSON-LD describing the organisation?
This is the difference between an agent inferring who you are from prose and being told.
If it fails: Add a JSON-LD Organization or LocalBusiness block to the home page.
identity.structuredThe trading name is stated recommended evidence
Is a business name available in structured data or the page title?
An agent assembling an answer needs a name it can attribute the rest of the facts to.
If it fails: State the trading name in the JSON-LD `name` field and in the page title.
identity.nameContact and location facts are machine-readable core evidence
Are address, telephone or email present in structured data?
A local answer needs a location and a way to reach it, and prose is not addressable.
If it fails: Add PostalAddress, telephone and email to the organisation's JSON-LD.
identity.contactA canonical URL is declared recommended evidence
Does the page declare a canonical link pointing at itself?
Without it, an agent may treat near-duplicate URLs as separate businesses or treat the wrong one as authoritative.
If it fails: Add `<link rel="canonical">` to each page.
identity.canonical
Offering — does the agent know what you sell
What you sell is marked up core evidence
Is there Product, Service, Offer or Menu markup?
An agent can only compare or recommend an offering it can read as an offering.
If it fails: Describe products or services with Product/Service and Offer JSON-LD.
offering.markupPrice is machine-readable recommended evidence
Is a price present in structured data?
Agents increasingly filter and compare on price, and a price locked in an image or a PDF is invisible.
If it fails: Add `offers.price` and `priceCurrency` to your product markup.
offering.priceAvailability is machine-readable recommended judgment
Is an availability or stock state present in structured data?
A recommendation without availability is a wasted journey, and agents are starting to filter on it.
If it fails: Add `offers.availability` using schema.org values such as InStock or PreOrder.
offering.availabilityA machine-readable catalogue or interface exists recommended judgment
Does the site link a JSON, XML or API surface for its catalogue?
A page is a poor substitute for a feed when an agent needs the whole catalogue rather than one item.
If it fails: Publish a read-only JSON or XML feed of your catalogue and link it from the page.
offering.feed