Skip to content

AI Readiness

AI readiness is how much structured, machine-readable information a site gives a reader that is not a person: identity markup, author and expert markup, consistent contact details, and headings that match the questions people ask. Scored out of ten across 1,261 business websites, the most common result was 2, and 40% of sites scored exactly that.

What we measured

The AI readiness index averaged 3.77 out of 10, 95% Wilson confidence interval 3.66 to 3.88, and the modal score was 2, held by 40% of sites. Underneath that: 53% carried any identity schema, 11% Person schema, 8% review schema, 4% FAQ schema, and 25% had an llms.txt file of any origin. The headline numbers replicated to within about two points across four waves, at n=149, n=487, n=766 and n=1,261.

Source: State of AI-Readiness on Business Websites 2026, confirmatory wave completed 2026-07-13 against an OSF pre-registration., n=1261.

Sample framing: 1,629 sites crawled, 1,261 reachable at 77%, and every percentage here uses the reachable denominator. Business websites across mixed verticals. It measures machine legibility, not site quality or business quality.

How to re-derive it: Pre-registration DOI 10.17605/OSF.IO/2Q5ER, public and immutable. Full data at github.com/Axion-Deep-Labs/ai-readiness-2026.

Why it matters

  • A 2 out of 10 site is usually a perfectly good site. It renders, it loads, a person can use it. The score measures something else entirely, which is what is left once you remove the person.
  • The four-wave replication is the part worth trusting. A number that holds to two points from n=149 through n=1,261 is describing the population, not the sample.
  • The gap is not exotic. Nothing on the list below requires a rebuild, a platform migration or a budget. Most of it is markup that describes things already on the page.
  • Every competitor scoring 2 is the actual opportunity. This is not a field where everyone has already done the work.

The failure

The failure: a good page that says nothing machine readable
<main>
  <h1>About Us</h1>
  <p>
    We have served the Las Cruces area for
    over twenty years. Our lead estimator holds
    a CPA and has worked in construction
    accounting since 2003.
  </p>
  <p>Call us at (575) 555-0100.</p>
</main>

Everything a person needs is here. Nothing a machine can use is. The credential, the years, the locality and the phone number are all present as prose and none of them are addressable as data. This page scores a 2.

The fix

The fix: describe the same facts as data
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "AccountingService",
  "name": "Example Accounting",
  "telephone": "+1-575-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example St",
    "addressLocality": "Las Cruces",
    "addressRegion": "NM",
    "postalCode": "88001",
    "addressCountry": "US"
  },
  "foundingDate": "2005",
  "employee": {
    "@type": "Person",
    "name": "Jordan Reyes",
    "jobTitle": "Lead Estimator",
    "hasCredential": {
      "@type": "EducationalOccupationalCredential",
      "credentialCategory": "CPA"
    }
  }
}
</script>

Not one new claim. Every fact here was already in the paragraph above. The only change is that a machine can now read the locality, the phone number and the credentialed expert without inferring them from prose.

Verify the fix

Changing the code is not the same as fixing the problem. Confirm it.

  1. Paste the page URL into Google's Rich Results Test and confirm the markup parses. Schema that fails validation contributes nothing.
  2. Validate against schema.org's own validator too, since it reports types and properties Google's test ignores.
  3. Check the phone number, address and business name in your markup against your Google Business Profile character for character. Inconsistent details are worse than absent ones.
  4. Rescan and compare the score against your first run. The point of the index is the movement, not the absolute number.
  5. Read your headings on their own. If none of them are phrased the way somebody would ask the question, the markup is right and the copy still is not answering anything.

Exceptions and misconceptions

Structured data does not guarantee a recommendation

Nothing does. Markup makes facts legible, it does not make an assistant prefer you. Any claim that adding schema produces citations is unsupported, including by the companies that operate the assistants.

Do not mark up what is not on the page

Schema describes visible content. Marking up an award, a rating or an expert that does not appear on the page is misrepresentation, and Google's guidelines treat it as spam.

Never write your own review or aggregate rating markup

Self-serving Review and AggregateRating markup on your own business is against the guidelines and, more to the point, it is a claim about yourself asserted as data. Our own research on this is descriptive only and never recommends it.

The score is legibility, not quality

A 2 out of 10 does not mean a bad business or even a bad website. Plenty of excellent firms score 2. The index measures one narrow thing, and reading it as a verdict on the business is a misuse of it.

Watch it

Primary sources

The measurement above comes from our study, State of AI-Readiness on Business Websites 2026.

Related lessons

Check your own site for this

DeepAudit AI renders your page in a real browser and reports the affected code, so you can see exactly where each finding came from. Free, no signup.

Run a free audit

Last reviewed 2026-09-18. Checks covered: Structured Data for AI, llms.txt, AI Crawler Access, Local Business Schema.