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.
Found https://asana.com/llms.txt.
Found at least one "[name](url)" markdown link.
Found a "> summary" blockquote.
First line is a top-level "# Title" heading.
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?
Homepage contains ~2348 elements — heavy.
Fix: Aim for under 1500 elements on the homepage. Heavier DOMs slow first paint and overflow some AI crawlers' parse buffers.
Detected 5 heading level skips (e.g. h1 → h4).
Fix: Tighten the heading order so each level only steps down by one. Skipped levels confuse both screen-readers and AI structural extractors.
Only 0/186 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.
Missing landmark elements: main.
Found 2 <h1> tags. Most AI summarisers expect exactly one.
Fix: Demote the secondary H1s to H2 — keep H1 reserved for the page title.
6 of 12 pages are missing <title> and/or <h1>: /create-account-mobile, /create-account-signup, /create-account, /paidservices, /referral, /sales-email.
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.
Homepage returns text/markdown when requested.
Homepage server response contains 1403 words of visible text — content is reachable without executing JavaScript.
Language declared as "en".
186 of 186 <img> tags have alt attributes.
174 internal links found.
All 12 pages return ≥80 words of visible text without JavaScript.
Can agents actually operate the page?
3 of 13 agent-critical accessibility audits failed (`[aria-*]` attributes do not match their roles, Elements with an ARIA `[role]` that require children to contain a specific `[role]` are missing some or all of those required children., `[role]` values are not valid) — 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 flagged this audit — agents may be unable to perceive or operate the affected elements.
Fix: Remove ARIA attributes that aren't allowed on the element's role.
Lighthouse flagged this audit — agents may be unable to perceive or operate the affected elements.
Fix: Ensure ARIA roles that need specific children contain them (e.g. list → listitem).
Lighthouse flagged this audit — agents may be unable to perceive or operate the affected elements.
Fix: Use only valid ARIA role values.
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.
Lighthouse accessibility score: 84/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.
0.150 (field data from CrUX) — needs improvement.
Fix: A layout that shifts while loading makes an AI agent mis-click the element it targeted. Eliminate CLS by setting explicit width/height on images and embeds, avoiding inserted content above existing content, and reserving space for ad slots.
`[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]`s are contained by their required parent element 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.
ARIA IDs are unique passed.
Links have a discernible name passed.
699ms (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?
Found 1 http:// reference 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.
/.well-known/oauth-authorization-server returned 404.
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 404.
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.
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.
CSP header present.
max-age=31536000, includeSubDomains=true, preload=true.
Homepage scheme is https:.
http://asana.com → https://asana.com/ (1 hop).
No stack-trace markers in the first 5KB.
Valid for 53 more days (Sep 12 16:24:05 2026 GMT, issuer: YE1).
Server / X-Powered-By headers don't leak product version.
X-Content-Type-Options: nosniff.
X-Frame-Options: DENY.