Export Report
OVERALL SCORE
Level 3, Bot-Aware
- AI Discoverability 70 out of 100
- Agent Ease of Use 43 out of 100
- Security & Trust 55 out of 100
- GEO, AIO and AEO 70 out of 100
- SEO 92 out of 100
- Performance 68 out of 100
- Accessibility 0 out of 100
What AI sees of your website
ZKsync.io
ZKsync helps banks and companies future-proof finance and expand into global digital assets with privacy and compliance.
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 | 70 | Needs work | 35 | 0 | 0 | |
| Discoverability | 67 | Needs work | 8 | 0 | 0 | |
| Content Readiness | 81 | Mostly ready | 24 | 0 | 0 | |
| Bot Access Control | 63 | Needs work | 3 | 0 | 0 | |
| Agent Ease of Use | 43 | Priority fix | 4 | 4 | 0 | View details |
| Auth | 10 | Priority fix | 1 | 3 | 0 | View details |
| Skill Discovery | 54 | Needs work | 1 | 0 | 0 | |
| Google Agentic Browsing | 67 | Needs work | 2 | 1 | 0 | View details |
| GEO, AIO and AEO | 70 | Needs work | 11 | 0 | 0 | |
| GEO Readiness | Not Applicable | Not Applicable | 2 | 0 | 0 | |
| AIO Readiness | Not Applicable | Not Applicable | 6 | 0 | 0 | |
| AEO Readiness | Not Applicable | Not Applicable | 3 | 0 | 0 | |
| SEO | 92 | Strong | 9 | 0 | 0 | |
| SEO | 92 | Strong | 9 | 0 | 0 | |
| Security & Trust | 55 | Needs work | 11 | 0 | 0 | |
| Security & Trust | 55 | Needs work | 11 | 0 | 0 | |
| Performance | 68 | Needs work | 16 | 0 | 0 | |
| Performance | 68 | Needs work | 16 | 0 | 0 | |
| Accessibility | 0 | Priority fix | 0 | 1 | 0 | View details |
| Accessibility | 0 | Priority fix | 0 | 1 | 0 | View details |
Prioritized recommendations
Issues ranked by score impact
3 items need attention
Agent Ease of UseAuthEmerging recommendation
Auth.md Agent Registration
Auth.md Agent Registration failed at "Fetch and validate /auth.md".
90 Fail
Agent Ease of UseAuthEmerging recommendation
Auth.md Agent Registration
Auth.md Agent Registration failed at "Fetch and validate /auth.md".
Needs attention
Auth.md Agent Registration
Issue
auth.md could not be fetched.
Details
Why it matters
Human login and signup flows are often opaque to agents. Auth.md gives automated clients a stable registration contract instead of forcing them to scrape docs, automate browser forms, or guess credential flows.
Check name
Auth.md Agent Registration
Score
10/100
Status
fail
Category
Auth
Maturity
Emerging recommendation
Goal
Publish Auth.md v1 metadata so agents can discover how to register, claim a user, and obtain credentials.
Result
Auth.md Agent Registration failed at "Fetch and validate /auth.md".
Validation steps
Fetch and validate /auth.md
auth.md could not be fetched.
/auth.md is missing or not usable as agent registration guidance
Validate protected resource metadata
OAuth Protected Resource Metadata could not be fetched.
Auth.md protected-resource metadata is missing or incomplete
Validate Auth.md authorization metadata
OAuth authorization-server metadata could not be fetched.
Authorization-server metadata lacks Auth.md v1 fields
Evidence log3 steps · 18 lines
Fetch and validate /auth.md [fail]! auth.md could not be fetched.INFOFetch and validate /auth.mdINFOFetch Auth.md-related resource path="/auth.md" statusCode=404 contentType="text/html; charset=utf-8" bytes=270699FAILCompare response Content-Type with expected Auth.md media type actual=false expected=trueFAILCompare Auth.md/OAuth metadata validation result actual=false expected=trueFAILAuth.md validation issue issue="auth.md could not be fetched."FAILauth.md could not be fetched.Validate protected resource metadata [fail]! OAuth Protected Resource Metadata could not be fetched.INFOValidate protected resource metadataINFOFetch Auth.md-related resource path="/.well-known/oauth-protected-resource" statusCode=404 contentType="text/html; charset=utf-8" bytes=270790FAILCompare response Content-Type with expected Auth.md media type actual=false expected=trueFAILCompare Auth.md/OAuth metadata validation result actual=false expected=trueFAILAuth.md validation issue issue="OAuth Protected Resource Metadata could not be fetched."FAILOAuth Protected Resource Metadata could not be fetched.Validate Auth.md authorization metadata [fail]! OAuth authorization-server metadata could not be fetched.INFOValidate Auth.md authorization metadataINFOFetch Auth.md-related resource path="/.well-known/oauth-authorization-server" statusCode=404 contentType="text/html; charset=utf-8" bytes=270796FAILCompare response Content-Type with expected Auth.md media type actual=false expected=trueFAILCompare Auth.md/OAuth metadata validation result actual=false expected=trueFAILAuth.md validation issue issue="OAuth authorization-server metadata could not be fetched."FAILOAuth authorization-server metadata could not be fetched.
Agent Ease of UseGoogle Agentic BrowsingBrowser audit
Accessibility tree is not well-formed
100 Fail
Agent Ease of UseGoogle Agentic BrowsingBrowser audit
Accessibility tree is not well-formed
Check name
Accessibility tree is not well-formed
Score
0/100
Status
fail
Device
desktop
Category
Google Agentic Browsing
Fix guidance
A well-formed [accessibility tree](http://goo.gle/lighthouse-agentic-a11y) helps AI agents to navigate and interact with the page.
Evidence
{
"description": "A well-formed [accessibility tree](http://goo.gle/lighthouse-agentic-a11y) helps AI agents to navigate and interact with the page."
}AccessibilityAccessibilityBrowser audit
Buttons must have discernible text
100 Fail
AccessibilityAccessibilityBrowser audit
Buttons must have discernible text
Check name
Buttons must have discernible text
Score
0/100
Status
fail
Device
desktop
Category
Accessibility
Fix guidance
Buttons must have discernible text
Evidence
{
"ruleId": "button-name",
"impact": "critical",
"description": "Ensure buttons have discernible text",
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
{
"truncated": true,
"omittedCount": 4,
"originalCount": 12
}
],
"affectedNodeCount": 8,
"nodes": [
{
"target": [
".bg-neutral-50.py-20:nth-child(19) > .mx-auto.max-w-container.grid > .mb-10.justify-between.flex-row > div:nth-child(2) > .mr-2.p-1.hover\\:text-neutral-800"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 63
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"target": [
".bg-neutral-50.py-20:nth-child(19) > .mx-auto.max-w-container.grid > .mb-10.justify-between.flex-row > div:nth-child(2) > .p-1.hover\\:text-neutral-800:nth-child(2)"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 58
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"target": [
".pt-0.bg-neutral-50.py-20:nth-child(20) > .mx-auto.max-w-container.grid > .mb-10.justify-between.flex-row > div:nth-child(2) > .mr-2.p-1.hover\\:text-neutral-800"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 63
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"target": [
".pt-0.bg-neutral-50.py-20:nth-child(20) > .mx-auto.max-w-container.grid > .mb-10.justify-between.flex-row > div:nth-child(2) > .p-1.hover\\:text-neutral-800:nth-child(2)"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 58
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"target": [
".flex-shrink-0.flex-row.flex > .mr-2.p-1.hover\\:text-neutral-800"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 63
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"target": [
".flex-shrink-0.flex-row.flex > .p-1.hover\\:text-neutral-800:nth-child(2)"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 58
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"target": [
".pt-6 > button:nth-child(1)"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 248
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"target": [
".pt-6 > button:nth-child(3)"
],
"html": {
"discarded": true,
"reason": "[discarded fetched document data]",
"originalType": "string",
"originalLength": 250
},
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
]
}Sign in to see 32 other issues and the full report
Create a free account to unlock every issue, evidence details, exports, and higher free limits.
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