All 68 tests
AI assistants now answer the questions a search box used to. They can only quote, cite or recommend what they can actually find, read and trust — and most sites were never built with that in mind. This is the full list of what that takes: every test in the AI Readiness Index, the same list a First contact scan or a Full scan of your own site is measured against. Open any row for why it matters.
Grouped into nine dimensions, worth 100 points, so a fix that matters more counts for more. The First contact scan runs 13 of these on a single page, free — the Full scan runs all 68 across your site, also free. The ninth, Unscored Leading Indicators, holds the 6 tests marked Not scored: run and reported like every other test, but for a practice with essentially no adoption yet, so scoring it would subtract the same points from every site and move nobody relative to anybody. It's worth 0 of the 100 until that changes.
#1 · First Contact · 13 tests · 28 pts
AIR-1.15 pts Can AI crawlers reach your site?
Your robots.txt tells crawlers what they may read. One stale line, often copied from an old template, can shut out the assistants people now use to find you.
AIR-1.25 pts Does your CDN let AI crawlers through?
Even when robots.txt says yes, a firewall or bot rule can turn assistants away before they reach a page. We ask as each crawler and record what comes back.
AIR-1.31 pts Is your page readable without a security challenge?
A CAPTCHA or bot check on an ordinary page stops an assistant at the door. Those belong on forms and logins, not on pages anyone can read.
AIR-1.41 pts Have you stated what AI may do with your content?
A machine-readable line in robots.txt saying whether AI may search, quote or train on your content. Having a stated position — any position — is the point.
AIR-1.51 pts Can a person read your AI policy?
A few plain sentences in robots.txt saying what you permit. Journalists and lawyers read this file, and most sites say nothing in it.
AIR-1.61 pts Are you allowing assistants to quote you?
Old settings that told search engines not to show an excerpt also stop an assistant quoting your page in an answer.
AIR-1.72 pts Does this page declare its real address?
A canonical link names the true address of a page. Without one, the same content reads as several competing pages.
AIR-1.82 pts Is your page structured so a machine can follow it?
Meaningful elements rather than an undifferentiated wall of containers. It is the difference between a document and a soup of boxes.
AIR-1.92 pts Do your headings tell a clear story?
One main heading, then sub-headings in order. Assistants use headings to work out which part of a page answers a question.
AIR-1.102 pts Do you publish a guide for AI assistants?
A file at /llms.txt listing your most important pages. It is early and cheap, and it forces a useful conversation about what actually matters on your site.
AIR-1.112 pts Can a machine tell what your organization is?
Structured data that links together — your organization, your site, this page — rather than a scattering of disconnected labels.
AIR-1.122 pts Can a machine be certain it is you?
Links from your markup to authoritative records like Wikidata or ROR. Without one, an assistant is guessing which organization of your name it has found.
AIR-1.132 pts Can a machine find out who you are?
Founding date, leadership, address, contact details, legal identifiers. Thin About pages are the most common weakness we see.
#2 · Rendering and Extraction · 6 tests · 15 pts
AIR-2.16 pts Primary content is present without JavaScript
If your content only appears after JavaScript runs, a crawler that does not run it sees an empty page. This is the heaviest check in the Index.
AIR-2.23 pts Progressive disclosure content ships in the initial HTML
Tabs and accordions are fine, as long as the text is already in the HTML before anybody clicks.
AIR-2.32 pts Real data tables with header cells
Tuition, hours, fees, comparisons — in a real table with header cells, not an image and not a grid of divs.
AIR-2.42 pts Stable, human-readable anchor IDs on section headings
Stable IDs on your headings let a model cite the exact passage rather than the whole page.
AIR-2.51 pts Alt text on content images, empty alt on decorative
Alt text is the only text an image has. Decorative images should say so with an empty alt rather than describing themselves.
AIR-2.61 pts Key facts exist as HTML text, not only in images or PDFs
A fact locked inside a PDF, a scan or an infographic is a fact an assistant cannot quote.
#3 · Structured Data and the Entity Graph · 8 tests · 14 pts
AIR-3.12 pts JSON-LD is generated from mapped fields, not hardcoded
Schema generated from your content model survives the next content change. Hardcoded schema rots quietly and nobody notices for a year.
AIR-3.22 pts BreadcrumbList on every page below the homepage
Every page below the homepage should declare where it sits, so a model knows a program page belongs to a department.
AIR-3.35 pts Vertical-specific schema types
Use the types that match what you actually publish — courses, programs, clinicians, grants — rather than a generic WebPage on everything.
AIR-3.41 pts FAQPage and QAPage on genuine question-and-answer content
Mark up real questions and answers. Do not invent an FAQ block that is not on the page: fabricated markup is a policy problem, not a shortcut.
AIR-3.51 pts isAccessibleForFree, about, and mentions with entity references
Say whether the page is free to read, and link the entities it is actually about. Both are things an assistant would otherwise have to assume.
AIR-3.61 pts Product, Offer, and Service with real prices
Prices and offers in markup, and current. A stale price in structured data is worse than no price at all.
AIR-3.71 pts SearchAction on the WebSite node
Expose your site search as a pattern an agent can call, instead of a box only a human can type into.
AIR-3.81 pts Schema validation runs in CI
Broken markup should fail your build rather than reach production and sit there until the next audit.
#4 · Crawl, Index and Licensing Hygiene · 10 tests · 14 pts
AIR-4.11 pts RSL licensing document published and referenced
Machine-readable licensing terms, so an AI company can find out what you allow without emailing you first.
AIR-4.21 pts RSL terms propagated to feeds and schema
Licensing that travels with the content — in your feeds and your structured data, not only in one file nobody fetches.
AIR-4.31 pts Web Bot Auth verification configured
Verified agents get through and unsigned scrapers claiming to be them do not, because the edge checks a signature instead of trusting a user-agent string.
AIR-4.41 pts Correct X-Robots-Tag on non-HTML resources
PDFs, images and JSON cannot carry a meta robots tag, so the directive has to travel in the HTTP header instead.
AIR-4.52 pts Missing pages return 404 or 410
A missing page that answers 200 OK teaches a crawler that nothing is ever missing, and spends its time on pages that are not there.
AIR-4.61 pts Redirects resolve in a single hop
Every extra redirect is another chance to be dropped. One hop, straight to the destination.
AIR-4.72 pts Faceted, calendar, and parameterized URLs are controlled
Filters and calendars can generate millions of URLs. A crawler spends its budget in there instead of on the pages you care about.
AIR-4.83 pts Sitemap lastmod reflects real content changes
A lastmod date should mean the content changed, not that you deployed. Once it is noise, crawlers stop trusting it.
AIR-4.91 pts Sitemap index split by type, with media sitemaps
Separate sitemaps per content type turn “coverage is bad” into “coverage is bad for news,” which is a problem somebody can fix.
AIR-4.101 pts Paginated series are coherently signaled
Page two and everything after it has to be reachable by something that does not click.
#5 · Authorship, Provenance, Freshness · 6 tests · 8 pts
AIR-5.11 pts Author entity pages with credentials
Authors who resolve to real people with real credentials, on pages of their own — not a name in a byline and nothing behind it.
AIR-5.22 pts Bylines linked to author entities
Sign substantive pages, and point the byline at the author's entity rather than repeating their name as text on every article.
AIR-5.31 pts reviewedBy on YMYL content
Health, legal and financial pages should name their reviewer in the markup, not only in the design where a machine cannot see it.
AIR-5.42 pts datePublished and dateModified are accurate
A modified date that changes on every deploy is not a freshness signal. It is noise, and it costs you the trust of the real one.
AIR-5.51 pts citation markup on primary-source references
Where you cite a primary source, make the citation machine-readable so the chain from claim to evidence survives.
AIR-5.61 pts C2PA Content Credentials on original assets
Provenance that survives into the delivered file, so an image can prove where it came from after somebody else has reposted it.
#6 · Agent Interfaces · 7 tests · 7 pts
AIR-6.11 pts NLWeb exposed as an MCP server with an ask method
The same endpoint, exposed the way agents already know how to call things.
AIR-6.21 pts OpenAPI specification for public APIs
If you have a public API, describe it in a spec an agent can read, and version it so today's answer is still true next quarter.
AIR-6.31 pts /.well-known/ discovery entries for agent capabilities
Put your agent capabilities where agents look for them, rather than in a URL somebody has to be told about.
AIR-6.41 pts Form fields carry label, name, and autocomplete
An agent filling in your form has to know what each field is for. Labels, names and autocomplete tokens are how it finds out.
AIR-6.51 pts No captchas on browse, search, or filter interactions
Challenge the actions that need challenging. Searching and filtering are not those actions, and a captcha there ends the visit.
AIR-6.61 pts Critical flows complete without JS-only interactions
Register, donate, apply, find a clinician — these should complete through ordinary form submissions and real URLs, not only through clicks.
AIR-6.71 pts Stable selectors on critical-flow elements
Hashed class names change on every build. An agent that found your Apply button yesterday cannot find it today.
#7 · Alternate Representations · 5 tests · 7 pts
AIR-7.11 pts /llms-full.txt where full-text inclusion is appropriate
The expanded variant, with the text inline. Worth it when your content is small enough to ship whole.
AIR-7.22 pts Markdown companion for every canonical page
A clean Markdown version of each page: none of the navigation, none of the markup a model has to wade through to reach your words.
AIR-7.31 pts link rel=alternate advertises the Markdown version
Publishing the Markdown is not enough. The HTML page has to point at it, or nothing will ever find it.
AIR-7.42 pts Accept: text/markdown content negotiation
Ask the same URL for Markdown and get Markdown back. One address, two representations, no second set of links to maintain.
AIR-7.51 pts Alternate representations are edge-cached
Generated representations should come from the CDN. Otherwise every request rebuilds them at origin, and you will turn them off when the bill arrives.
#8 · Measurement and Instrumentation · 7 tests · 7 pts
AIR-8.11 pts GA4 channel group for AI assistant referrers
Traffic from ChatGPT, Perplexity, Claude and the rest lands in Direct by default, where it disappears. A channel group makes it countable.
AIR-8.21 pts Server-side tagging captures stripped referrers
Some assistants strip the referrer before the browser sees it. Server-side tagging catches what the client-side tag cannot.
AIR-8.31 pts Access log retention with a queryable store
Crawler logs have to survive long enough to show a before and an after. Many hosts discard them in days.
AIR-8.41 pts Scheduled AI crawler activity report
Watch crawler behavior continuously rather than auditing it once. A crawler that stops appearing usually means somebody reintroduced a block.
AIR-8.51 pts Fixed prompt panel run monthly across models
Ask the same questions of the same models every month. It is the only way to see whether your share of the answers is moving.
AIR-8.61 pts Extraction-fidelity baseline captured
Feed your page to a model, ask it your key questions, and score the answers. Then do it again after the fixes and compare.
AIR-8.71 pts Search Console and Bing Webmaster Tools verified
Verify both. Bing matters more than its search share suggests, because its index feeds several AI products.
#9 · Unscored Leading Indicators · 6 tests · 0 pts
AIR-9.1— HowTo on procedural content NOT SCORED
Steps marked as steps, so a model does not have to infer the sequence from prose and get it wrong.
AIR-9.2— speakable on summaries and ledes NOT SCORED
Flag your own best short answer — the lede, the summary — so an assistant reads that rather than guessing at a paragraph.
AIR-9.3— IndexNow fires on publish and update NOT SCORED
Tell search engines the moment something changes, rather than waiting to be crawled again.
AIR-9.4— Editorial policy page referenced via publishingPrinciples NOT SCORED
Document how your content is produced, reviewed, corrected and funded — then point at that page from your markup.
AIR-9.5— NLWeb endpoint over the site's schema.org data NOT SCORED
A natural-language endpoint over your own structured data, so an assistant can ask your site a question instead of scraping around it.
AIR-9.6— Domain MCP server over real content APIs NOT SCORED
Your course catalog, provider directory or grant database, callable as documented tools rather than scraped out of a search results page.
13 tests · one page · about 20 seconds