{"schemaVersion":"1","scan":{"id":"bbc36aa0-b219-4b41-8404-3274da47a97f","domain":"hub.docker.com","region":"us-east","userAgent":"AgentSpeedBot/1.0","viewport":"1280x800","startedAtIso":"2026-08-24T11:08:11.365Z","finishedAtIso":"2026-08-24T11:08:15.733Z","durationMs":4368},"rubric":{"version":"2026.11.0","sha":"fd2d0686690660ae60ecfe9d4e7ac2ac689ef4c935e45b49fae782b9e2587349","gradeBandVersion":"1"},"score":{"composite":86,"grade":"B","components":[{"key":"discoverability","value":86},{"key":"readability","value":77},{"key":"structured_data","value":80},{"key":"actionability","value":89},{"key":"performance","value":100}]},"attestation":{"total":37,"deterministic":26,"heuristic":10,"llmAssisted":1},"checks":[{"key":"actionability.agent_skills","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"status":403,"refused":true}},{"key":"actionability.commerce_protocols","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{}},{"key":"actionability.web_mcp","status":"fail","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":1,"rawValue":{}},{"key":"auth.cookie_consent_blocks_content","status":"warn","determinism":"heuristic","weight":2,"weightApplied":2,"durationMs":85,"rawValue":{"matchedScripts":["cookielaw.org"],"matchedSelectors":[]},"heuristicParam":{"label":"detector","value":"consent overlay heuristic"}},{"key":"auth.paywall_or_login_wall_on_landing","status":"pass","determinism":"heuristic","weight":2,"weightApplied":2,"durationMs":79,"rawValue":{"loginForms":0,"sparseContent":false,"hasPaywallText":false,"passwordInputs":0,"loginRedirected":false},"heuristicParam":{"label":"detector","value":"paywall/login-wall heuristic"}},{"key":"coherence.jsonld_name_matches_visible","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{}},{"key":"coherence.jsonld_price_matches_visible","status":"skip","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":0,"rawValue":{}},{"key":"coherence.language_declared_matches_content","status":"pass","determinism":"heuristic","weight":1,"weightApplied":1,"durationMs":3,"rawValue":{"declared":"en","detected":"en"},"heuristicParam":{"label":"detector","value":"stopword/script profile, >=40 words, WARN-only"}},{"key":"content.headings_hierarchy","status":"warn","determinism":"heuristic","weight":1,"weightApplied":1,"durationMs":181,"rawValue":{"skips":10,"total":58,"issues":["10 skipped level(s)"],"h1Count":1},"heuristicParam":{"label":"rule","value":"single H1, no skipped levels"}},{"key":"content.js_required_for_primary_content","status":"pass","determinism":"heuristic","weight":2,"weightApplied":2,"durationMs":1,"rawValue":{"staticTextChars":6947,"measuredStatically":true},"heuristicParam":{"label":"detector","value":"no-JS visibility heuristic"}},{"key":"content.text_ratio","status":"fail","determinism":"heuristic","weight":1,"weightApplied":1,"durationMs":56,"rawValue":{"ratio":0.01348909380066633,"htmlBytes":516862,"textBytes":6972,"styleBytes":114376,"markupBytes":325620,"scriptBytes":69894},"heuristicParam":{"label":"min text ratio","value":"15%"}},{"key":"discoverability.api_catalog","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"status":403,"refused":true}},{"key":"discoverability.link_headers","status":"fail","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{}},{"key":"discoverability.mcp_server_card","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"status":403,"refused":true}},{"key":"discoverability.oauth_authorization_server","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"status":403,"refused":true}},{"key":"discoverability.oauth_protected_resource","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"status":403,"refused":true}},{"key":"discoverability.web_bot_auth","status":"skip","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"status":403,"refused":true}},{"key":"journey.primary_probe","status":"pass","determinism":"llm_assisted","weight":2,"weightApplied":2,"durationMs":1280,"rawValue":{"priceOrCta":"Sign up","primaryOffering":"Docker container images and registry"}},{"key":"llms_txt.present","status":"pass","determinism":"deterministic","weight":2,"weightApplied":0,"durationMs":0,"rawValue":{"bytes":8071,"hasH1":true,"hasLink":false}},{"key":"markup.canonical","status":"pass","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":40,"rawValue":{"declared":"https://hub.docker.com","resolved":"https://hub.docker.com/","matchesSelf":true}},{"key":"markup.language","status":"pass","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"lang":"en","alternates":0}},{"key":"markup.meta_description","status":"pass","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":83,"rawValue":{}},{"key":"markup.title","status":"pass","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":60,"rawValue":{}},{"key":"operability.filters_addressable","status":"skip","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":38,"rawValue":{}},{"key":"operability.primary_action_in_dom","status":"pass","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":52,"rawValue":{"examples":["<a> announcing \"sign up\""],"actionableCount":1}},{"key":"performance.full_render_ms","status":"skip","determinism":"heuristic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{},"heuristicParam":{"label":"threshold","value":"4s"}},{"key":"performance.payload_kb","status":"pass","determinism":"heuristic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{},"heuristicParam":{"label":"threshold","value":"3MB"}},{"key":"performance.ttfb_ms","status":"pass","determinism":"heuristic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"ttfbMs":150},"heuristicParam":{"label":"threshold","value":"800ms"}},{"key":"reachability.status","status":"pass","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":0,"rawValue":{"code":200,"redirects":0}},{"key":"readability.markdown_negotiation","status":"fail","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{"status":200}},{"key":"robots_txt.allows_known_agents","status":"warn","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":1,"rawValue":{"blocked":["Amazonbot"],"declaredMarkets":[],"regionalBlocked":[],"trainingBlocked":["GPTBot","ClaudeBot","Google-Extended","Applebot-Extended","Bytespider","CCBot","Meta-ExternalAgent"]}},{"key":"robots_txt.content_signals","status":"pass","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{}},{"key":"robots_txt.present","status":"pass","determinism":"deterministic","weight":1,"weightApplied":1,"durationMs":0,"rawValue":{}},{"key":"sitemap.present","status":"pass","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":0,"rawValue":{}},{"key":"structured_data.jsonld_present","status":"pass","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":0,"rawValue":{"count":1}},{"key":"structured_data.type_coverage","status":"pass","determinism":"heuristic","weight":1,"weightApplied":1,"durationMs":1,"rawValue":{"declared":["WebSite","SearchAction"]},"heuristicParam":{"label":"match","value":"type-to-purpose inference"}},{"key":"structured_data.validates","status":"fail","determinism":"deterministic","weight":2,"weightApplied":2,"durationMs":0,"rawValue":{"warns":0,"errors":1,"firstError":{"path":"$.name","message":"WebSite requires \"name\".","severity":"error"}}}],"findings":[{"checkKey":"structured_data.validates","severity":"critical","title":"Failing: structured_data.validates","remediationMd":"1 required-field error(s). First: WebSite requires \"name\".","docUrl":null},{"checkKey":"actionability.web_mcp","severity":"medium","title":"Failing: actionability.web_mcp","remediationMd":"No WebMCP detected. On pages with first-class actions (cart, support, account), embed a WebMCP server so on-page agents invoke tools directly.","docUrl":null},{"checkKey":"auth.cookie_consent_blocks_content","severity":"medium","title":"Warning: auth.cookie_consent_blocks_content","remediationMd":"Consent modal detected (cookielaw.org); content still visible. Verify the modal does not block first-paint for screenshot agents.","docUrl":null},{"checkKey":"content.headings_hierarchy","severity":"medium","title":"Warning: content.headings_hierarchy","remediationMd":"Heading issues: 10 skipped level(s).","docUrl":null},{"checkKey":"content.text_ratio","severity":"medium","title":"Failing: content.text_ratio","remediationMd":"Visible text is 1.3% of HTML weight (6972/516862 bytes). 14% of the document is inline script, 63% is markup.","docUrl":null},{"checkKey":"discoverability.link_headers","severity":"medium","title":"Failing: discoverability.link_headers","remediationMd":"No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.","docUrl":null},{"checkKey":"readability.markdown_negotiation","severity":"medium","title":"Failing: readability.markdown_negotiation","remediationMd":"Accept: text/markdown returns HTML, not markdown. Serve a markdown variant of primary content when requested; agents summarize and cite it more reliably.","docUrl":null},{"checkKey":"robots_txt.allows_known_agents","severity":"medium","title":"Warning: robots_txt.allows_known_agents","remediationMd":"1 access agent(s) blocked: Amazonbot. These keep your site out of AI answers. 7 training-data crawler(s) blocked (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, Bytespider, CCBot, Meta-ExternalAgent), a licensing choice, not scored.","docUrl":null}],"citation":"hub.docker.com · r2026.11.0 · scan bbc36aa0 · 2026-08-24T11:08Z"}