A 0 to 100 score in four components, specification v1.0. Public, versioned, never for sale.
| Component | Points | What is checked |
|---|---|---|
| Reachable | 25 | robots.txt allows the eight key AI tokens (10); live fetches as GPTBot, ClaudeBot and PerplexityBot return a normal page with no bot challenge (10); valid HTTPS and at least 500 characters of text without JavaScript (5). |
| Readable | 25 | JSON-LD for the business (8); address, telephone and opening hours in it (7); the menu as an HTML page or inline (7), a PDF (4), another site (2), an image (1), nothing (0), plus 3 for schema.org Menu markup, capped at 10. |
| Actionable | 30 | Best booking or ordering channel found: on the site's own domain (15), booking or ordering software on a vendor domain or embedded (10), an unrecognised third party (6), a marketplace only (3), phone or WhatsApp only (2). Plus up to 15 for the action test, in which a browser agent tries to reach the confirmation step and stops before submitting anything. |
| Cited | 20 | Share of answers from four assistants, three prompts, two runs, that link the business's own site rather than a marketplace. |
Computed on the share of points available. A is 85% and above, B 70 to 84, C 55 to 69, D 40 to 54, F below 40. While the action test or the citation check is pending, the score is marked provisional.
Nine requests, once: the homepage as a browser, robots.txt, the homepage as three AI crawlers, up to three HEAD requests on menu links, and llms.txt. We respect robots.txt, identify ourselves, keep two seconds between requests to the same host, and never submit a form or place an order. Scans run from Cloudflare's network; a handful of hosts refuse requests from it, and those are reported as unreachable from Cloudflare rather than as a bad site.
OpenStreetMap, every place tagged as a restaurant with a name inside the city's bounding box. Only places with their own website are scanned; the rest are counted. Restaurant data is ODbL and the index is published as open data.
Every restaurant page has a free rescan and a claim form. Language stays factual: a site is "not reachable by agents", never "bad". Nothing anyone pays for changes a score.