How the AI-Readiness score works
Version 1.0. 25 checks, 100 points. Every check is a plain HTTP fetch anyone can repeat. A site that does not answer is capped at 10. Machine-readable: /formula.json.
- 5Answers over HTTPS with status 200
https - 4First byte + page under 1.5 s
fast - 5Title of 10–70 characters
title - 5Meta description of 50–170 characters
description - 4Canonical URL on the same host
canonical - 3<html lang> set
lang - 2Mobile viewport
viewport - 4Open Graph title + image
og - 6Valid JSON-LD with a @type
jsonld - 3Entity identity: name + sameAs links (GitHub, stores, socials)
entity - 10Readable without JavaScript (400+ characters of text in the HTML)
nojs - 4robots.txt reachable
robots - 8robots.txt lets AI crawlers in (GPTBot, ClaudeBot, PerplexityBot, …)
ai_allowed - 8AI crawlers are not blocked by a firewall / bot setting
ai_not_blocked - 6/llms.txt present
llms - 6sitemap.xml reachable with URLs
sitemap - 2Sitemap has a lastmod from the last 6 months
sitemap_fresh - 2Publish / update dates visible to machines
dates - 3Contact or author identity
contact - 2Links out to identifiable sources
sources - 3Security headers (HSTS + nosniff)
headers - 2No mixed (http) content
mixed - 1hreflang set when several languages exist
hreflang - 1RSS / Atom / JSON feed linked
feed - 1Icon declared
favicon
AI crawlers checked in robots.txt: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, PerplexityBot, Google-Extended, CCBot, Applebot-Extended, Bingbot. The firewall check fetches your home page as GPTBot and as a browser and compares the answers. Measuring these signals does not guarantee any AI will cite a site — they make it possible.