40 checks + 3 shown for information. The criteria are public for everyone, and Free and AEO+ show exactly the same number of issues; the only differences are step-by-step fixes, PDF, weekly re-checks and the visa-page score. Every criterion looks only at your own website and never compares with other businesses.
| Item | Criterion | Severity | Public score | Visa-page score | Free | AEO+ |
|---|---|---|---|---|---|---|
| AI crawler access (10 checks) · Who can get into your site | ||||||
| GPTBot (OpenAI) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | High | 12 for all 4 | — | Result + issue title | Result + step-by-step fix |
| OAI-SearchBot (OpenAI) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | High | 12 for all 4 | — | Result + issue title | Result + step-by-step fix |
| ClaudeBot (Anthropic) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | High | 12 for all 4 | — | Result + issue title | Result + step-by-step fix |
| PerplexityBot (Perplexity) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | High | 12 for all 4 | — | Result + issue title | Result + step-by-step fix |
| ChatGPT-User (OpenAI) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Claude-SearchBot (Anthropic) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Applebot (Apple) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Bingbot (Microsoft) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| meta-externalagent (Meta) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Amazonbot (Amazon) | Whether robots.txt allows the homepage / (RFC 9309: the longest matching rule wins for a crawler; without its own group, User-agent: * applies) | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Google-Extended (control token) | Decides whether Google may use your content for Gemini training and grounding; doesn't affect Google Search indexing. Not a crawler; refusing it is your choice | Never an issue | — | — | Not listed | Current status and explanation |
| Applebot-Extended (control token) | Decides whether Apple may use content fetched by Applebot to train models; doesn't affect Siri search. Not a crawler; refusing it is your choice | Never an issue | — | — | Not listed | Current status and explanation |
| Technical readability (19 checks) · Can AI understand it | ||||||
| Homepage opens | The homepage returns 200 and is a web page | High | — | — | Result + issue title | Result + step-by-step fix |
| robots.txt is readable | /robots.txt returns 200 and isn't HTML | Medium | — | — | Result + issue title | Result + step-by-step fix |
| Sitemap (sitemap.xml) | The Sitemap declared in robots.txt, or /sitemap.xml, contains <loc> entries | Medium | 8 | — | Result + issue title | Result + step-by-step fix |
| llms.txt | /llms.txt returns 200, isn't HTML, and has at least 20 characters | Low | 6 | — | Result + issue title | Result + step-by-step fix |
| llms.txt quality | Length (40 at 500 characters) + has links 30 + has ## sections 30; 70 or more passes | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| HTTPS site-wide | The final URL starts with https:// | High | 5 (basics) | Counted | Result + issue title | Result + step-by-step fix |
| Title and description | Has a <title>; meta description readable length 20 or more and at most 320 characters | Medium | 10 | — | Result + issue title | Result + step-by-step fix |
| Business structured data | JSON-LD has a business node (LocalBusiness / Organization, etc.) with a name | High | 12 | — | Result + issue title | Result + step-by-step fix |
| Canonical URL | <link rel="canonical"> is present | Low | 5 (basics) | Counted | Result + issue title | Result + step-by-step fix |
| Page language (lang) | <html lang> has a value | Low | 5 (basics) | Counted | Result + issue title | Result + step-by-step fix |
| Single main heading (h1) | Exactly one <h1> on the homepage | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Section headings (h2) | At least one <h2> on the homepage | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Share card (og) | All three of og:title, og:description and og:image | Low | 5 (basics) | Counted | Result + issue title | Result + step-by-step fix |
| Image text (alt) | 80% or more of homepage <img> have alt; no images = not applicable | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Mobile viewport | <meta name="viewport"> is present | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Homepage response time | Homepage fully loaded within 1.5 s of the request (checked from Tokyo, single measurement) | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| No fake pages (soft 404) | Fetch a URL that can't exist: it must return 404 (or 410), not 200 + a page | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Redirect count | At most 2 redirects from the entered URL to the final URL (normal ones like http→https or adding www don't count against you) | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| robots.txt signposts | robots.txt has a Sitemap: line (mentioning llms.txt is a bonus note) | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Content completeness (9 checks) · Can AI introduce you | ||||||
| Consistent name (N) | The structured-data name appears in <title> or og:site_name | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Address (A) | address in structured data (with city and street) | Medium | 8 | — | Result + issue title | Result + step-by-step fix |
| Phone (P) | telephone in structured data, or a tel: link on the page | Medium | 8 | — | Result + issue title | Result + step-by-step fix |
| Opening hours | openingHours or openingHoursSpecification in structured data | Medium | 8 | — | Result + issue title | Result + step-by-step fix |
| 50-character introduction | The homepage has a paragraph (<p>) with readable length ≥ 50 | Medium | 8 | — | Result + issue title | Result + step-by-step fix |
| 3 FAQs | FAQPage structured data with at least 3 question-and-answer pairs | Medium | — | Counted | Result + issue title | Result + step-by-step fix |
| Profile links (sameAs) | 2 or more sameAs in business structured data | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Review / rating structured data | JSON-LD has AggregateRating or Review | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Homepage text volume | Readable homepage length ≥ 300 without running JavaScript | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Language versions (hreflang) | Shown only, not scored: <link rel="alternate" hreflang> | Info only | — | — | Result | Result |
| Homepage internal links | Shown only, not scored (10+ recommended so AI can find your other pages) | Info only | — | — | Result | Result |
| Content freshness (2 checks) · Does AI think you're still open | ||||||
| Sitemap has update dates | At least one sitemap URL has <lastmod> | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Updated in the last 30 days | At least 1 sitemap page with a lastmod in the last 30 days | Low | — | Counted | Result + issue title | Result + step-by-step fix |
| Number of pages | Shown only, not scored (single-page sites aren't penalized) | Info only | — | — | Result | Result |
Public score = 9 passport items (80 pts) + 4 basics (HTTPS, language, canonical URL, share card; 5 pts each). Visa-page score = 9 visa-page items + advanced checks, weighted by severity (high 3, medium 2, low 1), shown only in AEO+ and never added to the public score. Not covered this phase: Core Web Vitals, external review platforms, NAP consistency across platforms (these need external data sources).