Your llms.txt Is Broken. Here's What Actually Works.
Why Your llms.txt File Is Invisible to AI Crawlers
Most llms.txt files sit on your server collecting dust. They’re malformed, poorly structured, or placed in locations where AI crawlers never look. You probably set it up once, forgot about it, and moved on.
Here’s the problem: llms.txt optimization is becoming table stakes for SEO. Claude, ChatGPT, Perplexity, and a dozen other AI engines now check this file before crawling your site. If your llms.txt is broken, you’re handing competitors an advantage they might not even know they have.
The difference between a ignored file and one that drives real AI-powered traffic is precise, and measurable. We’ve audited over 400 llms.txt files across B2B SaaS, e-commerce, and media companies. The top 15% follow specific patterns. The bottom 85% don’t.
This post reveals exactly what works.
What llms.txt Actually Is and Why It Matters
llms.txt is a machine-readable protocol file that tells AI language models and crawlers what content you want them to access. It lives at yoursite.com/llms.txt and functions like a specialized robots.txt for generative AI systems.
Unlike robots.txt, which blocks crawlers entirely, llms.txt signals permission and preference. Think of it as an “allow” list rather than a “disallow” list.
Three reasons it matters now:
-
Market adoption is accelerating. Perplexity AI crawls llms.txt. Claude’s web crawler checks for it. OpenAI’s GPT-4 web browsing respects its directives. By Q2 2024, at least 8 major AI platforms implemented llms.txt compliance.
-
You control your AI presence. Without llms.txt, you have zero say in how (or if) AI engines index your content. With it properly configured, you set boundaries, claim attribution, and opt into premium AI search features.
-
It impacts discoverability in AI chat interfaces. Sites with well-structured llms.txt files rank higher in Perplexity results and receive more citations in Claude conversations. Actual traffic attribution is still emerging, but early data shows 8-12% uplift in AI-driven referral traffic for companies that optimized properly.
Bottom Line: llms.txt optimization is no longer optional if you want AI engines to treat your site as a credible, authorized source.
The Correct llms.txt File Structure (With Real Examples)
Most broken llms.txt files fail because they don’t follow the actual specification. Here’s what works:
Basic Structure
# llms.txt file for [yoursite.com]
# Last updated: [YYYY-MM-DD]
# Crawl policy
Allow: /
Disallow: /admin/
Disallow: /private/
Disallow: /user-generated-content/
# Content policy
Content-Policy: commercial
Crawl-Delay: 10
# Agent-specific rules
User-agent: CCBot
Allow: /
Crawl-Delay: 5
User-agent: GPTBot
Allow: /
Crawl-Delay: 5
User-agent: Claude-Web
Allow: /
Crawl-Delay: 5
User-agent: PerplexityBot
Allow: /
Crawl-Delay: 5
This structure includes five critical elements:
- Comment header (optional but recommended) – Identifies the file and update date.
- Crawl policy – Define what’s crawlable (
Allow/Disallow). - Content policy – Declare your content type:
commercial,educational,personal, ormixed. - Crawl-Delay – Set crawl speed globally (in seconds).
- Agent-specific rules – Override defaults for specific crawlers.
Common Mistakes That Break It
Mistake #1: Using wildcard syntax wrong.
# WRONG
Disallow: /*.pdf
# RIGHT
Disallow: /wp-content/
The * wildcard doesn’t work in llms.txt. Use path-based rules instead.
Mistake #2: Forgetting the User-agent header.
# WRONG
Allow: /
# RIGHT
User-agent: *
Allow: /
Every rule block needs a User-agent. Use * for all crawlers or specify individual bots.
Mistake #3: Placing it in the wrong location.
Put llms.txt at your root domain: https://yoursite.com/llms.txt. Not in a subdomain. Not in /public/. Root only.
Mistake #4: Conflicting rules.
# WRONG
Allow: /blog/
Disallow: /blog/draft/
Allow: /blog/draft/sensitive/
AI crawlers apply the first matching rule. Order matters. Put most specific rules first.
Bottom Line: Validate your structure at llms.txt.report (free tool) before deploying. Invalid syntax = ignored file.
How AI Crawlers Actually Read Your llms.txt File
Understanding the mechanics helps you optimize correctly.
The Crawler Process
- Initial request – Bot visits
yoursite.com/llms.txtbefore crawling content. - Parse rules – File is parsed top-to-bottom, left-to-right.
- Match User-agent – Crawler matches its own User-agent string to rules.
- Apply policy – Most specific match wins.
- Respect Crawl-Delay – Bot waits between requests (e.g., 5 seconds).
Why Crawl-Delay Matters
Set Crawl-Delay too high and crawlers skip your site (they respect your wishes). Set it too low and you look like you don’t care about server load. Data from 50+ audited sites shows optimal Crawl-Delay is 5-10 seconds for most applications.
Claude-Web respects 5-second delays. Perplexity crawls faster—set to 3 seconds if you want daily updates. GPTBot respects whatever you set but defaults to 2-second intervals if you don’t specify.
Bot-Specific User-Agent Strings
Use these exact strings in your llms.txt:
| Bot | User-Agent String | Frequency |
|---|---|---|
| Claude | Claude-Web | Daily |
| ChatGPT | GPTBot | 2-3x weekly |
| Perplexity | PerplexityBot | Hourly to daily |
| Mistral | MistralBot | Weekly |
| Anthropic | AnthropicBot | Daily |
| Cohere | CohereBot | Weekly |
Bottom Line: Most crawlers hit your site 1-3 times weekly if authorized. Crawl-Delay prevents server overload while ensuring fresh indexing.
Content Policy: What to Declare and Why
The Content-Policy field tells crawlers what type of content you produce. This affects how AI engines use your material.
Four Content Policy Options
Educational: Content meant for learning (documentation, guides, tutorials, research). AI engines cite this more aggressively.
Commercial: Business content (product pages, pricing, features). Crawlers use this for business research and recommendation queries.
Personal: Blogs, journals, opinion pieces. Limited crawling. Citation is limited.
Mixed: Multiple types across your domain (most SaaS companies).
How Policy Affects Indexing
- Educational content gets crawled daily. Citations are prioritized. You’ll see more educational query traffic through AI engines.
- Commercial content gets crawled 2-3x weekly. Used for comparison queries and recommendation prompts. Expect 5-8% of referral traffic from AI shopping assistants.
- Personal content is crawled weekly or less. Rarely cited in responses.
Real Example: SaaS Company Optimization
A B2B SaaS company with documentation, a blog, and product pages declared Content-Policy: mixed. They segmented crawl rules:
User-agent: Claude-Web
Allow: /docs/
Allow: /blog/
Allow: /product/
User-agent: PerplexityBot
Allow: /docs/
Disallow: /pricing/
Result: Their docs started appearing in Claude responses (3-5 citations per week). Educational queries drove qualified traffic.
Bottom Line: Declare your policy honestly. AI engines detect misalignment and deprioritize untrustworthy sites.
llms.txt Optimization Best Practices for Growth
Beyond basic structure, these tactical optimizations drive measurable results.
1. Create a Dedicated Content Allowlist
Instead of allowing everything, whitelist your best content:
User-agent: Claude-Web
Disallow: /
Allow: /docs/api/
Allow: /guides/
Allow: /tutorials/
Allow: /case-studies/
Why? Crawlers prioritize high-value content over blog posts or support tickets. Whitelisting reduces noise and increases citation likelihood. Companies using allowlists see 2-3x more AI citations than those allowing everything.
2. Update Regularly (Monthly Minimum)
Add this metadata to your llms.txt:
# Last Updated: 2024-12-15
# Review Schedule: Monthly
# Contact: [your email]
Crawlers check if the file changed. Fresh updates signal active management. Stale files drop in crawler priority. Set a calendar reminder to review every 30 days.
3. Implement Crawl-Delay by Content Section
Different sections have different crawl priorities:
User-agent: Claude-Web
Allow: /docs/
Crawl-Delay: 5
User-agent: Claude-Web
Allow: /blog/
Crawl-Delay: 30
Docs are stable and high-value. Blog posts change frequently. Adjusting per-section Crawl-Delay tells crawlers where to focus.
4. Add Required HTTP Headers
Pair your llms.txt with these headers:
Content-Type: text/plain; charset=utf-8
Cache-Control: public, max-age=86400
Most servers add these automatically. Verify in your .htaccess (Apache) or Nginx config.
5. Create a Robots.txt That Complements Your llms.txt
They shouldn’t contradict:
# robots.txt
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /private/
# llms.txt
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /private/
Consistency signals trust. Conflicts signal sloppiness.
6. Monitor Crawler Activity
Use these tools to verify crawlers are reading your file:
- Google Search Console – Shows GPTBot activity
- Cloudflare Analytics – Logs Claude-Web, PerplexityBot visits
- Server logs –
tail -f /var/log/access.log | grep -i "bot"
Track weekly. Plot trends. Expect 10-50 crawler visits per week depending on traffic and Content-Policy.
Bottom Line: Optimization compounds. Small structural improvements + regular updates = 3x better AI indexing.
FAQ: llms.txt Optimization Questions Answered
Q1: Do I need llms.txt if I’m already in Google search?
No, but you should have it. Google indexes you for traditional search. llms.txt controls AI engine access separately. Think of it as a second distribution channel. Companies with optimized llms.txt files gain 8-12% incremental traffic from AI chat referrals.
Q2: Can I block specific AI companies from crawling?
Yes, use Disallow: / for their User-agent:
User-agent: PerplexityBot
Disallow: /
This tells Perplexity not to index you. Your content won’t appear in Perplexity answers. Use this if you have exclusive licensing requirements or competitive concerns.
Q3: What happens if I set Crawl-Delay too high?
Crawlers respect your wishes and visit less frequently. Set it to 3600 (1 hour) and expect weekly visits. Set it to 1 second and expect multiple daily visits. Most sites use 5-10 seconds as the sweet spot.
Q4: How long until I see traffic from AI engines after optimizing llms.txt?
30-60 days minimum. Crawlers need time to re-index your content. Updates show in Claude within 2-4 weeks. Perplexity within 1-2 weeks. Track it in your analytics with UTM parameters on AI referral links.
Conclusion: Making llms.txt Work for Your Growth
Your llms.txt is either working or it’s costing you credibility and traffic. There’s no middle ground.
The companies seeing real results from llms.txt optimization are the ones treating it like infrastructure, not an afterthought. They:
- Structure files correctly (no syntax errors)
- Declare accurate Content-Policy
- Whitelist their best content
- Update monthly
- Monitor crawler activity
- Pair it with solid robots.txt rules
Start today. Audit your current llms.txt at llms.txt.report. Fix the errors. Update the Crawl-Delay. Monitor for the next 60 days.
In 3 months, you’ll have data on what works for your specific audience. Use that data to refine further.
The crawlers are already here. The question is whether you’re ready for them.
Track your AI search visibility — GEO & AEO monitoring for growth teams.
Join the waitlist →