GEO Checklist
Complete guide to implementing Generative Engine Optimization
Quick Start Guide
Quick Start - Next.js Implementation
Copy-paste snippet to get started with GEO in Next.js
DOBest Practices
Implement all required endpoints
Create all 6 GEO endpoints with proper content and headers
- ✓/.well-known/ai.txt - Plain text description
- ✓/ai/summary.json - Site summary (≤800 chars)
- ✓/ai/faq.json - Frequently asked questions
- ✓/ai/service.json - Service capabilities
- ✓/sitemap-llm.xml - LLM-optimized sitemap
- ✓/robots.txt - Allow AI crawlers
Use correct Content-Type headers
Set proper MIME types for all endpoints
- ✓JSON endpoints: application/json
- ✓Text endpoints: text/plain
- ✓XML endpoints: application/xml
Implement proper caching
Add Cache-Control headers for performance
- ✓Cache-Control: public, max-age=86400, stale-while-revalidate=604800
- ✓Allows 24-hour caching with 7-day stale-while-revalidate
Keep summaries concise
Write clear, informative summaries under 800 characters
- ✓Focus on key features and use cases
- ✓Include target audience
- ✓Mention primary capabilities
Include lastModified timestamps
Add ISO 8601 timestamps to all JSON endpoints
- ✓Format: YYYY-MM-DDTHH:mm:ssZ
- ✓Update when content changes
- ✓Helps AI systems understand freshness
Validate JSON schemas
Ensure all JSON follows the required structure
- ✓Required fields present
- ✓Correct data types
- ✓Valid URLs and formats
Allow AI crawlers in robots.txt
Explicitly permit AI bot access
- ✓User-agent: GPTBot - Allow: /
- ✓User-agent: ChatGPT-User - Allow: /
- ✓User-agent: CCBot - Allow: /
- ✓User-agent: anthropic-ai - Allow: /
Create comprehensive sitemaps
Include all important pages in sitemap-llm.xml
- ✓All public pages
- ✓Proper lastmod dates
- ✓Reasonable priority values
- ✓Include changefreq hints
DON'TCommon Mistakes
Don't block AI crawlers
Avoid disallowing AI bots in robots.txt
- ✗Don't use: User-agent: GPTBot - Disallow: /
- ✗Don't use: User-agent: * - Disallow: /
- ✗AI systems need access to validate GEO compliance
Don't use incorrect headers
Avoid wrong Content-Type or missing Cache-Control
- ✗Don't use text/html for JSON endpoints
- ✗Don't omit Cache-Control headers
- ✗Don't use overly aggressive caching
Don't write overly long summaries
Keep summaries focused and under 800 characters
- ✗Avoid rambling descriptions
- ✗Don't include unnecessary details
- ✗Focus on what AI systems need to know
Don't skip required fields
Include all mandatory fields in JSON schemas
- ✗version and lastModified are required
- ✗Don't omit key service information
- ✗Include all endpoint references
Don't use invalid JSON
Ensure all JSON is properly formatted and parseable
- ✗No trailing commas
- ✗Proper string escaping
- ✗Valid UTF-8 encoding
Don't ignore error handling
Handle missing or invalid endpoints gracefully
- ✗Return proper HTTP status codes
- ✗Don't serve empty responses
- ✗Handle network errors appropriately
Framework-Specific Guides
Detailed implementation guides for popular frameworks