Key Takeaway
The technical AEO checklist covers three domains: Speed (passing Core Web Vitals, fast server responses, server-rendered content), Schema (validated Organization, Article/Product, and BreadcrumbList markup that matches visible content), and Structure (semantic HTML, a clean heading hierarchy, robots.txt access for AI search crawlers such as OAI-SearchBot, Claude-SearchBot, and PerplexityBot, and an optional llms.txt file).
Technical optimization is the unglamorous but essential backbone of AEO. You can create the most authoritative content in the world, but if AI crawlers cannot efficiently access, parse, and extract information from your site, your visibility will suffer. This checklist covers every technical element that affects your AI answer engine visibility, organized into three domains: speed, schema, and structure.
Speed: Optimizing for AI Crawlers
- ✓LCP of 2.5 seconds or less (we aim for under 2 seconds)
- ✓INP of 200ms or less
- ✓CLS of 0.1 or less
- ✓Fast server response time (we aim for under 200ms)
- ✓SSR or static generation for all content pages
- ✓Image compression with modern formats
- ✓Efficient caching with appropriate cache headers
Schema: Comprehensive Structured Data
<head> or <body>). Global schemas (every page): Organization, WebSite, BreadcrumbList. Content page schemas: Article (for blog posts) and, optionally, FAQPage for visible FAQ content. Google no longer shows FAQ or How-to rich results (How-to was retired in 2023 and FAQ in May 2026, per the Search Central changelog), so treat these as clarity markup rather than a search feature. Product schemas: Product with Offer, AggregateRating, and detailed specifications. Local schemas: LocalBusiness with geo coordinates, hours, and service area. Validate every implementation using both Google's Rich Results Test and the Schema Markup Validator, and only mark up content that is visible on the page. Ensure nested schemas are properly connected — for example, your Article schema should reference your Organization schema as the publisher. Use sameAs properties to link to authoritative external profiles. See our comprehensive structured data for AEO guide for implementation details.- ✓Organization schema with sameAs links on every page
- ✓WebSite schema on the homepage (SearchAction is optional; Google retired the sitelinks search box in 2024)
- ✓BreadcrumbList schema reflecting navigation hierarchy
- ✓Article schema on all blog posts and articles
- ✓FAQPage schema on pages with visible FAQ content (optional; no Google rich result)
- ✓Product schema with Offer and AggregateRating on product pages
- ✓LocalBusiness schema on location pages
- ✓All schemas validated with Rich Results Test and Schema.org Validator
Structure: Clean HTML and AI Accessibility
<article> for main content, <section> for logical divisions, <nav> for navigation, <header> and <footer> for their respective content. Use a clean heading hierarchy: one H1 per page, H2 for main sections, H3 for subsections. Never skip heading levels. Use question phrasing for headings where natural. Structure tables with proper <thead>, <tbody>, and <th> elements — AI models extract tabular data more reliably from well-structured HTML tables. Add descriptive alt text to all images. Use ordered and unordered lists for sequential and non-sequential information. Ensure your robots.txt allows the AI crawlers that power answer engines, and know which token controls what. OpenAI uses OAI-SearchBot for ChatGPT search results, GPTBot for model training, and ChatGPT-User for user-initiated visits. Anthropic uses ClaudeBot for training, Claude-SearchBot for search quality, and Claude-User when a person asks Claude something. Perplexity uses PerplexityBot to surface and link sites in its search results and Perplexity-User for user actions. Google's AI Overviews and AI Mode rely on normal Googlebot crawling; Google-Extended is only a robots.txt token controlling use for Gemini training and grounding, and it does not affect Google Search. Optionally, publish an llms.txt file, a Markdown summary of your site with links to key pages, as described in the llms.txt proposal. It is not required by Google: its guidance on AI features in Search says you don't need new machine-readable or AI text files to appear in AI Overviews or AI Mode.- ✓Semantic HTML5 elements throughout
- ✓Clean heading hierarchy (H1 > H2 > H3)
- ✓Properly structured tables with thead/tbody/th
- ✓Descriptive image alt text
- ✓robots.txt allowing OAI-SearchBot, Claude-SearchBot, PerplexityBot, and Googlebot (decide separately on GPTBot, ClaudeBot, and Google-Extended)
- ✓Optional llms.txt file at domain root
- ✓XML sitemap submitted and current
- ✓Clean, descriptive URLs without parameters
Advanced: Monitoring and Maintaining Technical AEO
Frequently Asked Questions
Should I block or allow AI crawlers in robots.txt?
Allow the search crawlers if you want AI visibility. According to OpenAI's documentation, OAI-SearchBot controls appearance in ChatGPT search, while GPTBot only governs model training. Anthropic and Perplexity separate their bots similarly, and Google-Extended does not affect Google Search. So you can block training crawlers for copyright reasons and still allow OAI-SearchBot, Claude-SearchBot, and PerplexityBot to keep appearing in answers.
What is llms.txt and do I need one?
llms.txt is a proposed format, published at llmstxt.org, for a Markdown file that gives language models a short summary of your site and curated links to its most useful pages. It is not an official standard, and Google says no special AI text files are needed for AI Overviews or AI Mode. It is cheap to add, so treat it as optional. Place it at yourdomain.com/llms.txt.