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?
Homepage returned 403 — couldn't analyse structure.
Homepage returned 403 for Accept: text/markdown.
Homepage returned 403.
12 of 12 pages are missing <title> and/or <h1>: /dyn_img/sitemap/mcom_sitemap_pdp_ar.xml.gz, /dyn_img/sitemap/mcom_sitemap_pdp_ba.xml.gz, /dyn_img/sitemap/mcom_sitemap_facets_aa.xml.gz, /dyn_img/sitemap/mcom_sitemap_facets_ae.xml.gz, /dyn_img/sitemap/mcom_sitemap_pdp_ag.xml.gz, /dyn_img/sitemap/mcom_sitemap_pdp_am.xml.gz, /dyn_img/sitemap/mcom_sitemap_1_homepg.xml.gz, /dyn_img/sitemap/mcom_sitemap_pdp_ai.xml.gz, /dyn_img/sitemap/mcom_sitemap_pdp_an.xml.gz, /dyn_img/sitemap/mcom_sitemap_pdp_ax.xml.gz, /dyn_img/sitemap/mcom_sitemap_onsite_aa.xml.gz, /dyn_img/sitemap/mcom_sitemap_pdp_bc.xml.gz.
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 12 pages return <80 words of visible text — agents without JavaScript see an empty page: /dyn_img/sitemap/mcom_sitemap_1_homepg.xml.gz (4w).
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.
Can agents actually operate the page?
Lighthouse flagged this audit — agents may be unable to perceive or operate the affected elements.
Fix: Give every <button> discernible text or an aria-label so agents can identify it.
Lighthouse flagged this audit — agents may be unable to perceive or operate the affected elements.
Fix: Give every link discernible text (avoid bare icons / "click here") so agents know where it goes.
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 12 agent-critical accessibility audits failed (Buttons do not have an accessible name, Links do not have a discernible name) — 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: 88/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.
856ms (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.
`[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]`s are contained by their required parent element passed.
`[role]` values are valid passed.
`[aria-*]` attributes are valid and not misspelled passed.
`[aria-*]` attributes have valid values passed.
Document has a `<title>` element 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 Strict-Transport-Security header on the homepage.
Fix: Add `Strict-Transport-Security: max-age=15768000; includeSubDomains` so browsers and agents refuse to downgrade to http for at least six months.
/.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.
Homepage returned 403.
No Content-Security-Policy header on the homepage.
Fix: Add a Content-Security-Policy. Even a strict default-src directive cuts XSS blast radius dramatically. Start in report-only mode to find violations.
Homepage returned 403 — couldn't scan for error markers.
Homepage returned 403 — couldn't scan for mixed content.
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.
No X-Frame-Options header and no CSP frame-ancestors directive.
Fix: Add `X-Frame-Options: SAMEORIGIN` (or a CSP frame-ancestors directive) to prevent your site being framed by a phishing host.
Server: AkamaiNetStorage
Homepage scheme is https:.
http://macys.com → https://www.macys.com/ (1 hop).
Valid for 144 more days (Dec 12 23:59:59 2026 GMT, issuer: Sectigo Public Server Authentication CA OV R36).
Server / X-Powered-By headers don't leak product version.