Home/Reference/AI Readability Score (ARS)
Defined term · Presence Growth Engine metric
AI Readability Score (ARS)
A metric for how extractable a website is to AI crawlers: how easily ChatGPT, Google AI Overviews, Perplexity, and Claude can read, understand, and cite it.
Definition
The AI Readability Score (ARS) quantifies how well a website can be read, understood, and cited by AI systems including ChatGPT, Google AI Overviews, Perplexity, and Claude. The score ranges from 0 to 100, with higher values indicating better accessibility to AI crawlers and greater likelihood of being cited in AI-generated answers.
Extractability
The six signals
ARS is calculated across six weighted signals that directly affect AI crawler access and content extraction. Every signal is deterministic: no model decides any part of the score, and the same page scanned twice produces the same number.
Crawler Access · 25%
Whether robots.txt blocks any of seven named AI bots with a literal Disallow: /, covering four distinct jobs: OpenAI's training crawler and live retrieval agent (GPTBot, ChatGPT-User), Anthropic's (ClaudeBot, anthropic-ai), the switch controlling Gemini and AI Overviews training (Google-Extended), Common Crawl (CCBot), and ByteDance (Bytespider). No robots.txt at all scores 100. Each bot blocked costs 12.5 points of this signal; a wildcard Disallow: / drops it to 10. A partial path disallow, such as /admin/, does not count as a block.
JavaScript Rendering · 20%
Whether meaningful content exists in the HTML the server sends, since most AI crawlers do not execute JavaScript. Starts at 100: React, Vue or Angular markers cost 20; under 200 characters of content against over 5,000 of script costs 40; a near-empty body costs 30. A noscript fallback of more than 50 characters earns 10 back.
Structured Data · 20%
JSON-LD blocks and which of nine important schema types they use (Organization, WebSite, WebPage, Article, Product, FAQPage, BreadcrumbList, LocalBusiness, Person). No JSON-LD at all scores 0, the only signal with a true zero floor. Otherwise: 20 + (15 x matched types) + up to 20 for property count, so Organization, WebSite and WebPage with 20+ properties scores 85, and one more type reaches 100.
Content Quality · 15%
Structure, not prose quality, measured after script, style, nav and footer are stripped. A 25%-or-better text-to-HTML ratio is worth 30 points, exactly one H1 is worth 20, and headings, lists, tables and substantial paragraphs make up the rest.
Content Size · 10%
Word count of the stripped text: under 100 words scores 10, 100 to 299 scores 30, 300 to 499 scores 50, 500 to 999 scores 70, 1,000 to 1,499 scores 90, 1,500 or more scores 100. The function never penalises a long page: it simply stops gaining once it clears the top band.
llms.txt & AI Meta · 10%
Whether /llms.txt (+50) and /llms-full.txt (+20) are published, plus meta robots without a noai directive (+10), a meta description (+10) and a canonical link (+10). A noai or noimageai directive costs 20 and forfeits the 10 the tag would otherwise earn.
Rollup
How the site score is built
ARS is computed per page from the six signals above, then rolled up to one site score.
The rollup averages each signal across every scanned page first, then weights the six averages: it does not average the per-page composites. A single catastrophic page therefore dilutes the site score rather than dominating it, while a site-wide problem such as a blanket robots.txt block still shows up at full strength. A scan covers up to 500 pages on the standard path, or up to the plan's page limit on the batched path, with a hard ceiling of 5,000.
ARS is a product diagnostic, not a CLEO Presence Index input. The Index measures the same underlying readiness through three of its own signals, Crawl & Render Access (9), Site Content & Technical SEO (9) and Structured Data (2), scored independently on the Index's own panels. Full weighting at the methodology page.
One bad page cannot sink the score. One bad robots.txt rule cannot hide.
Reading the score
ARS bands
Significant barriers to AI crawling and citation.
Moderate AI accessibility, with room to improve.
Strong AI citation potential across most engines.
The limit
What ARS deliberately does not measure
ARS answers one question: can an AI system read this page? Whether it will cite the page is a separate, companion score, AI Search Presence. It starts at 100 and subtracts a penalty per issue found (critical costs 25, warning costs 8, info costs 2) for six things:
A concise, extractable answer · -8 if missing
At least one 40 to 320 character paragraph an answer engine could lift whole.
Author attribution · -8 if missing
A byline, author meta tag, rel=author link, or schema author property. Applies only to article-like pages: an article schema type, a URL under an editorial section, or 600+ words of long-form prose: a homepage legitimately has no byline, and flagging it would be noise.
A publication or updated date · -8 if missing
A time element, article:published_time/modified_time, or schema datePublished/dateModified. Same article-like scope as attribution.
Question-and-answer structure · -2 if missing
FAQPage or QAPage schema, or a heading that ends in a question mark.
Quotable statistics · -2 if missing
At least two matches for percentages, currency figures, years, or numbers with scale words.
Open Graph metadata · -2 if missing
Any og: property.
In practice
Improving the score
Most gains come from a handful of high-leverage fixes: the same fixes CLEO writes server-side, ranked by what they are worth.
Fix a wildcard robots block · +22.5 composite points
A blanket Disallow: / drops the full crawler-access signal to 10; removing it is the single largest fix available.
Serve llms.txt and llms-full.txt · +7 composite points
Two static files move this signal from 0 to 70: the cheapest points on the score, fetched once per domain and reused for every page (an ARS composite-point figure; under v1.0 the Index reports llms.txt but does not score it, and does not penalise blocked AI training crawlers).
Add structured data
Mark up every page with valid JSON-LD: Organization, WebSite, WebPage, Article, and FAQPage where Q&A exists. Four important types plus reasonable detail reaches 100 on this signal.
Render server-side
Ensure meaningful content is present in static HTML. A React or Next.js site starts 20 points down on this signal before any content is measured.
Open the crawlers
Explicitly permit GPTBot, ClaudeBot, PerplexityBot, anthropic-ai, and Google-Extended in robots.txt: each named bot blocked costs 12.5 points of the signal.
Write for extraction, and to length
Clear headings, lists and front-loaded answers; content scores higher up to about 1,500 words, with no penalty for going beyond it.
Context
The audit ARS sits inside
ARS is one of seven specialist domains that run in parallel against the same crawl.
Technical SEO
Status codes, canonicals, noindex, viewport, redirects, robots, HSTS, CSP.
Content SEO
Readability, duplicate content, entity and Knowledge Graph signals, article signals, social meta.
Schema SEO
JSON-LD implementation, type validation, deprecated and restricted types.
Performance
Core Web Vitals: Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift and more.
Links
Internal link structure, orphan pages, broken links, link equity, anchor text, competitor gap.
GEO and AEO
llms.txt, AI crawler access, citation structure, attribution.
AI Readability
Interprets the deterministic ARS pre-scan and writes the recommendations.
The Performance specialist uses the industry Core Web Vitals thresholds, not numbers CLEO invented:
Largest Contentful Paint
Good under 2,500 ms. Poor over 4,000 ms.
Interaction to Next Paint
Good under 200 ms. Poor over 500 ms.
Cumulative Layout Shift
Good under 0.1. Poor over 0.25.
First Contentful Paint
Good under 1,800 ms. Poor over 3,000 ms.
Time to First Byte
Good under 800 ms. Poor over 1,800 ms.
Near-duplicate pages are caught with a site-wide MinHash and LSH pass, reported honestly as full, partial or unavailable coverage. Orphan detection, for a scanned page no other scanned page links to, is reported honestly as approximate: it only sees scanned pages and misses JavaScript-rendered navigation.
See your own AI Readability Score.
Scan your presence →