Export Report
OVERALL SCORE
Level 5, Agent-Ready
- AI Discoverability 100 out of 100
- Agent Ease of Use 100 out of 100
- Security & Trust 100 out of 100
- GEO, AIO and AEO 86 out of 100
- SEO 100 out of 100
- Performance and Accessibility 97 out of 100
What AI sees of your website
CanAgentUse Scanner | AI SEO and Agent-Readiness Audits
Run deep AI SEO and agent-readiness audits across crawler policy, structured data, performance, accessibility, API discovery, OAuth, MCP, WebMCP, agent skills, and commerce signals.
Next step
Turn this report into a fix workflow
1 failed check is ready to move into MCP or CLI remediation. Generate a repair prompt, connect the scanner to your coding agent, or open the integration docs before your next rescan.
| Metric | Score | Status | Passed | Failed | Warning | Evidence |
|---|---|---|---|---|---|---|
| AI Discoverability | 100 | Strong | 28 | 0 | 0 | |
| Discoverability | 100 | Strong | 12 | 0 | 0 | |
| Content Readiness | 100 | Strong | 11 | 0 | 0 | |
| Bot Access Control | 100 | Strong | 5 | 0 | 0 | |
| Agent Ease of Use | 100 | Strong | 58 | 1 | 0 | View details |
| API | 100 | Strong | 11 | 0 | 0 | |
| Auth | 100 | Strong | 10 | 1 | 0 | View details |
| MCP | 100 | Strong | 17 | 0 | 0 | |
| Skill Discovery | 100 | Strong | 16 | 0 | 0 | |
| Agent Commerce | Not Applicable | Not Applicable | 4 | 0 | 0 | |
| GEO, AIO and AEO | 86 | Mostly ready | 8 | 0 | 9 | |
| GEO Readiness | 87 | Mostly ready | 2 | 0 | 4 | |
| AIO Readiness | Not Applicable | Not Applicable | 4 | 0 | 0 | |
| AEO Readiness | 81 | Mostly ready | 2 | 0 | 5 | |
| SEO | 100 | Strong | 11 | 0 | 0 | |
| SEO | 100 | Strong | 11 | 0 | 0 | |
| Security & Trust | 100 | Strong | 10 | 0 | 0 | |
| Security & Trust | 100 | Strong | 5 | 0 | 0 | |
| AI Training Exposure | 100 | Strong | 5 | 0 | 0 | |
| Performance and Accessibility | 97 | Strong | 20 | 1 | 3 | View details |
| Performance | 95 | Strong | 13 | 1 | 3 | View details |
| Accessibility | 100 | Strong | 7 | 0 | 0 |
Prioritized recommendations
Issues ranked by score impact
14 items need attention
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Answer-first sections
AEO: Answer-first sections scored 65/100 and needs improvement.
5 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Answer-first sections
AEO: Answer-first sections scored 65/100 and needs improvement.
Needs attention
AEO: Answer-first sections
Issue
8 section(s) may benefit from a clearer opening answer; this is optional for feature/card sections.
Details
Why it matters
Answer engines need concise answers, question-led structure, entity clarity, visible evidence, and trust signals that can be extracted without relying on search-only metadata checks.
Check name
AEO: Answer-first sections
Score
65/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for answer engines and assistants to answer from directly.
Result
AEO: Answer-first sections scored 65/100 and needs improvement.
Evidence
{
"sectionCount": 11,
"passing": 3,
"failing": [
{
"heading": "129 signals across 15 readiness areas for the AI agent age.",
"headingHtml": "<h2 id=\"scanner-coverage-heading\" class=\"mt-3 max-w-xl text-4xl font-semibold leading-[1.05] sm:text-5xl\">129<!-- --> signals across <!-- -->15<!-- --> readiness areas for the AI agent age.</h2>",
"firstParagraph": "The scanner measures whether websites and web apps give AI systems the signals they need to discover public pages, trust crawler policy, understand content, call documented APIs, and complete approved workflows.",
"paragraphHtml": "<p class=\"mt-4 max-w-2xl text-sm leading-6 theme-muted\">The scanner measures whether websites and web apps give AI systems the signals they need to discover public pages, trust crawler policy, understand content, call documented APIs, and complete approved workflows.</p>",
"words": 31,
"direct": false,
"issue": "First paragraph is 31 words and does not look like a concise direct answer."
},
{
"heading": "Agent-readiness field notes",
"headingHtml": "<h2 id=\"latest-blog-heading\" class=\"mt-2 text-3xl font-semibold sm:text-4xl\">Agent-readiness field notes</h2>",
"firstParagraph": "",
"paragraphHtml": "",
"words": 0,
"direct": false,
"issue": "No paragraph follows this heading."
},
{
"heading": "Best AI SEO Tools: 11 Checks Before You Buy",
"headingHtml": "<h3 class=\"mt-3 text-xl font-semibold leading-tight\">Best AI SEO Tools: 11 Checks Before You Buy</h3>",
"firstParagraph": "Compare AI SEO tools with 11 checks for crawler access, visibility tracking, schema, llms.txt, OpenAPI, MCP, reporting, remediation, proof, and fixes.",
"paragraphHtml": "<p class=\"mt-3 line-clamp-3 text-sm leading-6 theme-muted\">Compare AI SEO tools with 11 checks for crawler access, visibility tracking, schema, llms.txt, OpenAPI, MCP, reporting, remediation, proof, and fixes.</p>",
"words": 22,
"direct": false,
"issue": "First paragraph is 22 words and does not look like a concise direct answer."
},
{
"heading": "AI Crawler Audit: Robots.txt Is Not Enough",
"headingHtml": "<h3 class=\"mt-3 text-xl font-semibold leading-tight\">AI Crawler Audit: Robots.txt Is Not Enough</h3>",
"firstParagraph": "Run a 7-layer AI crawler audit across 13 bots, robots.txt, Content-Signal, WAF rules, status codes, logs, IP verification, retrieval proof, and fixes.",
"paragraphHtml": "<p class=\"mt-3 line-clamp-3 text-sm leading-6 theme-muted\">Run a 7-layer AI crawler audit across 13 bots, robots.txt, Content-Signal, WAF rules, status codes, logs, IP verification, retrieval proof, and fixes.</p>",
"words": 23,
"direct": false,
"issue": "First paragraph is 23 words and does not look like a concise direct answer."
},
{
"heading": "MCP in your IDE",
"headingHtml": "<h3 class=\"mt-4 text-xl font-semibold\">MCP in your IDE</h3>",
"firstParagraph": "Connect CanAgentUse to Codex, Claude Desktop, or Cursor so failed checks turn into direct repair prompts inside your coding workflow.",
"paragraphHtml": "<p class=\"mt-3 text-sm leading-6 theme-muted\">Connect CanAgentUse to Codex, Claude Desktop, or Cursor so failed checks turn into direct repair prompts inside your coding workflow.</p>",
"words": 20,
"direct": false,
"issue": "First paragraph is 20 words and does not look like a concise direct answer."
},
{
"heading": "CI in pull requests",
"headingHtml": "<h3 class=\"mt-4 text-xl font-semibold\">CI in pull requests</h3>",
"firstParagraph": "Turn the scanner into a release check that compares baseline and preview results before changes reach production.",
"paragraphHtml": "<p class=\"mt-3 text-sm leading-6 theme-muted\">Turn the scanner into a release check that compares baseline and preview results before changes reach production.</p>",
"words": 17,
"direct": false,
"issue": "First paragraph is 17 words and does not look like a concise direct answer."
},
{
"heading": "Want help making your site agent-ready?",
"headingHtml": "<h2 id=\"scanner-connect-title\" class=\"mt-3 max-w-2xl text-3xl font-semibold leading-tight md:text-4xl\">Want help making your site agent-ready?</h2>",
"firstParagraph": "Send your site and goals. We can review readiness gaps, implementation options, and the right next step before or after you scan.",
"paragraphHtml": "<p class=\"mt-4 max-w-xl text-sm leading-6 theme-muted\">Send your site and goals. We can review readiness gaps, implementation options, and the right next step before or after you scan.</p>",
"words": 22,
"direct": false,
"issue": "First paragraph is 22 words and does not look like a concise direct answer."
},
{
"heading": "Questions about AI SEO and agent-readiness scans",
"headingHtml": "<h2 id=\"faq-heading\" class=\"mt-3 text-3xl font-semibold leading-tight sm:text-4xl\">Questions about AI SEO and agent-readiness scans</h2>",
"firstParagraph": "The scanner focuses on the public, machine-readable, technical, and content signals that AI search systems and agents need before they can cite, understand, or use a website reliably.",
"paragraphHtml": "<p class=\"mt-5 max-w-xl text-base leading-7 theme-muted\">The scanner focuses on the public, machine-readable, technical, and content signals that AI search systems and agents need before they can cite, understand, or use a website reliably.</p>",
"words": 28,
"direct": false,
"issue": "First paragraph is 28 words and does not look like a concise direct answer."
}
],
"score": 65,
"weight": 28
}GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Entity clarity
GEO: Entity clarity scored 83/100 and needs improvement.
2 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Entity clarity
GEO: Entity clarity scored 83/100 and needs improvement.
Needs attention
GEO: Entity clarity
Issue
Title/H1 terms missing from description: canagentuse, scanner, website, ready, agents.
Details
Why it matters
Generative engines favor pages with self-contained answer passages, clear entities, structured data, summaries, FAQ patterns, and crawler-accessible HTML that can be cited without extra interpretation.
Check name
GEO: Entity clarity
Score
83/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for AI answer engines to extract, cite, and attribute.
Result
GEO: Entity clarity scored 83/100 and needs improvement.
Evidence
{
"title": "CanAgentUse Scanner | AI SEO and Agent-Readiness Audits",
"h1": "Is your website ready for AI agents?",
"description": "Run deep AI SEO and agent-readiness audits across crawler policy, structured data, performance, accessibility, API discovery, OAuth, MCP, WebMCP, agent skills, and commerce signals.",
"topicOverlap": 0.4444444444444444,
"topicTerms": [
"canagentuse",
"scanner",
"seo",
"agent",
"readiness",
"audits",
"website",
"ready",
"agents"
],
"descriptionTerms": [
"run",
"deep",
"seo",
"agent",
"readiness",
"audits",
"across",
"crawler",
"policy",
"structured",
"data",
"performance",
"accessibility",
"api",
"discovery",
"oauth",
"mcp",
"webmcp",
"skills"
],
"missingFromDescription": [
"canagentuse",
"scanner",
"website",
"ready",
"agents"
],
"score": 83,
"weight": 28
}GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Explanatory content depth
GEO: Explanatory content depth scored 75/100 and needs improvement.
2 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Explanatory content depth
GEO: Explanatory content depth scored 75/100 and needs improvement.
Needs attention
GEO: Explanatory content depth
Issue
3 explanatory paragraph(s) could be stronger for citation or AI extraction.
Details
Why it matters
Generative engines favor pages with self-contained answer passages, clear entities, structured data, summaries, FAQ patterns, and crawler-accessible HTML that can be cited without extra interpretation.
Check name
GEO: Explanatory content depth
Score
75/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for AI answer engines to extract, cite, and attribute.
Result
GEO: Explanatory content depth scored 75/100 and needs improvement.
Evidence
{
"candidatePassages": 3,
"citablePassages": 0,
"failingCandidateParagraphs": [
{
"index": 32,
"heading": "H2: Questions about AI SEO and agent-readiness scans",
"text": "CanAgentUse checks AI SEO, crawler policy, structured data, semantic HTML, performance, accessibility, API catalog, OpenAPI, OAuth/OIDC discovery, protected resource metadata, MCP, WebMCP, A2A, agent skills, Web Bot Auth, AI training policy, and agent commerce signals such as x402, MPP, UCP, and ACP.",
"words": 43,
"hasEvidence": true,
"reasons": [
"Too short for a citation-ready passage (43 words; target 80-220)."
],
"html": "<p class=\"mt-3 max-w-3xl text-base leading-7 theme-muted\">CanAgentUse checks AI SEO, crawler policy, structured data, semantic HTML, performance, accessibility, API catalog, OpenAPI, OAuth/OIDC discovery, protected resource metadata, MCP, WebMCP, A2A, agent skills, Web Bot Auth, AI training policy, and agent commerce signals such as x402, MPP, UCP, and ACP.</p>"
},
{
"index": 33,
"heading": "H2: Questions about AI SEO and agent-readiness scans",
"text": "No. Robots.txt and llms.txt are only a small part of the scan. The report also evaluates content extraction, AI SEO, structured data, API discovery, authentication metadata, MCP and WebMCP surfaces, agent-facing skills, security headers, performance, accessibility, and commerce-readiness metadata.",
"words": 41,
"hasEvidence": true,
"reasons": [
"Too short for a citation-ready passage (41 words; target 80-220)."
],
"html": "<p class=\"mt-3 max-w-3xl text-base leading-7 theme-muted\">No. Robots.txt and llms.txt are only a small part of the scan. The report also evaluates content extraction, AI SEO, structured data, API discovery, authentication metadata, MCP and WebMCP surfaces, agent-facing skills, security headers, performance, accessibility, and commerce-readiness metadata.</p>"
},
{
"index": 34,
"heading": "H2: Questions about AI SEO and agent-readiness scans",
"text": "Yes. It checks API catalog discovery, OpenAPI or Swagger documents, OAuth and OIDC discovery metadata, OAuth Protected Resource metadata, MCP server cards, mcp.json, WebMCP manifests, browser tool annotations, A2A agent cards, agent.json, agents.json, and agent skills indexes.",
"words": 40,
"hasEvidence": false,
"reasons": [
"Too short for a citation-ready passage (40 words; target 80-220).",
"Missing a named source, statistic, date, percentage, report, or other evidence signal."
],
"html": "<p class=\"mt-3 max-w-3xl text-base leading-7 theme-muted\">Yes. It checks API catalog discovery, OpenAPI or Swagger documents, OAuth and OIDC discovery metadata, OAuth Protected Resource metadata, MCP server cards, mcp.json, WebMCP manifests, browser tool annotations, A2A agent cards, agent.json, agents.json, and agent skills indexes.</p>"
}
],
"citableParagraphs": [],
"score": 75,
"weight": 18
}GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Answer evidence and trust
AEO: Answer evidence and trust scored 80/100 and needs improvement.
2 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Answer evidence and trust
AEO: Answer evidence and trust scored 80/100 and needs improvement.
Needs attention
AEO: Answer evidence and trust
Issue
Missing AIO trust signals: publisher.
Details
Why it matters
Answer engines need concise answers, question-led structure, entity clarity, visible evidence, and trust signals that can be extracted without relying on search-only metadata checks.
Check name
AEO: Answer evidence and trust
Score
80/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for answer engines and assistants to answer from directly.
Result
AEO: Answer evidence and trust scored 80/100 and needs improvement.
Evidence
{
"signals": {
"author": true,
"publisher": false,
"freshnessDate": true,
"aboutOrContact": true,
"policyLinks": true
},
"missing": [
"publisher"
],
"authorMeta": "Senior Editor",
"schemaAuthors": [],
"schemaPublishers": [],
"schemaDates": [
"2026-06-08T10:31:58.000Z"
],
"visibleDates": [
"2026-06-07",
"2026-06-06",
"2026-06-05"
],
"aboutLinks": [
{
"href": "/docs",
"text": "About CanAgentUse",
"html": "<a class=\"focus-ring rounded-lg underline underline-offset-4 hover:theme-accent transition-colors duration-200\" href=\"/docs\" data-mcp-tool=\"open_about\" tool-name=\"open_about\" tool-description=\"Open information about CanAgentUse\">About CanAgentUse</a>"
}
],
"contactLinks": [
{
"href": "/docs",
"text": "Contact support",
"html": "<a class=\"focus-ring rounded-lg underline underline-offset-4 hover:theme-accent transition-colors duration-200\" href=\"/docs\" data-mcp-tool=\"open_support\" tool-name=\"open_support\" tool-description=\"Open support and contact information\">Contact support</a>"
}
],
"privacyLinks": [
{
"href": "/llms.txt",
"text": "Terms for agents",
"html": "<a class=\"focus-ring rounded-lg underline underline-offset-4 hover:theme-accent transition-colors duration-200\" href=\"/llms.txt\" data-mcp-tool=\"open_agent_terms\" tool-name=\"open_agent_terms\" tool-description=\"Open machine-readable terms and guidance for agents\">Terms for agents</a>"
}
],
"score": 80,
"weight": 22
}GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Extraction-friendly structure
GEO: Extraction-friendly structure scored 85/100 and needs improvement.
2 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Extraction-friendly structure
GEO: Extraction-friendly structure scored 85/100 and needs improvement.
Needs attention
GEO: Extraction-friendly structure
Issue
Missing extraction signals: optional top summary / TL;DR / key takeaways block, table with <thead> only if the page already has tabular/comparative data, ordered list only if the page explains a workflow/process.
Details
Why it matters
Generative engines favor pages with self-contained answer passages, clear entities, structured data, summaries, FAQ patterns, and crawler-accessible HTML that can be cited without extra interpretation.
Check name
GEO: Extraction-friendly structure
Score
85/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for AI answer engines to extract, cite, and attribute.
Result
GEO: Extraction-friendly structure scored 85/100 and needs improvement.
Evidence
{
"hasSummary": false,
"tableCount": 0,
"tablesWithHead": 0,
"tablesMissingThead": [],
"orderedLists": 0,
"hasFaq": true,
"definitionPatterns": 3,
"schemaBlocks": 3,
"missingSignals": [
"optional top summary / TL;DR / key takeaways block",
"table with <thead> only if the page already has tabular/comparative data",
"ordered list only if the page explains a workflow/process"
],
"score": 85,
"weight": 24
}GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Entity and definition clarity
AEO: Entity and definition clarity scored 86/100 and needs improvement.
1 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Entity and definition clarity
AEO: Entity and definition clarity scored 86/100 and needs improvement.
Needs attention
AEO: Entity and definition clarity
Issue
Entity or definition gaps: canagentuse, scanner, website, ready, agents.
Details
Why it matters
Answer engines need concise answers, question-led structure, entity clarity, visible evidence, and trust signals that can be extracted without relying on search-only metadata checks.
Check name
AEO: Entity and definition clarity
Score
86/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for answer engines and assistants to answer from directly.
Result
AEO: Entity and definition clarity scored 86/100 and needs improvement.
Evidence
{
"title": "CanAgentUse Scanner | AI SEO and Agent-Readiness Audits",
"h1": "Is your website ready for AI agents?",
"description": "Run deep AI SEO and agent-readiness audits across crawler policy, structured data, performance, accessibility, API discovery, OAuth, MCP, WebMCP, agent skills, and commerce signals.",
"topicOverlap": 0.4444444444444444,
"definitionCount": 3,
"topicTerms": [
"canagentuse",
"scanner",
"seo",
"agent",
"readiness",
"audits",
"website",
"ready",
"agents"
],
"descriptionTerms": [
"run",
"deep",
"seo",
"agent",
"readiness",
"audits",
"across",
"crawler",
"policy",
"structured",
"data",
"performance",
"accessibility",
"api",
"discovery",
"oauth",
"mcp",
"webmcp",
"skills"
],
"missingFromDescription": [
"canagentuse",
"scanner",
"website",
"ready",
"agents"
],
"score": 86,
"weight": 18
}GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Answer intent coverage
AEO: Answer intent coverage scored 70/100 and needs improvement.
1 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
AEO: Answer intent coverage
AEO: Answer intent coverage scored 70/100 and needs improvement.
Needs attention
AEO: Answer intent coverage
Issue
Missing likely AI Overview intent sections: what, how, cost, compare.
Details
Why it matters
Answer engines need concise answers, question-led structure, entity clarity, visible evidence, and trust signals that can be extracted without relying on search-only metadata checks.
Check name
AEO: Answer intent coverage
Score
70/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for answer engines and assistants to answer from directly.
Result
AEO: Answer intent coverage scored 70/100 and needs improvement.
Evidence
{
"headings": [
{
"text": "129 signals across 15 readiness areas for the AI agent age.",
"html": "<h2 id=\"scanner-coverage-heading\" class=\"mt-3 max-w-xl text-4xl font-semibold leading-[1.05] sm:text-5xl\">129<!-- --> signals across <!-- -->15<!-- --> readiness areas for the AI agent age.</h2>"
},
{
"text": "Agent-readiness field notes",
"html": "<h2 id=\"latest-blog-heading\" class=\"mt-2 text-3xl font-semibold sm:text-4xl\">Agent-readiness field notes</h2>"
},
{
"text": "Fix failing checks inside the tools your team already uses.",
"html": "<h2 id=\"integration-guide-title\" class=\"mt-3 max-w-3xl text-3xl font-semibold leading-tight sm:text-4xl\">Fix failing checks inside the tools your team already uses.</h2>"
},
{
"text": "Want help making your site agent-ready?",
"html": "<h2 id=\"scanner-connect-title\" class=\"mt-3 max-w-2xl text-3xl font-semibold leading-tight md:text-4xl\">Want help making your site agent-ready?</h2>"
},
{
"text": "Questions about AI SEO and agent-readiness scans",
"html": "<h2 id=\"faq-heading\" class=\"mt-3 text-3xl font-semibold leading-tight sm:text-4xl\">Questions about AI SEO and agent-readiness scans</h2>"
}
],
"expected": [
{
"id": "what",
"label": "What is CanAgentUse Scanner?",
"pattern": {}
},
{
"id": "how",
"label": "How does CanAgentUse Scanner work?",
"pattern": {}
},
{
"id": "benefits",
"label": "Why use CanAgentUse Scanner?",
"pattern": {}
},
{
"id": "cost",
"label": "Is CanAgentUse Scanner free or paid?",
"pattern": {}
},
{
"id": "compare",
"label": "How does CanAgentUse Scanner compare with alternatives?",
"pattern": {}
}
],
"missing": [
{
"id": "what",
"label": "What is CanAgentUse Scanner?",
"pattern": {}
},
{
"id": "how",
"label": "How does CanAgentUse Scanner work?",
"pattern": {}
},
{
"id": "cost",
"label": "Is CanAgentUse Scanner free or paid?",
"pattern": {}
},
{
"id": "compare",
"label": "How does CanAgentUse Scanner compare with alternatives?",
"pattern": {}
}
],
"score": 70,
"weight": 8
}Agent Ease of UseAuthEmerging recommendation
OAuth Protected Resource
OAuth Protected Resource has an informational finding because the page appears to support authentication.
Informational
Agent Ease of UseAuthEmerging recommendation
OAuth Protected Resource
OAuth Protected Resource has an informational finding because the page appears to support authentication.
Needs attention
OAuth Protected Resource
Issue
A protected route returned 401 without a valid WWW-Authenticate: Bearer challenge, matching resource_metadata URL, or matching protected resource identifier.
Why it matters
Protected Resource metadata tells agents which authorization servers protect an API and how to connect authentication challenges to the right resource.
Check name
OAuth Protected Resource
Score
0/100
Status
informational
Category
Auth
Maturity
Emerging recommendation
Goal
Publish OAuth Protected Resource Metadata so agents can discover how to authenticate.
Result
OAuth Protected Resource has an informational finding because the page appears to support authentication.
Validation steps
Probe protected API Bearer challenge
A protected route returned 401 without a valid WWW-Authenticate: Bearer challenge, matching resource_metadata URL, or matching protected resource identifier.
Evidence
{
"failedStep": "protected-route-challenge",
"steps": [
{
"id": "fetch",
"title": "Fetch protected resource metadata",
"status": "pass",
"evidence": {
"path": "/.well-known/oauth-protected-resource",
"statusCode": 200,
"contentType": "application/oauth-protected-resource+json; charset=utf-8"
},
"howToFix": "Publish /.well-known/oauth-protected-resource JSON."
},
{
"id": "metadata",
"title": "Validate protected resource metadata",
"status": "pass",
"evidence": {
"valid": true,
"compatibleContentType": true,
"hasResource": true,
"authorizationServerCount": 1,
"resource": "https://canagentuse.com",
"resourceIssues": [],
"authServerIssues": [],
"scopesSupported": [
"scan:read",
"scan:write"
],
"bearerMethodsSupported": [
"header"
],
"rawExcerpt": "{\"resource\":\"https://canagentuse.com\",\"authorization_servers\":[\"https://canagentuse.com/.well-known/oauth-authorization-server\"],\"scopes_supported\":[\"scan:read\",\"scan:write\"],\"bearer_methods_supported\":[\"header\"],\"resource_documentation\":\"https://canagentuse.com/api\"}"
},
"howToFix": "Publish resource and authorization_servers as absolute URLs."
},
{
"id": "resource-identity",
"title": "Validate protected resource identity",
"status": "pass",
"evidence": {
"resource": "https://canagentuse.com",
"expectedResource": "https://canagentuse.com"
},
"howToFix": "Set `resource` to the origin/resource identifier represented by /.well-known/oauth-protected-resource."
},
{
"id": "protected-route-challenge",
"title": "Probe protected API Bearer challenge",
"status": "fail",
"evidence": {
"checked": [
{
"path": "/api/admin/scans",
"statusCode": 401,
"wwwAuthenticate": {
"valid": false,
"present": false
},
"expectedMetadataUrl": "https://canagentuse.com/.well-known/oauth-protected-resource",
"metadataUrlMatches": true,
"metadataResource": "https://canagentuse.com",
"resourceMatchesRequestContext": true
},
{
"path": "/api/admin/summary",
"statusCode": 401,
"wwwAuthenticate": {
"valid": false,
"present": false
},
"expectedMetadataUrl": "https://canagentuse.com/.well-known/oauth-protected-resource",
"metadataUrlMatches": true,
"metadataResource": "https://canagentuse.com",
"resourceMatchesRequestContext": true
},
{
"path": "/api/scans",
"statusCode": 200,
"wwwAuthenticate": {
"valid": false,
"present": false
},
"expectedMetadataUrl": "https://canagentuse.com/.well-known/oauth-protected-resource",
"metadataUrlMatches": true,
"metadataResource": "https://canagentuse.com",
"resourceMatchesRequestContext": true
}
]
},
"issue": "A protected route returned 401 without a valid WWW-Authenticate: Bearer challenge, matching resource_metadata URL, or matching protected resource identifier.",
"howToFix": "When this site exposes bearer-protected APIs, return 401 with WWW-Authenticate: Bearer and link resource_metadata."
}
],
"authApplicability": {
"supportsAuth": true,
"score": 12,
"signals": [
{
"source": "button:attribute",
"weight": 3,
"match": "auth control annotation"
},
{
"source": "visible-text",
"weight": 3,
"match": "sign in"
},
{
"source": "visible-text",
"weight": 3,
"match": "oauth"
},
{
"source": "visible-text",
"weight": 3,
"match": "oidc"
}
]
},
"resourceFetchSucceeded": true
}Performance and AccessibilityBest PracticesBrowser audit
Browser errors were logged to the console
50 Fail
Performance and AccessibilityBest PracticesBrowser audit
Browser errors were logged to the console
Check name
Browser errors were logged to the console
Score
0/100
Status
fail
Device
desktop
Category
Best Practices
Fix guidance
Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns. [Learn more about this errors in console diagnostic audit](https://developer.chrome.com/docs/lighthouse/best-practices/errors-in-console/)
Evidence
{
"description": "Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns. [Learn more about this errors in console diagnostic audit](https://developer.chrome.com/docs/lighthouse/best-practices/errors-in-console/)"
}Performance and AccessibilityBest PracticesBrowser audit
Issues were logged in the `Issues` panel in Chrome Devtools
50 Fail
Performance and AccessibilityBest PracticesBrowser audit
Issues were logged in the `Issues` panel in Chrome Devtools
Check name
Issues were logged in the `Issues` panel in Chrome Devtools
Score
0/100
Status
fail
Device
desktop
Category
Best Practices
Fix guidance
Issues logged to the `Issues` panel in Chrome Devtools indicate unresolved problems. They can come from network request failures, insufficient security controls, and other browser concerns. Open up the Issues panel in Chrome DevTools for more details on each issue.
Evidence
{
"description": "Issues logged to the `Issues` panel in Chrome Devtools indicate unresolved problems. They can come from network request failures, insufficient security controls, and other browser concerns. Open up the Issues panel in Chrome DevTools for more details on each issue."
}Performance and AccessibilityPerformanceBrowser audit
Legacy JavaScript
25 Fail
Performance and AccessibilityPerformanceBrowser audit
Legacy JavaScript
Check name
Legacy JavaScript
Score
0/100
Status
fail
Device
desktop
Category
Performance
Estimated savings
Est savings of 12Â KiB
Fix guidance
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript)
References
https://web.dev/learn/performance/Evidence
{
"displayValue": "Est savings of 12Â KiB",
"description": "Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support older browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://developer.chrome.com/docs/performance/insights/legacy-javascript)"
}Performance and AccessibilityPerformanceBrowser audit
Improve image delivery
13 Warning
Performance and AccessibilityPerformanceBrowser audit
Improve image delivery
Check name
Improve image delivery
Score
50/100
Status
warning
Device
desktop
Category
Performance
Estimated savings
Est savings of 113Â KiB
Fix guidance
Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/performance/insights/image-delivery)
References
https://web.dev/learn/performance/Evidence
{
"displayValue": "Est savings of 113Â KiB",
"description": "Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/performance/insights/image-delivery)"
}Performance and AccessibilityPerformanceBrowser audit
Render-blocking requests
13 Warning
Performance and AccessibilityPerformanceBrowser audit
Render-blocking requests
Check name
Render-blocking requests
Score
50/100
Status
warning
Device
desktop
Category
Performance
Fix guidance
Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path.
References
https://web.dev/learn/performance/Evidence
{
"description": "Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path."
}Performance and AccessibilityPerformanceBrowser audit
Use efficient cache lifetimes
13 Warning
Performance and AccessibilityPerformanceBrowser audit
Use efficient cache lifetimes
Check name
Use efficient cache lifetimes
Score
50/100
Status
warning
Device
desktop
Category
Performance
Estimated savings
Est savings of 89Â KiB
Fix guidance
A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).
References
https://web.dev/learn/performance/Evidence
{
"displayValue": "Est savings of 89Â KiB",
"description": "A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache)."
}Fix with MCP or CLI
Use this report as the handoff into remediation. Generate a coding-agent prompt with the failing checks attached, or jump to the MCP and CLI setup docs before your next rescan.
Score history
Public scan score over time
Public reports for this website origin. Select any point or report link to open that canonical report.
| Scan date | Score | Readiness | Report |
|---|---|---|---|
| 79/100 | Level 4, Mostly Ready | View report | |
| 96/100 | Level 5, Agent-Ready | View report | |
| 96/100 | Level 5, Agent-Ready | View report | |
| 98/100 | Level 5, Agent-Ready | Current report |