Export Report
OVERALL SCORE
Level 3, Bot-Aware
- AI Discoverability 51 out of 100
- Agent Ease of Use 51 out of 100
- Security & Trust 45 out of 100
- GEO, AIO and AEO 56 out of 100
- SEO 100 out of 100
- Performance 68 out of 100
- Accessibility 19 out of 100
What AI sees of your website

Best Digital Marketing Agencies in the World
Find the best digital marketing agencies in the world. At Moonfruit, we connect businesses like yours with the world’s most elite digital marketing agencies.
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 | 51 | Needs work | 25 | 2 | 0 | View details |
| Discoverability | 47 | Priority fix | 6 | 0 | 0 | |
| Content Readiness | 72 | Needs work | 19 | 0 | 0 | |
| Bot Access Control | 38 | Priority fix | 0 | 2 | 0 | View details |
| Agent Ease of Use | 51 | Needs work | 1 | 1 | 1 | View details |
| Skill Discovery | 53 | Needs work | 1 | 1 | 1 | View details |
| GEO, AIO and AEO | 56 | Needs work | 6 | 0 | 0 | |
| GEO Readiness | Not Applicable | Not Applicable | 3 | 0 | 0 | |
| AIO Readiness | Not Applicable | Not Applicable | 1 | 0 | 0 | |
| AEO Readiness | Not Applicable | Not Applicable | 2 | 0 | 0 | |
| SEO | 100 | Strong | 8 | 0 | 0 | |
| SEO | 100 | Strong | 8 | 0 | 0 | |
| Security & Trust | 45 | Priority fix | 7 | 1 | 0 | View details |
| Security & Trust | 45 | Priority fix | 7 | 1 | 0 | View details |
| Performance | 68 | Needs work | 12 | 0 | 0 | |
| Performance | 68 | Needs work | 12 | 0 | 0 |
Prioritized recommendations
Issues ranked by score impact
3 items need attention
AI DiscoverabilityBot Access ControlEstablished
AI bot rules in robots.txt
AI bot rules in robots.txt failed at "Fetch robots.txt".
100 Fail
AI DiscoverabilityBot Access ControlEstablished
AI bot rules in robots.txt
AI bot rules in robots.txt failed at "Fetch robots.txt".
Needs attention
AI bot rules in robots.txt
Issue
No robots.txt content was available to inspect for AI bot rules.
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
0/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 "Fetch robots.txt".
Validation steps
Fetch robots.txt
No robots.txt content was available to inspect for AI bot rules.
Classify AI crawler rules
No explicit User-agent rules were found for major AI crawler tokens.
Evidence log2 steps · 10 lines
Fetch robots.txt [fail]! No robots.txt content was available to inspect for AI bot rules.INFOFetch robots.txtINFORequesting /robots.txt from the site originFAILCheck whether robots.txt content is available actual="no content" expected="content returned" length=0FAILNo robots.txt content was available to inspect for AI bot rules.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=0 unspecified=21
Security & TrustSecurity & TrustEstablished
Content-Security-Policy
Content-Security-Policy failed at "Find enforcing CSP delivery".
60 Fail
Security & TrustSecurity & TrustEstablished
Content-Security-Policy
Content-Security-Policy failed at "Find enforcing CSP delivery".
Needs attention
Content-Security-Policy
Issue
Applicable HTML response is missing an enforcing Content-Security-Policy header.
Why it matters
Content Security Policy reduces the impact of injection bugs by limiting where scripts, styles, frames, forms, and other browser resources can load or execute.
Check name
Content-Security-Policy
Score
40/100
Status
fail
Category
Security & Trust
Maturity
Established
Goal
Constrain browser resource loading and script execution with an enforcing Content-Security-Policy header.
Result
Content-Security-Policy failed at "Find enforcing CSP delivery".
Validation steps
Find enforcing CSP delivery
Applicable HTML response is missing an enforcing Content-Security-Policy header.
Evidence log1 step · 4 lines
Find enforcing CSP delivery [fail]! Applicable HTML response is missing an enforcing Content-Security-Policy header.INFOFind enforcing CSP deliveryINFORead CSP delivery headers enforcingHeader="missing" reportOnlyHeader="missing" metaPolicyCount=0 legacyHeadersPresent=[]FAILRequire enforcing Content-Security-Policy header actual="missing" expected="present" issue="Applicable HTML response is missing an enforcing Content-Security-Policy header."FAILApplicable HTML response is missing an enforcing Content-Security-Policy header.Agent Ease of UseSkill DiscoveryEmerging recommendation
DNS-AID Agent Discovery
DNS-AID Agent Discovery failed at "Validate HTTPS/SVCB shape".
39 Fail
Agent Ease of UseSkill DiscoveryEmerging recommendation
DNS-AID Agent Discovery
DNS-AID Agent Discovery failed at "Validate HTTPS/SVCB shape".
Needs attention
DNS-AID Agent Discovery
Issue
One or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.
Details
Why it matters
DNS-AID lets agents discover index, A2A, and other agent entrypoints before fetching HTTP metadata. HTTPS/SVCB records provide the service-binding substrate, while DNSSEC can authenticate the discovery answer when available.
Check name
DNS-AID Agent Discovery
Score
61/100
Status
fail
Category
Skill Discovery
Maturity
Emerging recommendation
Goal
Publish DNS-AID HTTPS/SVCB records under _agents for DNS-based agent entrypoint discovery.
Result
DNS-AID Agent Discovery failed at "Validate HTTPS/SVCB shape".
Validation steps
Validate HTTPS/SVCB shape
One or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.
Malformed record issues
[ { "ownerName": "_index._agents.moonfruit.com", "rrtype": "HTTPS", "ttl": 300, "mode": "unknown", "targetName": "78", "params": [ { "key": "00", "value": "present" }, { "key": "01", "value": "present" }, { "key": "00", "value": "present" }, { "key": "00", "value": "present" }, { "truncated": true, "omittedCount": 74, "originalCount": 78 } ], "mandatory": [], "alpn": [], "endpointIssue": "missing endpoint", "unknownParams": [ "00", "01", "00", "00", { "truncated": true, "omittedCount": 74, "originalCount": 78 } ], "parseWarnings": [ "SvcPriority is missing or not numeric." ], "source": "cloudflare-doh-json", "raw": "\\# 78 00 01 00 00 01 00 03 02 68 32 00 04 00 0c 68 1a 06 91 68 1a 07 91 ac 43 48 41 00 06 00 30 26 06 47 00 00 20 00 00 00 00 00 00 68 1a 06 91 26 06 47 00 00 20 00 00 00 00 00 00 68 1a 07 91 26 06 47 00 00 20 00 00 00 00 00 00 ac 43 48 41" }, { "ownerName": "_a2a._agents.moonfruit.com", "rrtype": "HTTPS", "ttl": 300, "mode": "unknown", "targetName": "78", "params": [ { "key": "00", "value": "present" }, { "key": "01", "value": "present" }, { "key": "00", "value": "present" }, { "key": "00", "value": "present" }, { "truncated": true, "omittedCount": 74, "originalCount": 78 } ], "mandatory": [], "alpn": [], "endpointIssue": "missing endpoint", "unknownParams": [ "00", "01", "00", "00", { "truncated": true, "omittedCount": 74, "originalCount": 78 } ], "parseWarnings": [ "SvcPriority is missing or not numeric." ], "source": "cloudflare-doh-json", "raw": "\\# 78 00 01 00 00 01 00 03 02 68 32 00 04 00 0c 68 1a 06 91 68 1a 07 91 ac 43 48 41 00 06 00 30 26 06 47 00 00 20 00 00 00 00 00 00 68 1a 06 91 26 06 47 00 00 20 00 00 00 00 00 00 68 1a 07 91 26 06 47 00 00 20 00 00 00 00 00 00 ac 43 48 41" } ]Check DNSSEC authentication evidence
DNSSEC authentication evidence was not visible for the DNS-AID labels or hostname.
Evidence log2 steps · 17 lines
Validate HTTPS/SVCB shape [fail]! One or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.INFOValidate HTTPS/SVCB shapeFAILCompare parsed DNS-AID record count actual=2 expected="> 0"FAILCompare ServiceMode record count actual=0 expected="> 0"FAILDNS-AID record has parse/shape warnings ownerName="_index._agents.moonfruit.com" rrtype="HTTPS" mode="unknown" warnings=["SvcPriority is missing or not numeric."]FAILDNS-AID record has parse/shape warnings ownerName="_a2a._agents.moonfruit.com" rrtype="HTTPS" mode="unknown" warnings=["SvcPriority is missing or not numeric."]FAILOne or more DNS-AID records could not be parsed as usable HTTPS/SVCB ServiceMode records.Check DNSSEC authentication evidence [warning]! DNSSEC authentication evidence was not visible for the DNS-AID labels or hostname.INFOCheck DNSSEC authentication evidenceWARNCompare DNSSEC authenticated-data flag actual=false expected=trueWARNCompare visible DNSSEC material actual=false expected=trueWARNResolver did not confirm authenticated DNSSEC data name="_index._agents.moonfruit.com" rrtype="HTTPS" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_index._agents.moonfruit.com" rrtype="SVCB" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_a2a._agents.moonfruit.com" rrtype="HTTPS" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_a2a._agents.moonfruit.com" rrtype="SVCB" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_index._agents.moonfruit.com" rrtype="DNSKEY" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="_a2a._agents.moonfruit.com" rrtype="DNSKEY" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNResolver did not confirm authenticated DNSSEC data name="moonfruit.com" rrtype="DNSKEY" resolver="cloudflare-doh-json" ad=false dnssecTypes=[]WARNDNSSEC authentication evidence was not visible for the DNS-AID labels or hostname.
Sign in to see 43 other issues and the full report
Create a free account to unlock every issue, evidence details, exports, and higher free limits.
Development Note:
Please configure GOOGLE_CLIENT_ID in .env to activate live login.
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 |
|---|---|---|---|
| 51/100 | Level 3, Bot-Aware | Current report |