Checklist

The AI Search Readiness checklist.

Twenty checks in three layers. Each row says how to check it by hand and whether the audit can open the fix as a pull request or only describe it. It does not guarantee citations; it removes the reasons an assistant cannot read you.

01 · Access

Can named AI crawlers fetch the site?

CheckHow to checkFix
robots.txt exists and returns text, not an HTML shellFetch /robots.txt and read itPull request
No group blocks OAI-SearchBot, Claude-SearchBot, PerplexityBot or AmazonbotEvaluate each token with longest-match rulesPull request
No group blocks ChatGPT-User, Claude-User or Perplexity-UserSame evaluation, live-fetch tokensPull request
The star group does not Disallow everything on the production hostRead the star group; preview hosts are exemptPull request
Googlebot is allowed and the home page is not noindexrobots.txt plus the robots meta and headerPull request
The sitemap is reachable and lists live URLsFetch it, parse it, sample entriesPull request
Canonical tags point at the production host, not a preview domainCompare every canonical with the final originPull request
No hosting challenge page is served to anonymous fetchersFetch without JavaScript; check status and titleGuidance

02 · Receipt

Do crawlers receive real content when they fetch?

CheckHow to checkFix
The raw HTML of each page carries readable text before scripts runCount words in the fetched HTMLGuidance
The home page is not an empty application shellOne div and a script tag is a shellGuidance
Rendered and raw content do not differ by more than a screen of textCompare word countsGuidance
No robots meta declares noai on pages you want readRead robots meta on sampled pagesPull request

03 · Meaning

Can they parse what the business and page are?

CheckHow to checkFix
Title, Open Graph title and JSON-LD name agree on the business nameCompare the leading segment of eachGuidance
Organization or SoftwareApplication JSON-LD with name and url on the home pageParse every JSON-LD blockPull request
Every JSON-LD block parsesJSON.parse each scriptGuidance
FAQPage questions appear as visible text on the pageMatch each question against the bodyGuidance
Blog and article pages carry an Article typeCheck types on content pathsGuidance
One H1 per page and sectioned H2sCount headingsGuidance
The first paragraph names the entity and says what it isRead the first 120 words of the main contentGuidance
llms.txt exists with a heading, a summary and live linksFetch it and check three linksPull request