Check library·2026-08-27
Every Check we run is deterministic: an HTTP request, a parse, or a rendered-page inspection against an explicit rule. Each page below names the standard, shows the Evidence we record on a Pass and on a Fail, and gives the Fix.
Checks are grouped into the four Categories, in fixed order. A Scan runs all of them against your homepage for free.
Run a Scan
FreeHomepage only, 10 to 30 s. Every Check below runs against your own site.
01·7 Checks
llms.txt is present
llms.txt
We request /llms.txt at the root and check that it returns 200 with content an agent can read.
Homepage responds to an identified agent
HTTP GET with a descriptive User-Agent
We request your homepage with a user agent that names us, and record the status, the time and the bytes returned.
robots.txt is present and parseable
robots.txt, the Robots Exclusion Protocol (RFC 9309)
We request /robots.txt and check it returns 200 with at least one User-agent group in the body.
robots.txt states a rule for named AI agents
robots.txt User-agent groups for named AI crawlers
We look for a User-agent group naming any of 12 AI crawlers, and record which names we found.
XML sitemap is present and lists URLs
XML sitemap (sitemaps.org protocol 0.9)
We follow Sitemap lines from robots.txt, then try /sitemap.xml and /sitemap_index.xml, and count the URLs on your origin.
Markdown content negotiation is answered
HTTP content negotiation, Accept: text/markdown
We request your homepage with Accept: text/markdown and record the content-type that came back.
Homepage declares a canonical URL
link rel=canonical (RFC 6596)
We parse the head of your homepage and record the href of the link rel=canonical element, or its absence.
02·8 Checks
Offer price is available as data
Schema.org Offer, price and priceCurrency
We look for a Schema.org Offer block carrying both a price and a priceCurrency field on pages that show a price.
Page returns 200
HTTP status codes (RFC 9110)
We record the status of every page we crawl, and a page that did not answer 200 receives no further Checks.
JSON-LD structured data is present and parses
JSON-LD in application/ld+json (Schema.org)
We parse every application/ld+json block on the page and list the @type values we could read.
Organization identity is declared as data
Schema.org Organization, LocalBusiness and WebSite
On the homepage we check for a JSON-LD block typed Organization, LocalBusiness, Corporation or WebSite.
Price exists only as display text
Schema.org Offer, price and priceCurrency
We fail this Check when the rendered text carries price-like strings and the page has 0 structured price fields.
Title and meta description are present
HTML title element and meta name=description
We record the page title and the length of the meta description; a title with no description is a Warning.
Page has a single descriptive h1
HTML heading elements, h1 to h3
We read the first h1 on the page and record its text, or record that no h1 element was found.
Content is present without running JavaScript
Server-side rendering, text in the HTML as served
We count the characters of text in the HTML as served, before any script runs.
03·3 Checks
Every form field is labelled
HTML label, WAI-ARIA aria-label and aria-labelledby
We count the form fields on the page and how many have no <label>, aria-label or aria-labelledby.
Form fields carry autocomplete tokens
HTML autocomplete attribute and the WHATWG autofill tokens
We count the fields that plainly take personal details and carry no autocomplete attribute.
A contact route is machine-readable
mailto: and tel: links, Schema.org ContactPoint
On homepage, contact and booking pages we look for a mailto: or tel: link in the HTML.
04·6 Checks
No bot challenge served to an identified agent
HTTP 403 and interstitial bot challenges
We request your homepage with an identified user agent and record whether a challenge or a 403 is returned instead of your page.
MCP Server Card is published
Model Context Protocol server card at /.well-known/mcp.json
We request /.well-known/mcp.json and require a JSON content-type and a body that starts with a brace.
API catalog is published
RFC 9727, /.well-known/api-catalog
We request /.well-known/api-catalog and record the status; anything other than 200 is a Warning.
Content Signals are stated in robots.txt
Content Signals directives in robots.txt
We search the robots.txt we already fetched for a Content-Signal directive.
Homepage responds inside 2.5 s
HTTP response time, measured server-side
We time our homepage request from first byte to last byte and record the milliseconds.
Served over HTTPS with a valid certificate
TLS and HTTPS
We check the origin we ended on is https:// and that the TLS handshake completed without an exception.
A Scan runs every Check above against your homepage and returns an Agent Ready Score with the Evidence for each result. The result page is permanent, so you can send it to a client as it is.
Run a Scan
FreeHomepage only, 10 to 30 s. Every Check below runs against your own site.