Export Report
OVERALL SCORE
Level 3, Bot-Aware
- AI Discoverability 70 out of 100
- Agent Ease of Use 48 out of 100
- Security & Trust 94 out of 100
- GEO, AIO and AEO 71 out of 100
- SEO 100 out of 100
- Performance 89 out of 100
- Accessibility 100 out of 100
What AI sees of your website
Keploy — Open-Source AI API & Unit Testing for Developers
AI-powered testing platform: generate tests, mocks, and sandboxes from real API traffic. Any language. 90% coverage in minutes — no code changes.
Next step
Turn this report into a fix workflow
2 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 | 70 | Needs work | 38 | 6 | 1 | View details |
| Discoverability | 67 | Needs work | 8 | 2 | 0 | View details |
| Content Readiness | 81 | Mostly ready | 27 | 4 | 1 | View details |
| Bot Access Control | 63 | Needs work | 3 | 0 | 0 | |
| Agent Ease of Use | 48 | Priority fix | 1 | 0 | 0 | |
| API | 67 | Needs work | 1 | 0 | 0 | |
| GEO, AIO and AEO | 71 | Needs work | 11 | 1 | 1 | View details |
| GEO Readiness | 67 | Needs work | 4 | 1 | 1 | View details |
| AIO Readiness | Not Applicable | Not Applicable | 4 | 0 | 0 | |
| AEO Readiness | Not Applicable | Not Applicable | 3 | 0 | 0 | |
| SEO | 100 | Strong | 10 | 0 | 0 | |
| SEO | 100 | Strong | 10 | 0 | 0 | |
| Security & Trust | 94 | Strong | 25 | 0 | 0 | |
| Security & Trust | 94 | Strong | 25 | 0 | 0 | |
| Performance | 89 | Mostly ready | 13 | 0 | 0 | |
| Performance | 89 | Mostly ready | 13 | 0 | 0 | |
| Accessibility | 100 | Strong | 6 | 0 | 0 | |
| Accessibility | 100 | Strong | 6 | 0 | 0 |
Prioritized recommendations
Issues ranked by score impact
4 items need attention
AI DiscoverabilityDiscoverabilityEstablished
Link headers
Link headers failed at "Find useful Link headers".
100 Fail
AI DiscoverabilityDiscoverabilityEstablished
Link headers
Link headers failed at "Find useful Link headers".
Needs attention
Link headers
Issue
No useful agent discovery Link headers were found.
Why it matters
Link headers let automated clients discover API catalogs, documentation, and machine-readable alternates without parsing page markup first.
Check name
Link headers
Score
0/100
Status
fail
Category
Discoverability
Maturity
Established
Goal
Include Link response headers for agent discovery using RFC 8288.
Result
Link headers failed at "Find useful Link headers".
Validation steps
Find useful Link headers
No useful agent discovery Link headers were found.
Fetch same-origin Link header targets
Link headers did not expose any same-origin targets to validate.
Evidence log2 steps · 9 lines
Find useful Link headers [fail]! No useful agent discovery Link headers were found.INFOFind useful Link headersINFOParse response Link header linkCount=0FAILCompare registered agent-useful relation count actual=0 expected="> 0"FAILCompare community relation count actual=0 expected="accepted as weaker evidence"FAILNo useful agent discovery Link headers were found.Fetch same-origin Link header targets [fail]! Link headers did not expose any same-origin targets to validate.INFOFetch same-origin Link header targetsINFOFetch same-origin Link header targets and record external skipsFAILCompare same-origin Link target failures actual=1 expected=0FAILLink headers did not expose any same-origin targets to validate.
AI DiscoverabilityContent ReadinessEstablished
Markdown negotiation
Markdown negotiation is missing or incomplete.
90 Fail
AI DiscoverabilityContent ReadinessEstablished
Markdown negotiation
Markdown negotiation is missing or incomplete.
Needs attention
Markdown negotiation
Issue
Best candidate returned Content-Type "text/html; charset=utf-8" instead of text/markdown.
Why it matters
Markdown representations give agents a cleaner page form while preserving normal HTML for browsers and cache-safe representation handling.
Check name
Markdown negotiation
Score
10/100
Status
fail
Category
Content Readiness
Maturity
Established
Goal
Expose a useful Markdown representation through negotiation or an explicit alternate URL.
Result
Markdown negotiation is missing or incomplete.
Validation steps
Markdown representation
No usable Markdown representation was found through negotiation, advertised alternates, or conservative .md mirror checks.
Same-URL negotiation
Same-URL Accept: text/markdown did not return a valid Markdown representation.
Markdown format validation
Markdown response contains too much raw HTML to be a clean agent-facing Markdown representation.
Advertised Markdown alternate
No Link or HTML rel=alternate text/markdown URL was advertised.
Conventional .md mirror
Conventional .md mirror candidates did not return valid Markdown.
Evidence log5 steps · 15 lines
Markdown representation [fail]! No usable Markdown representation was found through negotiation, advertised alternates, or conservative .md mirror checks.INFOMarkdown representationFAILCheck usable Markdown representation was selected actual={"source":"negotiated","url":"https://keploy.io/","statusCode":200,"contentType":"text/html; charset=utf-8","mediaType":"text/html","vary":"rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch","requireVaryAccept":true,"contentTypeStatus":"fail","cacheStatus":"fail","bodyStatus":"fail","pass":false,"quality":{"valid":false,"formatStatus":"fail","dialect":"html-heavy","hasHeading":false,"headingCount":0,"wordCount":30195,"features":{"markdownLinks":0,"referenceLinks":0,"listItems":0,"tables":0,"taskListItems":0,"fencedCodeBlocks":0,"yamlFrontmatter":false,"jsonLdFencedBlocks":0,"admonitions":0,"strikethrough":0,"autolinks":0,"rawHtmlTags":711,"jsxOrMdxSignals":0},"issues":["missing-heading","raw-html-heavy","plain-text-like"],"excerpt":"<!DOCTYPE html><!--ysXr_BzTTfUCVp9sxl3Aw--><html lang=\"en\"><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"preload\" href=\"/_next/static/media/13971731025ec697-s.p.woff2\" as=\"font\"","issue":"Markdown response contains too much raw HTML to be a clean agent-facing Markdown representation."}} expected="negotiated, advertised alternate, or conventional mirror" selected={"source":"negotiated","url":"https://keploy.io/","statusCode":200,"contentType":"text/html; charset=utf-8","mediaType":"text/html","vary":"rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch","requireVaryAccept":true,"contentTypeStatus":"fail","cacheStatus":"fail","bodyStatus":"fail","pass":false,"quality":{"valid":false,"formatStatus":"fail","dialect":"html-heavy","hasHeading":false,"headingCount":0,"wordCount":30195,"features":{"markdownLinks":0,"referenceLinks":0,"listItems":0,"tables":0,"taskListItems":0,"fencedCodeBlocks":0,"yamlFrontmatter":false,"jsonLdFencedBlocks":0,"admonitions":0,"strikethrough":0,"autolinks":0,"rawHtmlTags":711,"jsxOrMdxSignals":0},"issues":["missing-heading","raw-html-heavy","plain-text-like"],"excerpt":"<!DOCTYPE html><!--ysXr_BzTTfUCVp9sxl3Aw--><html lang=\"en\"><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><link rel=\"preload\" href=\"/_next/static/media/13971731025ec697-s.p.woff2\" as=\"font\"","issue":"Markdown response contains too much raw HTML to be a clean agent-facing Markdown representation."}} candidatesChecked=2FAILMarkdown representation failed issue="No usable Markdown representation was found through negotiation, advertised alternates, or conservative .md mirror checks."Same-URL negotiation [fail]! Same-URL Accept: text/markdown did not return a valid Markdown representation.INFOSame-URL negotiationFAILCheck negotiated Markdown response actual={"statusCode":200,"mediaType":"text/html","vary":"rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch"} expected="HTTP 2xx text/markdown with Vary: Accept" url="https://keploy.io/" statusCode=200 mediaType="text/html" vary="rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch"FAILSame-URL negotiation failed issue="Same-URL Accept: text/markdown did not return a valid Markdown representation."Markdown format validation [fail]! Markdown response contains too much raw HTML to be a clean agent-facing Markdown representation.INFOMarkdown format validationFAILCheck Markdown body quality actual={"valid":false,"wordCount":30195,"headingCount":0,"dialect":"html-heavy"} expected="valid Markdown with substantive text and headings" valid=false dialect="html-heavy" wordCount=30195 headingCount=0FAILMarkdown format validation failed issue="Markdown response contains too much raw HTML to be a clean agent-facing Markdown representation."Advertised Markdown alternate [warning]! No Link or HTML rel=alternate text/markdown URL was advertised.INFOAdvertised Markdown alternateWARNCheck advertised Markdown alternate candidates actual=0 expected="> 0 when HTML advertises a Markdown alternate" advertisedUrls=[] candidateCount=0WARNAdvertised Markdown alternate has a warning issue="No Link or HTML rel=alternate text/markdown URL was advertised."Conventional .md mirror [fail]! Conventional .md mirror candidates did not return valid Markdown.INFOConventional .md mirrorFAILCheck conventional Markdown mirror candidates actual=1 expected="> 0 when a conventional mirror is discoverable" conventionalUrls=["https://keploy.io/index.html.md"] candidateCount=1FAILConventional .md mirror failed issue="Conventional .md mirror candidates did not return valid Markdown."
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Citable passages
GEO: Citable passages scored 0/100 and needs a fix.
18 Fail
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Citable passages
GEO: Citable passages scored 0/100 and needs a fix.
Needs attention
GEO: Citable passages
Issue
No evidence-backed, citation-length explanatory paragraph was found.
Details
Why it matters
Generative answer systems work best with visible, self-contained, evidence-backed content, clear entities, trustworthy attribution, structured page sections, and crawler-accessible HTML. These signals improve machine understanding even though they do not guarantee AI citations.
Check name
GEO: Citable passages
Score
0/100
Status
fail
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for AI answer engines to extract, cite, and attribute without promising inclusion in any proprietary answer surface.
Result
GEO: Citable passages scored 0/100 and needs a fix.
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Structured extraction
GEO: Structured extraction scored 88/100 and needs improvement.
2 Warning
GEO, AIO and AEOGEO, AIO & AEOEmerging recommendation
GEO: Structured extraction
GEO: Structured extraction scored 88/100 and needs improvement.
Needs attention
GEO: Structured extraction
Issue
Missing or weak extraction signals: summary or key takeaways.
Details
Why it matters
Generative answer systems work best with visible, self-contained, evidence-backed content, clear entities, trustworthy attribution, structured page sections, and crawler-accessible HTML. These signals improve machine understanding even though they do not guarantee AI citations.
Check name
GEO: Structured extraction
Score
88/100
Status
warning
Category
GEO, AIO & AEO
Maturity
Emerging recommendation
Goal
Make page content easy for AI answer engines to extract, cite, and attribute without promising inclusion in any proprietary answer surface.
Result
GEO: Structured extraction scored 88/100 and needs improvement.
Sign in to see 30 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