How it works
The AI-ready website standard.
AI assistants recommend businesses they can read, understand and verify. We break that into five layers, measure each one with our scanner and fix them in order of impact. Here is the whole method, nothing hidden.
Crawler access
If an assistant's crawler is blocked, nothing else matters. Many sites block AI crawlers by accident through old robots.txt rules, security plugins or firewalls.
- Allow AI search crawlers: OAI-SearchBot, Claude-SearchBot, PerplexityBot
- Decide separately on training crawlers like GPTBot and ClaudeBot
- Keep Googlebot and Bingbot open, since Bing feeds ChatGPT search and Copilot
- No accidental noindex
AI files
Machine-readable files at the root of your domain that summarize who you are and list every page worth reading.
/llms.txt: plain-language summary and key links/llms-full.txt: full text of core pages/sitemap.xml: every public URL with dates/robots.txt: access rules plus a sitemap pointer
Structured data
Schema.org JSON-LD states the facts so AI does not have to guess: your name, category, phone, address, hours, services, prices and common questions.
- Organization or a specific LocalBusiness type
- Telephone, address, geo and opening hours
- Services, FAQPage and breadcrumbs
- sameAs links to your Google, Yelp and social profiles
Answer-ready content
Assistants quote sentences that answer a question directly. Vague marketing copy rarely gets cited.
- One clear H1 that says what you do and where
- Question headings with a direct answer in the first sentence
- Specifics: prices, areas, hours, guarantees, credentials
- Titles and descriptions written for the snippet
Technical trust
Fast, secure, mobile-first pages are crawled more often and trusted more by both people and machines.
- HTTPS everywhere with HSTS
- Server response under 600 ms
- Mobile viewport and readable text
- Security headers and a declared language
Scoring method, version 3
How the AI visibility score is calculated
The score is out of 100 and every point traces to one of 26 checks with a written rule. Partial credit applies where a signal exists but is incomplete. Each report shows the evidence we found for every check, why it matters, the rule it was scored by and how the categories add up to your total.
AI crawler access25 points, 4 checks
| Check | Points | Rule |
|---|---|---|
| robots.txt published | 3 | Full 3 when /robots.txt answers 200 with plain-text rules. 1 when it is missing, empty or returns an HTML page. |
| AI assistants can read the site | 10 | Split evenly across OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot and Perplexity-User. Each blocked crawler costs 1.67. Training crawlers are not counted. |
| Google and Bing can crawl | 7 | 3.5 each for Googlebot and Bingbot when robots.txt allows them to read the homepage. |
| Homepage is indexable | 5 | Full 5 with no noindex (or none) in the robots or googlebot meta tag or the X-Robots-Tag header. 2.5 when noindex is sent to our scanner but not to a normal browser. 0 with noindex for everyone. |
AI files20 points, 4 checks
| Check | Points | Rule |
|---|---|---|
| llms.txt | 8 | Full 8 when /llms.txt starts with a # heading, has a > summary line and 3 or more Markdown links. 6 when the summary or links are missing. 0 when it is missing or returns an HTML page. |
| XML sitemap | 7 | Full 7 for a valid urlset or sitemapindex (plain or gzipped) with at least one entry. 4 when valid but empty, or when robots.txt lists a sitemap that refuses our scanner. 0 when none is found in robots.txt or at /sitemap.xml, /sitemap_index.xml or /wp-sitemap.xml. |
| Sitemap listed in robots.txt | 2 | Full 2 when robots.txt has a Sitemap line. |
| llms-full.txt | 3 | Full 3 when /llms-full.txt returns more than 200 characters of text that is not an HTML page. |
Structured data20 points, 5 checks
| Check | Points | Rule |
|---|---|---|
| Valid JSON-LD | 6 | Full 6 when every JSON-LD block parses. 3 with syntax errors or microdata only. 0 with no structured data. |
| Business entity | 6 | Full 6 for Organization, LocalBusiness, Person or a specific business type such as Dentist or Plumber. |
| Phone, address and hours | 4 | 1.33 each for telephone, address and opening hours, only when a business entity exists. |
| Answer-ready markup | 2 | Full 2 for any of FAQPage, Service, Product, Offer, Review, HowTo, Event, Menu, Article or BreadcrumbList. |
| Linked profiles (sameAs) | 2 | Full 2 for sameAs URLs in markup. 1 when social links are on the page but not in markup. |
Content and meta20 points, 7 checks
| Check | Points | Rule |
|---|---|---|
| Page title | 4 | Full 4 for 25 to 65 characters. 2 when present but outside that range. 0 when missing. |
| Meta description | 4 | Full 4 for 70 to 170 characters. 2 when present but outside that range. 0 when missing. |
| One H1 | 3 | Full 3 for exactly one H1. 2 for more than one. 0 for none. |
| Content depth | 4 | Visible words in the HTML: 4 for 500 or more, 2.5 for 250 to 499, 1 for 100 to 249, 0 below 100. |
| Open Graph | 2 | 1 for og:title and 1 for og:image. |
| Image alt text | 1.5 | 1.5 times the share of images with an alt attribute. Full points when there are no images. |
| Canonical URL | 1.5 | Full 1.5 when a canonical link tag is present. |
Technical trust15 points, 6 checks
| Check | Points | Rule |
|---|---|---|
| HTTPS | 4 | Full 4 when the final address after redirects uses https. |
| Server response | 4 | Time to first byte from our scanner: 4 at 600 ms or less, 3 up to 1,200 ms, 1.5 up to 2,500 ms, 0 slower. |
| Mobile viewport | 3 | Full 3 for a viewport meta tag with width=device-width. |
| Language declared | 1 | Full 1 when the html tag has a lang attribute. |
| Security headers | 2 | 2 for 3 or 4 of HSTS, CSP, X-Content-Type-Options and Referrer-Policy. 1 for 1 or 2. |
| HTML weight | 1 | 1 at 400 KB or less, 0.5 up to 1,000 KB, 0 above. |
Statuses and rounding
- Pass means full points. Improve means at least half the points. Missing means under half.
- Each check is rounded to 0.1 points. The overall score is the sum of all 26 checks, rounded to the nearest whole number. The report shows the exact sum next to the rounded score.
- Crawler rules follow the robots.txt standard (RFC 9309): the group whose user-agent matches the crawler name exactly applies (several such groups are combined), otherwise the catch-all group. Within it, the longest matching Allow or Disallow rule for the homepage path wins, and Allow wins a tie. The report names the group and line that decided each crawler.
- "Potential after fixes" adds the points each failing check would gain at full marks. The report also shows the score after only the top three fixes.
Grade bands
- A90 to 100: ready to be cited
- B80 to 89: strong, a few gaps
- C65 to 79: readable, hard to trust
- D50 to 64: often misread
- F0 to 49: mostly invisible
AI engine scores100 points each
Each engine score has two parts. Access (up to 40 points) is the share of that engine's reading crawlers that robots.txt allows. Understanding (up to 60 points) reuses your category results, weighted by the signals that engine leans on most.
If every reading crawler for an engine is blocked, or the homepage is set to noindex, access is 0 and understanding counts at only 15%. Scores are rounded and kept between 0 and 100. Each engine card in the report has a "See breakdown" panel with these exact numbers.
| Engine | AI files | Structured data | Content | Technical |
|---|---|---|---|---|
| ChatGPT Reads with OAI-SearchBot, ChatGPT-User. Helper: Bingbot. | 30% | 20% | 40% | 10% |
| Claude Reads with Claude-SearchBot, Claude-User. Helper: ClaudeBot. | 40% | 15% | 40% | 5% |
| Perplexity Reads with PerplexityBot, Perplexity-User. Helper: None. | 20% | 15% | 45% | 20% |
| Gemini and AI Overviews Reads with Googlebot. Helper: Google-Extended. | 10% | 40% | 35% | 15% |
| Microsoft Copilot Reads with Bingbot. Helper: None. | 15% | 35% | 30% | 20% |
| Siri and Apple Intelligence Reads with Applebot. Helper: Applebot-Extended. | 10% | 45% | 30% | 15% |
Changes
- Version 3 (October 2026): crawler groups now match the exact crawler name, as RFC 9309 requires, so a group for Applebot no longer applies to Applebot-Extended. llms.txt links may be relative. Gzipped sitemaps are read, and a sitemap listed in robots.txt that refuses our scanner earns 4 of 7. A noindex sent only to unrecognized crawlers earns 2.5 of 5. Valueless alt attributes count as alt text, and a logo image inside the H1 counts as its text.
- Version 2 (October 2026): every check now reports its evidence, reason and exact rule. Crawler matching uses the most specific user-agent group, and engine scores show their component math. Check points and category weights are unchanged from version 1.
Scores measure readiness: whether anything technical stops assistants from reading, understanding and citing you. They are not a prediction of rankings. Scan your site.
Done for you
What happens when you choose the Engine
Free blueprint call
We scan your current site, learn your services and agree on goals. Prefer to start alone? Use the Growth Blueprint.
Design and build
Custom design, copy written as clear answers, all four AI files and full structured data.
Verify at 90 or higher
We do not launch until the site scores 90 or more on our scanner and loads fast on mobile.
Report and improve
A fresh AI visibility report, updates whenever you need them and a person to call or message.
Questions
Frequently asked
How long does the whole process take?
A free scan takes ten seconds. Fixing an existing site with the free tools usually takes an afternoon. For an Engine site, we agree a launch date with you in writing before work starts, based on how many pages you need.
Will blocking AI training crawlers hurt my visibility?
Not by itself. Training crawlers such as GPTBot and ClaudeBot are separate from the search crawlers that let assistants cite you, such as OAI-SearchBot and Claude-SearchBot. Our robots.txt builder lets you allow one and block the other.
Is llms.txt an official standard?
It is an open proposal, not a W3C standard, and support varies by AI provider. It costs nothing to publish, gives AI tools a clean summary of your business, and we include it because it is cheap insurance.
Do you change my scoring method often?
We version the scoring. When it changes, we note it here and old reports keep their original numbers so comparisons stay fair.