{"ok":true,"data":{"input_url":"yourservice.dev","final_url":"https://yourservice.dev/","checked_at":"2026-10-15T23:10:13.023Z","duration_ms":218,"score":43,"max_score":100,"verdict":"needs work","categories":[{"id":"access","label":"Access","earned":38,"possible":40,"passed":4,"total":5},{"id":"content","label":"Content without JavaScript","earned":4.5,"possible":30,"passed":1,"total":5},{"id":"discovery","label":"Machine discovery","earned":0,"possible":30,"passed":0,"total":3}],"checks":[{"id":"reachable","label":"Site responds to agents","category":"access","weight":10,"status":"pass","detail":"HTTP 200 in 102ms"},{"id":"https","label":"Served over HTTPS","category":"access","weight":6,"status":"pass","detail":"final URL is https://yourservice.dev"},{"id":"robots-txt","label":"robots.txt present","category":"access","weight":4,"status":"warn","detail":"no robots.txt (crawlers assume everything is allowed)","advice":"Publish a robots.txt, even a permissive one — it is the first file most crawlers request, and an explicit allow reads better than silence."},{"id":"ai-crawlers","label":"AI crawlers allowed","category":"access","weight":12,"status":"pass","detail":"no robots.txt, so nothing is blocked"},{"id":"real-404","label":"Missing pages return 404","category":"access","weight":8,"status":"pass","detail":"GET /botfriendly-check-7l02iczj → HTTP 404"},{"id":"h1-no-js","label":"H1 in raw HTML","category":"content","weight":8,"status":"fail","detail":"no non-empty <h1> in the served HTML","advice":"Server-side render the page heading. An empty or missing H1 in raw HTML usually means the page is assembled entirely by client-side JavaScript, which many agents never execute."},{"id":"text-no-js","label":"Readable text without JavaScript","category":"content","weight":10,"status":"fail","detail":"~2 characters of visible text in raw HTML","advice":"Server-side render the homepage so crawlers see meaningful content without JavaScript — aim for at least 500 characters of real text in the initial HTML."},{"id":"meta","label":"Title and meta description","category":"content","weight":6,"status":"fail","detail":"no <title> in raw HTML","advice":"Add a descriptive <title> and <meta name=\"description\"> — they are the first summary of the page every agent reads."},{"id":"structured-data","label":"Structured data (JSON-LD)","category":"content","weight":3,"status":"warn","detail":"no JSON-LD on the homepage","advice":"Add schema.org JSON-LD (Organization / WebSite / Product) so agents can extract facts without parsing prose."},{"id":"indexable","label":"Not blocked from indexing","category":"content","weight":3,"status":"pass","detail":"no noindex directive"},{"id":"llms-txt","label":"llms.txt","category":"discovery","weight":12,"status":"fail","detail":"GET /llms.txt → HTTP 404","advice":"Publish /llms.txt — a short markdown file telling LLMs what the site is, what the API offers, and where the machine-readable interfaces live. See llmstxt.org."},{"id":"sitemap","label":"Sitemap","category":"discovery","weight":8,"status":"fail","detail":"no /sitemap.xml and none declared in robots.txt","advice":"Publish an XML sitemap and declare it in robots.txt so crawlers can enumerate your pages instead of guessing."},{"id":"machine-spec","label":"Machine-readable spec","category":"discovery","weight":10,"status":"fail","detail":"no ai-plugin.json, /openapi.json, or linked OpenAPI spec found","advice":"Publish an OpenAPI spec (and link it from llms.txt) or a /.well-known/ai-plugin.json manifest so agents can call your API without reverse-engineering it."}]}}