← Back to the report
Agent Readiness

Ritual

ritual.com · E-commerce & Retail

80
Readiness /100
34
Checks passed
1
Checks failed
74
Checks run

Discoverability

Can agents find your site and its capabilities?

warn/llms.txt has a summary blockquoteAgent manifests

Per llmstxt.org, follow the H1 with a "> short summary" blockquote.

Fix: Add a "> One-sentence description of your site." blockquote under the H1.

passAGENTS.md operating guide for agentsAgent manifests

Found a Markdown guide at /AGENTS.md.

pass/llms.txt guide for AI agentsAgent manifests

Found https://ritual.com/llms.txt.

pass/llms.txt lists key pages as markdown linksAgent manifests

Found at least one "[name](url)" markdown link.

pass/llms.txt opens with an H1 titleAgent manifests

First line is a top-level "# Title" heading.

passKey pages discoveredKey pages crawl

Crawled 4 of 12 discovered pages beyond the homepage.

infoWebsite platformplatform

Built on Shopify.

Understanding

Can agents understand your content?

warnDOM size is reasonableStructured data & HTML

Homepage contains ~2037 elements — heavy.

Fix: Aim for under 1500 elements on the homepage. Heavier DOMs slow first paint and overflow some AI crawlers' parse buffers.

warnHeading hierarchy is intactStructured data & HTML

Detected 3 heading level skips (e.g. h2 → h5).

Fix: Tighten the heading order so each level only steps down by one. Skipped levels confuse both screen-readers and AI structural extractors.

warnImages have alt textStructured data & HTML

43 of 53 images have alt attributes (81%).

Fix: Add alt text to the remaining images. Empty alt="" is fine for purely-decorative graphics.

warnKey pages have <title> and <h1>Key pages crawl

1 of 4 pages are missing <title> and/or <h1>: /pages/terms-of-service.

Fix: Make sure every page sets a unique <title> and exactly one <h1>. The title is how an AI agent confirms it landed on the right page after navigating.

passMarkdown content negotiationOpen agent protocols

Homepage returns text/markdown when requested.

passHomepage content is server-renderedCrawlability (Google)

Homepage server response contains 1044 words of visible text — content is reachable without executing JavaScript.

pass<html lang> attributeStructured data & HTML

Language declared as "en".

passImages have explicit dimensionsStructured data & HTML

53/53 images set width and height — no layout shift.

passInternal links on homepageStructured data & HTML

162 internal links found.

passSemantic landmark elementsStructured data & HTML

All four landmark elements present (main, header, footer, nav).

passSingle H1 on homepageStructured data & HTML

Exactly one <h1> on the homepage.

passKey pages are server-renderedKey pages crawl

All 4 pages return ≥80 words of visible text without JavaScript.

Operability

Can agents actually operate the page?

warnForms use autocomplete attributesStructured data & HTML

No autocomplete attributes on any data-collecting form field.

Fix: Add autocomplete hints (email, tel, name, etc.) so form-filling agents and browsers can populate fields without guessing.

warnForm errors are accessibleStructured data & HTML

0/1 data-collecting forms expose errors via ARIA attributes.

Fix: Wire inputs to their error containers with `aria-describedby` and toggle `aria-invalid` on validation failure. Agents that can't see styled error text rely on these attributes.

passAccessibility tree is agent-navigableAccessibility

All 11 agent-critical accessibility audits passed — an agent can perceive and operate the page through its accessibility tree.

pass`[aria-*]` attributes match their rolesAccessibility

`[aria-*]` attributes match their roles passed.

pass`[aria-hidden="true"]` is not present on the document `<body>`Accessibility

`[aria-hidden="true"]` is not present on the document `<body>` passed.

pass`[aria-hidden="true"]` elements do not contain focusable descendentsAccessibility

`[aria-hidden="true"]` elements do not contain focusable descendents passed.

pass`[role]`s have all required `[aria-*]` attributesAccessibility

`[role]`s have all required `[aria-*]` attributes passed.

passElements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children.Accessibility

Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children. passed.

pass`[role]` values are validAccessibility

`[role]` values are valid passed.

pass`[aria-*]` attributes are valid and not misspelledAccessibility

`[aria-*]` attributes are valid and not misspelled passed.

pass`[aria-*]` attributes have valid valuesAccessibility

`[aria-*]` attributes have valid values passed.

passButtons have an accessible nameAccessibility

Buttons have an accessible name passed.

passDocument has a `<title>` elementAccessibility

Document has a `<title>` element passed.

passLinks have a discernible nameAccessibility

Links have a discernible name passed.

passOverall accessibility scoreAccessibility

Lighthouse accessibility score: 94/100. Agents read the page through its accessibility tree, so this is a proxy for how navigable your site is to an AI agent.

passForm fields have labelsStructured data & HTML

4 of 4 visible interactive form fields have labels.

passForms mark required fieldsStructured data & HTML

1/1 data-collecting forms mark required fields.

passForm fields publish validation hintsStructured data & HTML

All 1 data-collecting forms include pattern/min/max constraints.

passCumulative Layout ShiftPerformance

0.000 (field data from CrUX) — good.

passTime to First BytePerformance

384ms (field data from CrUX) — good.

infoTool catalog signpost publishedWebMCP tools

No tool catalog was found at /.well-known/webmcp.json (or /.well-known/webmcp). The catalog is a community convention, not part of the WebMCP standard, so this does not affect WebMCP presence.

Fix: Consider also publishing a tool catalog at /.well-known/webmcp.json: a JSON document with a "spec" of "webmcp/0.1" and a "tools" array, where each tool declares a name and a clear description. It is a community convention (optional, not part of the WebMCP standard) that lets crawlers and agents discover your tools without executing JavaScript.

Trust & Security

Can agents safely transact?

failNo mixed-content referencesSecurity & trust

Found 3 http:// references in the homepage HTML — browsers will block these resources.

Fix: Update every http:// resource URL to https:// (or use protocol-relative `//`). Common offenders: image CDNs and legacy embed snippets.

warnWeb Bot Auth signature headerOpen agent protocols

No Web Bot Auth signature headers — sites can't verify agent identity.

Fix: Web Bot Auth (IETF HTTP Message Signatures over Signature / Signature-Input) lets you cryptographically verify which agent is hitting you. Several CDNs offer turn-key support; otherwise skip until vendor support matures.

warnHTTP Strict-Transport-Security headerSecurity & trust

HSTS max-age=7889238 is below six months.

Fix: Raise max-age to at least 15768000 (six months). The HSTS preload list requires 31536000 (one year).

warnReferrer-Policy headerSecurity & trust

No Referrer-Policy header on the homepage.

Fix: Add `Referrer-Policy: strict-origin-when-cross-origin` so outbound links don't leak full URLs (including query strings) to third parties.

passOAuth authorization server metadataOpen agent protocols

/.well-known/oauth-authorization-server returns parseable JSON.

passOAuth protected-resource metadataOpen agent protocols

/.well-known/oauth-protected-resource returns parseable JSON.

passCDN detectedSecurity & trust

cf-ray: a1eb7e795b880c13-AMS (Cloudflare); Server: cloudflare

passContent-Security-Policy headerSecurity & trust

CSP header present.

passSite is served over HTTPSSecurity & trust

Homepage scheme is https:.

passhttp:// redirects to https://Security & trust

http://ritual.com → https://ritual.com/ (1 hop).

passHomepage shows no error outputSecurity & trust

No stack-trace markers in the first 5KB.

passTLS certificate is not near expirySecurity & trust

Valid for 38 more days (Aug 29 01:01:35 2026 GMT, issuer: YE1).

passNo tech-stack disclosure in headersSecurity & trust

Server / X-Powered-By headers don't leak product version.

passMIME-sniff protectionSecurity & trust

X-Content-Type-Options: nosniff.

passClick-jacking protectionSecurity & trust

X-Frame-Options: DENY.

Commerce

Can agents shop and check out?

passagents.md states checkout needs human approvalUniversal Commerce

Found the human-approval-for-checkout rule.

passagents.md served as MarkdownUniversal Commerce

Content-Type: text/markdown; charset=utf-8.

passagents.md adds store-specific contextUniversal Commerce

Mentions the store ("ritual") — looks customised beyond the default.

passagents.md declares the UCP versionUniversal Commerce

References UCP / a UCP version or /.well-known/ucp.

passagents.md exposes no secretsUniversal Commerce

No secret/token or admin-path references found.

passShopify agents.md presentUniversal Commerce

Found at https://ritual.com/agents.md.

passagents.md points to the MCP endpointUniversal Commerce

References the UCP MCP endpoint (/api/ucp/mcp).

passUCP manifest is parseable JSONUniversal Commerce

Manifest parses as JSON.

passUCP manifest presentUniversal Commerce

Manifest reachable at https://ritual.com/.well-known/ucp.

passUCP declares supported servicesUniversal Commerce

Services: dev.ucp.shopping.

passUCP declares transportsUniversal Commerce

Transports: mcp, embedded.