What Is llms.txt? How to Make Your Site Visible to AI Crawlers
AI crawlers are reading your site right now. GPTBot (OpenAI), Claude-Web (Anthropic), Google-Extended (Gemini), and others are fetching your pages to build the knowledge bases that power AI-generated answers. But unlike traditional search crawlers, these AI systems have no standardized way to understand what your site is about, what content matters most, or how it is organized.
That is what llms.txt solves. It is a machine-readable file at the root of your site that tells AI crawlers exactly what your site offers and where to find it — like a robots.txt for discovery instead of access control.
What Is llms.txt?
llms.txt is a plain-text file hosted at yoursite.com/llms.txt that provides AI systems with a structured summary of your site. It includes your site's purpose, key content areas, important pages, and any special instructions for AI consumption.
Think of it as a cover letter for AI crawlers. While robots.txt says "here is what you can and cannot access," llms.txt says "here is what we are, what we offer, and where to find our best content."
The format was proposed in late 2025 and has gained rapid adoption among sites that want to influence how AI systems represent their content. It is not a formal standard yet — but early adopters are seeing measurable improvements in AI citation rates.
Why llms.txt Matters for GEO
Generative Engine Optimization (GEO) is the practice of making your content citable by AI systems. llms.txt is a foundational GEO signal because it solves the discovery problem.
Without llms.txt, an AI crawler lands on your site and has to figure out what you do by reading individual pages. It might index your about page, a random blog post, and your pricing page — but miss your most authoritative content entirely.
With llms.txt, you tell the AI crawler directly: "We are a developer tools company. Our most important content is our API documentation, our technical blog, and our developer guides. Here are the URLs."
This matters because AI systems use the content they index to generate answers. If they index the right content, they cite you accurately. If they index random pages, they might summarize you incorrectly — or not cite you at all.
How AI Crawlers Discover Content
Understanding the AI crawling ecosystem helps you configure your site correctly.
Known AI Crawlers
| Crawler | Operator | Purpose | User Agent |
|---------|----------|---------|------------|
| GPTBot | OpenAI | Training data and web browsing | GPTBot/1.0 |
| ChatGPT-User | OpenAI | Real-time web search in ChatGPT | ChatGPT-User |
| Claude-Web | Anthropic | Web content for Claude | Claude-Web |
| Google-Extended | Google | Gemini and AI Overviews | Google-Extended |
| PerplexityBot | Perplexity | Real-time answer generation | PerplexityBot |
| Applebot-Extended | Apple | Apple Intelligence features | Applebot-Extended |
| Bytespider | ByteDance | AI training and services | Bytespider |
How They Work
- Crawling. The bot fetches your pages, starting from your sitemap and following internal links. It respects
robots.txtdirectives. - Parsing. The bot extracts text, headings, structured data, and metadata from the HTML. Most AI crawlers do not render JavaScript.
- Indexing. The extracted content is stored in a vector database or knowledge graph used by the AI system.
- Retrieval. When a user asks a question, the AI system searches its index for relevant content and synthesizes an answer.
llms.txt plugs into step 1 — it tells the crawler what to prioritize during discovery, so steps 2-4 work with your best content.
llms.txt Format and Structure
The llms.txt format is flexible but follows a consistent structure. Here is the specification:
# Site Name
> Brief description of what this site is about.
## Key Content Areas
- [Area Name](https://yoursite.com/path): Description of this content area
- [Another Area](https://yoursite.com/other): What this section covers
## Important Pages
- [Page Title](https://yoursite.com/page): Why this page matters
- [Guide Title](https://yoursite.com/guide): What the reader learns
## Optional: Additional Context
Any additional context about how to interpret or cite your content.
Format Rules
- Start with H1 (
#) — your site name - Blockquote (
>) — a one-line site description - H2 sections (
##) — content categories - Markdown links — each important page with a description
- Plain text — any additional context
- Keep it concise — under 100 lines. AI systems process this file frequently; respect their token budgets.
Step-by-Step: Creating Your Own llms.txt
Step 1: Identify Your Key Content
List the 10-20 most important pages on your site. Prioritize:
- Pages that define what your product/service does
- Your most authoritative blog posts or guides
- Documentation and API references
- Pricing and comparison pages
- Any page you want AI systems to cite
Step 2: Write the File
Create a file at public/llms.txt (or your static file directory):
# Your Company Name
> One sentence describing what your company does and who it serves.
## Documentation
- [Getting Started](https://yoursite.com/docs/getting-started): Quick start guide for new users
- [API Reference](https://yoursite.com/docs/api): Complete API documentation with examples
- [CLI Guide](https://yoursite.com/docs/cli): Command-line tool usage and configuration
## Blog
- [Best Post Title](https://yoursite.com/blog/best-post): Description of the topic and key insights
- [Another Key Post](https://yoursite.com/blog/key-post): What this post covers
## Product
- [Features](https://yoursite.com/features): Overview of product capabilities
- [Pricing](https://yoursite.com/pricing): Plans and pricing information
- [Changelog](https://yoursite.com/changelog): Recent updates and new features
Step 3: Deploy and Verify
Deploy your site and verify the file is accessible:
curl -s https://yoursite.com/llms.txt | head -20
You should see your llms.txt content. If you get a 404, check your static file configuration.
Step 4: Add to Your Sitemap
While not required, referencing llms.txt in your sitemap helps AI crawlers discover it:
<url>
<loc>https://yoursite.com/llms.txt</loc>
<changefreq>weekly</changefreq>
</url>
Xyle's llms.txt as a Working Example
Xyle has a live llms.txt at xyle.app/llms.txt. Here is what it looks like:
# Xyle
> AI-powered SEO, AEO, and GEO analysis platform for developers. Crawl any URL and get instant SEO scores, AI visibility signals, and actionable recommendations.
## Documentation
- [Docs](https://xyle.app/docs): Getting started, CLI reference, API docs, and agent integration guides
- [AI Visibility](https://xyle.app/ai-visibility): How to check if AI engines recommend your brand
## Tools
- [Analyze](https://xyle.app/analyze): Free URL analyzer — enter any URL for instant SEO, AEO, and GEO scores
- [Dashboard](https://xyle.app/dashboard): Full site monitoring with Search Console integration
## Blog
- [Complete Guide to AEO](https://xyle.app/blog/complete-guide-to-aeo): 18 AEO signals explained with implementation examples
- [GEO Guide](https://xyle.app/blog/what-is-geo-generative-engine-optimization): Generative Engine Optimization for developers
- [JavaScript SEO](https://xyle.app/blog/javascript-framework-seo-impact): How frameworks affect crawlability and indexing
Notice the structure: clear site description, categorized content areas, and descriptive link text. Each entry tells an AI crawler not just where to go, but what it will find there.
robots.txt Configuration for AI Crawlers
llms.txt handles discovery. robots.txt handles access control. You need both configured correctly.
Allowing AI Crawlers
If you want AI systems to index your content (recommended for GEO), explicitly allow their user agents:
User-agent: GPTBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-Web
Allow: /
User-agent: Google-Extended
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: *
Allow: /
Disallow: /dashboard/
Disallow: /api/
Disallow: /admin/
Sitemap: https://yoursite.com/sitemap.xml
Blocking Specific AI Crawlers
If you want to block specific AI crawlers (for example, to prevent training but allow search):
# Allow search-related AI crawlers
User-agent: ChatGPT-User
Allow: /
User-agent: PerplexityBot
Allow: /
# Block training-only crawlers
User-agent: GPTBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: CCBot
Disallow: /
Selective Access
You can allow AI crawlers to access specific sections while blocking others:
User-agent: GPTBot
Allow: /blog/
Allow: /docs/
Disallow: /
This lets AI systems index your public content (blog, docs) but not your product pages or internal content.
Frequently Asked Questions
Is llms.txt an official standard?
Not yet. It is a community-proposed convention that has gained significant adoption since late 2025. Several major AI companies have acknowledged it, and crawler behavior suggests they check for it. Treat it as an emerging best practice rather than a formal specification.
Does llms.txt replace robots.txt?
No. They serve different purposes. robots.txt controls access — what crawlers can and cannot fetch. llms.txt controls discovery — what crawlers should prioritize. Use both together.
How often should I update llms.txt?
Update it whenever you add or remove significant content — new product pages, major blog posts, or documentation sections. A monthly review is a good default. Keep it under 100 lines; AI crawlers process it frequently.
Getting Started
Creating an llms.txt file takes 15 minutes and is one of the highest-ROI GEO actions you can take. It costs nothing, requires no code changes, and directly influences how AI systems discover and represent your content.
- List your 10-20 most important pages
- Write your
llms.txtfollowing the format above - Deploy it at your site root
- Configure
robots.txtfor the AI crawlers you want to allow
Then verify your AI visibility with Xyle to see how AI engines currently perceive your brand — and track improvements over time.
Ready to optimize your search rankings?
Xyle connects to Google Search Console, analyzes content gaps with AI, and gives you actionable fixes — from the terminal or dashboard.