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.
Crawled 12 of 12 discovered pages beyond the homepage.
Could not identify a known website platform (custom stack or unrecognised).
Can agents understand your content?
No semantic landmark elements (main, header, footer, nav) detected on the homepage.
Fix: Wrap your page structure in semantic landmarks. AI structural extractors rely on them to separate navigation from content from boilerplate.
Homepage ignored Accept: text/markdown and returned HTML.
Fix: Serve a markdown version of high-value pages when the client asks for text/markdown. AI summarisers, chatbots and IDE agents prefer markdown — fewer tokens, no DOM noise.
Homepage server response contains only 24 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/1 images have width+height — large CLS risk.
Fix: Set width and height on every <img> so the browser reserves space before the image loads. A layout that shifts while loading makes an AI agent mis-click the element it targeted.
Only 2 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.
10 of 12 pages return <80 words of visible text — agents without JavaScript see an empty page: /contact-us (24w), /pricing (24w), /plans (24w), /about-us (24w), /services (24w), /products (24w), /blog (24w), /news (24w), /faq (24w), /help (24w).
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 contains ~76 elements.
1 headings, no level skips.
Language declared as "en".
1 of 1 <img> tags have alt attributes.
Exactly one <h1> on the homepage.
All 12 reachable key pages have both a <title> and <h1>.
Can agents actually operate the page?
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.
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.
0/1 data-collecting forms mark required fields.
Fix: Add the `required` attribute (or `aria-required="true"`) to mandatory inputs. Form-filling agents skip optional fields by default — without markers they over-fill.
No HTML5 validation hints (pattern / minlength / maxlength / min / max) on any data-collecting form input.
Fix: Publish input constraints via HTML attributes so agents and browsers can validate client-side.
All 10 agent-critical accessibility audits passed — an agent can perceive and operate the page through its accessibility tree.
`[aria-*]` attributes match their roles 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.
`[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.
Lighthouse accessibility score: 100/100. Agents read the page through its accessibility tree, so this is a proxy for how navigable your site is to an AI agent.
All 1 data-collecting forms set autocomplete on at least one field.
3 of 3 visible interactive form fields have labels.
0.000 (field data from CrUX) — good.
527ms (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?
/.well-known/oauth-authorization-server returned the site's HTML app shell — treating as not published.
Fix: Publish /.well-known/oauth-authorization-server so AI agents discovering your OAuth setup can negotiate flows automatically. Required if your site offers an authenticated API.
/.well-known/oauth-protected-resource returned the site's HTML app shell — treating as not published.
Fix: Publish /.well-known/oauth-protected-resource so AI agents discovering your OAuth setup can negotiate flows automatically. Required if your site offers an authenticated API.
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 configured (max-age=31536000) but missing includeSubDomains.
Fix: Add `includeSubDomains` so subdomains inherit the policy.
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.
No `X-Content-Type-Options: nosniff` header.
Fix: Add `X-Content-Type-Options: nosniff` to prevent browsers (and some agents) from re-interpreting your responses as a different content type.
CSP header present.
Homepage scheme is https:.
http://ravelry.com → https://www.ravelry.com/account/login (2 hops).
No stack-trace markers in the first 5KB.
Homepage HTML references no http:// resources.
Valid for 190 more days (Jan 27 23:59:59 2027 GMT, issuer: Sectigo Public Server Authentication CA DV E36).
Server / X-Powered-By headers don't leak product version.
X-Frame-Options: SAMEORIGIN.