Can agents find your site and its capabilities?
The page registers no tools via the WebMCP browser API (navigator.modelContext).
Fix: Expose your actions to AI agents with the WebMCP browser API: register tools via navigator.modelContext.registerTool. Optionally also publish a /.well-known/webmcp.json tool catalog as a discovery signpost.
Per llmstxt.org, follow the H1 with a "> short summary" blockquote.
Fix: Add a "> One-sentence description of your site." blockquote under the H1.
Found a Markdown guide at /AGENTS.md.
Found https://gymshark.com/llms.txt.
Found at least one "[name](url)" markdown link.
First line is a top-level "# Title" heading.
Crawled 2 of 12 discovered pages beyond the homepage.
Built on Shopify.
Can agents understand your content?
No lang attribute on <html>.
Fix: Add lang to the <html> root (e.g. lang="en") so screen readers and AI translation engines pick the right voice / model.
No <h1> tag found on the homepage.
Fix: Add exactly one <h1> that names the page. AI summarisers use it as the document title.
Homepage server response contains only 1 words of visible text. AI agents that don't execute JavaScript may see an empty page.
Fix: Consider pre-rendering or server-rendering the homepage so AI crawlers (which typically don't run JS) can see the content. Frameworks: Next.js (Server Components), Nuxt SSR, Astro, or Vite SSG.
Only 0 internal links on the homepage.
Fix: Add at least 5-10 internal links pointing to your top product, pricing, docs, blog and about pages so an AI agent can navigate to them from the homepage.
Missing landmark elements: footer, nav.
1 of 2 pages are missing <title> and/or <h1>: /products.
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.
1 of 2 pages return <80 words of visible text — agents without JavaScript see an empty page: /products (1w).
Fix: Pre-render or server-render these pages so AI crawlers (which usually don't execute JS) can read them. Frameworks: Next.js Server Components, Nuxt SSR, Astro, or build-time prerendering.
Homepage returns text/markdown when requested.
Homepage contains ~97 elements.
1 of 1 <img> tags have alt attributes.
1/1 images set width and height — no layout shift.
Can agents actually operate the page?
Lighthouse flagged this audit — agents may be unable to perceive or operate the affected elements.
Fix: Give ARIA input fields an accessible name.
Lighthouse flagged this audit — agents may be unable to perceive or operate the affected elements.
Fix: Ensure ARIA child roles are nested inside their required parent role.
The page registers no tools via the navigator.modelContext browser API, so an AI agent has no structured way to operate it.
Fix: Expose your site’s actions to AI agents with the WebMCP browser API: call navigator.modelContext.registerTool({ name, description, inputSchema, execute }) from your page so an agent can invoke them. Implement it directly, or with a library like the @mcp-b polyfill (https://mcp-b.ai). Spec: https://github.com/webmachinelearning/webmcp.
2 of 14 agent-critical accessibility audits failed (ARIA input fields do not have accessible names, `[role]`s are not contained by their required parent element) — an agent may be unable to identify or operate the affected elements.
Fix: Fix the failing agent-accessibility audits listed below (accessible names on controls, valid ARIA roles/relationships, nothing interactive hidden from the tree).
Lighthouse accessibility score: 83/100. Agents read the page through its accessibility tree, so this is a proxy for how navigable your site is to an AI agent.
Fix: Resolve the failing accessibility audits below — each one removes an element or relationship an agent would otherwise be blind to.
833ms (field data from CrUX) — needs improvement.
Fix: Every request an AI agent makes pays this server latency, and agents make many requests per task. Reduce TTFB with edge caching, a CDN, and shipping less server-side work per request.
`[aria-*]` attributes match their roles passed.
Uses ARIA roles only on compatible elements passed.
`[aria-hidden="true"]` is not present on the document `<body>` passed.
`[aria-hidden="true"]` elements do not contain focusable descendents passed.
`[role]`s have all required `[aria-*]` attributes passed.
Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children. passed.
`[role]` values are valid passed.
`[aria-*]` attributes are valid and not misspelled passed.
`[aria-*]` attributes have valid values passed.
Buttons have an accessible name passed.
Document has a `<title>` element passed.
Links have a discernible name passed.
0.040 (field data from CrUX) — good.
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.
Can agents safely transact?
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.
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).
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.
/.well-known/oauth-authorization-server returns parseable JSON.
/.well-known/oauth-protected-resource returns parseable JSON.
cf-ray: a1eb7b1fc825fea4-AMS (Cloudflare); Server: cloudflare
CSP header present.
Homepage scheme is https:.
http://gymshark.com → https://us.checkout.gymshark.com/ (2 hops).
No stack-trace markers in the first 5KB.
Homepage HTML references no http:// resources.
Valid for 32 more days (Aug 23 07:57:03 2026 GMT, issuer: E7).
Server / X-Powered-By headers don't leak product version.
X-Content-Type-Options: nosniff.
X-Frame-Options: DENY.
Can agents shop and check out?
Found the human-approval-for-checkout rule.
Content-Type: text/markdown; charset=utf-8.
Mentions the store ("gymshark") — looks customised beyond the default.
References UCP / a UCP version or /.well-known/ucp.
No secret/token or admin-path references found.
Found at https://gymshark.com/agents.md.
References the UCP MCP endpoint (/api/ucp/mcp).
Manifest parses as JSON.
Manifest reachable at https://gymshark.com/.well-known/ucp.
Services: dev.ucp.shopping.
Transports: mcp, embedded.