Export Report
OVERALL SCORE
Level 3, Bot-Aware
- AI Discoverability 61 out of 100
- Agent Ease of Use 57 out of 100
- Security & Trust 74 out of 100
- GEO, AIO and AEO 68 out of 100
- SEO 100 out of 100
- Performance 99 out of 100
- Accessibility 79 out of 100
What AI sees of your website
Communications infrastructure your AI agents operate — Bird
Send and receive across email, SMS, WhatsApp, and voice — one API, one contract — on the network that already carries 40% of the world's commercial messages.
Next step
Turn this report into a fix workflow
3 failed checks are 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 | 61 | Needs work | 34 | 3 | 1 | View details |
| Discoverability | 67 | Needs work | 8 | 0 | 0 | |
| Content Readiness | 65 | Needs work | 22 | 0 | 0 | |
| Bot Access Control | 53 | Needs work | 4 | 3 | 1 | View details |
| Agent Ease of Use | 57 | Needs work | 7 | 2 | 3 | View details |
| API | 67 | Needs work | 2 | 0 | 0 | |
| Auth | 48 | Priority fix | 1 | 0 | 0 | |
| Skill Discovery | 47 | Priority fix | 1 | 2 | 3 | View details |
| Google Agentic Browsing | 100 | Strong | 3 | 0 | 0 | |
| GEO, AIO and AEO | 68 | Needs work | 11 | 0 | 0 | |
| GEO Readiness | Not Applicable | Not Applicable | 3 | 0 | 0 | |
| AIO Readiness | Not Applicable | Not Applicable | 5 | 0 | 0 | |
| AEO Readiness | Not Applicable | Not Applicable | 3 | 0 | 0 | |
| SEO | 100 | Strong | 9 | 0 | 0 | |
| SEO | 100 | Strong | 9 | 0 | 0 | |
| Security & Trust | 74 | Needs work | 18 | 0 | 0 | |
| Security & Trust | 74 | Needs work | 18 | 0 | 0 | |
| Performance | 99 | Strong | 18 | 0 | 0 | |
| Performance | 99 | Strong | 18 | 0 | 0 |
Prioritized recommendations
Issues ranked by score impact
3 items need attention
Agent Ease of UseSkill DiscoveryEmerging recommendation
A2A Agent Card
A2A Agent Card failed at "Detect A2A card version".
61 Fail
Agent Ease of UseSkill DiscoveryEmerging recommendation
A2A Agent Card
A2A Agent Card failed at "Detect A2A card version".
Needs attention
A2A Agent Card
Issue
The discovered JSON document does not match a supported A2A Agent Card version family.
Details
Why it matters
A2A Agent Cards provide protocol-specific discovery for agent identity, skills, input and output modes, transport bindings, capabilities, and security requirements. Legacy A2A also used /.well-known/agent.json, so scanners must classify the card shape before reporting readiness.
Check name
A2A Agent Card
Score
39/100
Status
fail
Category
Skill Discovery
Maturity
Emerging recommendation
Goal
Publish a version-appropriate A2A Agent Card so A2A-compatible clients can discover agent skills and invoke the declared endpoint safely.
Result
A2A Agent Card failed at "Detect A2A card version".
Validation steps
Discover A2A Agent Card
The A2A Agent Card was found at a legacy or fallback path.
A2A Agent Card is missing or discovered at a non-canonical path
Detect A2A card version
The discovered JSON document does not match a supported A2A Agent Card version family.
A2A Agent Card version cannot be classified cleanly
Validate version-specific card shape
A2A Agent Card response is not valid JSON.
A2A Agent Card shape is invalid for its version
Validate HTTP delivery
The card was parseable JSON but was not served with a JSON-compatible content type.
A2A Agent Card HTTP delivery is not standards-aligned
Probe same-origin A2A endpoint
A2A endpoint probing was skipped because the endpoint was cross-origin, unavailable from the card, or uses an unsupported binding.
Advertised same-origin A2A endpoint did not answer a safe probe
Evidence log5 steps · 26 lines
Discover A2A Agent Card [warning]! The A2A Agent Card was found at a legacy or fallback path.INFODiscover A2A Agent CardINFOTry A2A discovery paths in priority order paths=["/.well-known/agent-card.json","/.well-known/agent.json","/agent-card.json","/.well-known/a2a/agent-card.json"]WARNA2A candidate path did not return a usable card path="/.well-known/agent-card.json" statusCode=404 contentType="text/html; charset=utf-8"WARNA2A candidate path did not return a usable card path="/.well-known/agent.json" statusCode=404 contentType="text/html; charset=utf-8"PASSFound an A2A candidate path="/agent-card.json" statusCode=200 contentType="text/html; charset=utf-8" bytes=1305753WARNA2A candidate path did not return a usable card path="/.well-known/a2a/agent-card.json" statusCode=404 contentType="text/html; charset=utf-8"WARNSelected non-canonical A2A Agent Card path="/agent-card.json" pathClass="fallback" requestedUrl="https://bird.com/agent-card.json"WARNThe A2A Agent Card was found at a legacy or fallback path.Detect A2A card version [fail]! The discovered JSON document does not match a supported A2A Agent Card version family.INFODetect A2A card versionINFORead version indicators from the card detectionEvidence=[]FAILCompare detected A2A version family actual="unknown" expected="v0.1, v0.2, v0.3, or v1"FAILThe discovered JSON document does not match a supported A2A Agent Card version family.Validate version-specific card shape [fail]! A2A Agent Card response is not valid JSON.INFOValidate version-specific card shapeFAILCompare missing required card fields actual="none" expected="none"FAILCheck every declared A2A skill has required name, description, and endpoint fields actual=0 expected=0 invalidSkills=[]INFOReview declared endpoint interfaces interfaces=[]FAILA2A Agent Card response is not valid JSON.Validate HTTP delivery [warning]! The card was parseable JSON but was not served with a JSON-compatible content type.INFOValidate HTTP deliveryWARNCompare card Content-Type with JSON expectation actual="text/html; charset=utf-8" expected="application/json or +json"INFOReview selected discovery path path="/agent-card.json" pathClass="fallback"WARNHTTP delivery/path warning warning="card was found only at a non-standard fallback path"WARNThe card was parseable JSON but was not served with a JSON-compatible content type.Probe same-origin A2A endpoint [warning]! A2A endpoint probing was skipped because the endpoint was cross-origin, unavailable from the card, or uses an unsupported binding.INFOProbe same-origin A2A endpointINFOProbe same-origin A2A endpoint when scanner policy allows itSKIPSkipped endpoint probe reason="No valid A2A card was available to probe."WARNA2A endpoint probing was skipped because the endpoint was cross-origin, unavailable from the card, or uses an unsupported binding.
AI DiscoverabilityBot Access ControlEstablished
AI bot rules in robots.txt
AI bot rules in robots.txt failed at "Classify AI crawler rules".
35 Fail
AI DiscoverabilityBot Access ControlEstablished
AI bot rules in robots.txt
AI bot rules in robots.txt failed at "Classify AI crawler rules".
Needs attention
AI bot rules in robots.txt
Issue
No explicit User-agent rules were found for major AI crawler tokens.
Details
Why it matters
AI crawler product tokens have different meanings. Explicit robots.txt groups make training, search, and retrieval access policy auditable for compliant crawler operators.
Check name
AI bot rules in robots.txt
Score
31/100
Status
fail
Category
Bot Access Control
Maturity
Established
Goal
Declare deliberate robots.txt rules for major AI training, AI search, user-triggered, and dataset crawlers.
Result
AI bot rules in robots.txt failed at "Classify AI crawler rules".
Validation steps
Classify AI crawler rules
No explicit User-agent rules were found for major AI crawler tokens.
robots.txt lacks explicit AI crawler rules
Evidence log1 step · 6 lines
Classify AI crawler rules [fail]! No explicit User-agent rules were found for major AI crawler tokens.INFOClassify AI crawler rulesINFOParsing User-agent groups and Allow/Disallow records for known AI crawler tokens evaluatedPath="/"INFOEvaluating exact User-agent matches before wildcard fallback exactAiPolicyCount=0 totalCrawlerTokens=18FAILNo explicit AI crawler User-agent groups were found examplesExpected=["GPTBot","OAI-SearchBot","ClaudeBot","Google-Extended","CCBot"]FAILCompare explicit AI crawler coverage actual=0 expected="> 0 explicit non-search AI crawler policies" missingTokens=["GPTBot","OAI-SearchBot","ChatGPT-User","ClaudeBot","Claude-SearchBot","Claude-User","Google-Extended","Applebot-Extended","Amazonbot","Amzn-SearchBot","Amzn-User","PerplexityBot"]INFOResolved effective root-path policy for crawler tokens blocked=0 allowed=21 unspecified=0AI DiscoverabilityBot Access ControlEmerging recommendation
ai.txt policy
ai.txt policy failed at "Fetch /ai.txt".
34 Fail
AI DiscoverabilityBot Access ControlEmerging recommendation
ai.txt policy
ai.txt policy failed at "Fetch /ai.txt".
Needs attention
ai.txt policy
Issue
/ai.txt returned HTTP 500.
Details
Why it matters
ai.txt is a fragmented emerging convention. It can communicate human-readable AI crawling, training, attribution, restriction, and contact guidance, but it is not a standard access-control mechanism and absence should not be penalized.
Check name
ai.txt policy
Score
33/100
Status
fail
Category
Bot Access Control
Maturity
Emerging recommendation
Goal
Publish an advisory human-readable AI usage policy only when the site intentionally needs one.
Result
ai.txt policy failed at "Fetch /ai.txt".
Validation steps
Fetch /ai.txt
/ai.txt returned HTTP 500.
/ai.txt could not be fetched when present
Parse ai.txt policy
ai.txt is present but does not follow the AI Visibility section model.
/ai.txt policy format is missing required sections or non-standard
Validate policy content
ai.txt is too short to provide useful advisory policy guidance.
/ai.txt content is incomplete or unsafe
Evidence log3 steps · 14 lines
Fetch /ai.txt [fail]! /ai.txt returned HTTP 500.INFOFetch /ai.txtINFORequesting optional advisory policy file at /ai.txtFAILCompare /ai.txt HTTP response actual=500 expected="2xx when ai.txt is intentionally published; 404/410 means absent optional file" contentType="text/plain" length=21FAIL/ai.txt returned HTTP 500. statusCode=500Parse ai.txt policy [warning]! ai.txt is present but does not follow the AI Visibility section model.INFOParse ai.txt policyINFODetecting ai.txt convention from bracket sections, frontmatter, headings, and ai.txt context linksINFODetected policy structure convention="unknown-text" sections=[] markdownHeadings=[]WARNCheck AI Visibility required sections actual="missing identity, permissions, restrictions" expected="identity, permissions, and restrictions" missingRecommended=["attribution","contact","content-types"]WARNai.txt is present but does not follow the AI Visibility section model.Validate policy content [fail]! ai.txt is too short to provide useful advisory policy guidance.INFOValidate policy contentINFOChecking required section content, permission/restriction language, attribution, contact details, and safety risks convention="unknown-text"INFODetected policy signals hasPermissionLanguage=false hasRestrictionLanguage=false hasTrainingLanguage=false hasAttributionLanguage=false hasContact=falseFAILCheck required and recommended section coverage actual={"missingRequired":["identity","permissions","restrictions"],"missingRecommended":["attribution","contact","content-types"]} expected={"missingRequired":[],"recommendedPresentWhenPossible":true}FAILai.txt is too short to provide useful advisory policy guidance.
Sign in to see 33 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
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 |
|---|---|---|---|
| 59/100 | Level 3, Bot-Aware | View report | |
| 58/100 | Level 3, Bot-Aware | View report | |
| 69/100 | Level 3, Bot-Aware | Current report |