Magazin · Fundament · Technical Deep-Dive
Technical Deep-Dive

llms.txt Explained — The New Standard for AI Bot Consent (with Generator)

How to rethink robots.txt for the AI era. Live generator, practical examples, and the 5-minute setup.

PH
Philipp Helminger
Founder & Lead Developer · SEOlyze
· 📅 20. Mai 2026 · ⏱️ 9 Min Lesezeit · 🔄 Update: 20. Mai 2026

What is llms.txt?

llms.txt is a Markdown-formatted file in the root directory of your domain that machine-readably tells Large Language Model crawlers (GPTBot, PerplexityBot, ClaudeBot, Google-Extended, among others) which content on your site is particularly relevant, in what order it should be prioritized, and how it is structured. The proposal comes from Jeremy Howard (Answer.AI, fast.ai) from September 2024 and has established itself as a de facto standard within a year — as of May 2026, 4 of the 5 major LLM providers officially or informally support the standard.

In practice, an llms.txt looks like this:

# My Domain

> Short description of the domain in one sentence.

## Docs

- [Getting Started](https://example.com/docs/start.md): Get started in 5 minutes
- [API Reference](https://example.com/docs/api.md): Complete API documentation

## Optional

- [Changelog](https://example.com/changelog.md)

The structure is intentionally minimal: H1 with site name, optional blockquote as description, then H2 sections with links and 1-sentence descriptions. An optional section at the end for nice-to-have content that LLMs may skip if necessary.

Important to understand

llms.txt does not replace robots.txt. It is an additional, positive marker — not an access prohibition. Both exist in parallel and have different functions.

Difference from robots.txt

The difference is often misunderstood, so let's be explicit:

Aspectrobots.txtllms.txt
PurposeControl crawl access (allow/disallow)Prioritize important content
RecipientAll crawlers (Search + AI)Specifically LLM crawlers
FormatPlain-text directivesMarkdown
Standard since1994 (RFC 9309 since 2022)September 2024 (de facto)
Mandatory?No, but best practiceNo, but increasingly mandatory
PositionRoot: /robots.txtRoot: /llms.txt

My take: robots.txt is the bouncer ("who can come in?"), llms.txt is the concierge ("where should I start?"). Both are useful, both have their own logic. Those who only have one are missing out on visibility.

Robots.txt tells LLMs whether they can read your site. Llms.txt tells them what to read first.

Syntax + Directives

The llms.txt syntax is intentionally kept small — that's a feature, not a bug. Six elements are enough:

H1 (Mandatory)

The name of your domain or product. Exactly one H1 per file.

# SEOlyze

Blockquote (recommended)

A 1-2 sentence description. LLMs use this as context for citation decisions.

> SaaS platform for SEO + GEO. WDF/IDF, Rank Tracking, AI Overview Monitoring.

H2 Sections

Any number. Convention: Docs, Examples, Optional. Freely selectable.

List Items with Links

One Markdown list per H2. Each item: - [Title](URL): Optional 1-sentence description.

Optional Section at the End

An H2 named "Optional" — content here may be skipped by crawlers when token limits are reached. Useful for changelogs, blog archives, FAQ collections.

Companion Files: .md Variants

Best practice (not mandatory): For each page linked in llms.txt, provide a .md variant that is clean (no sidebar, no cookie banner, no ads). URL convention: example.com/docs/introexample.com/docs/intro.md. This gives LLMs significantly better parsing results.

Common mistake

Many copy their Sitemap.xml content 1:1 as an llms.txt list. That's not the point. llms.txt is curated — only your 10–30 most important URLs, not all 500 blog posts.

Live Generator

Here is a simple generator. Enter your data, click "Generate" — you will get a valid llms.txt to copy into your root directory.

Quick Guide

1) Enter domain. 2) Configure bot whitelisting (what is allowed in robots.txt). 3) Specify 3-10 important URLs. 4) Click "Generate". 5) Save output to /llms.txt on your server.

The generator gives you a valid llms.txt. For the bot allow directives, you must also adapt your robots.txt — this does not happen in the llms.txt itself (it has no bot control syntax). Example for robots.txt:

User-agent: GPTBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

llms.txt automatically in every audit

SEOlyze checks llms.txt existence, format validity, and bot allows as part of every on-page audit. Plus: We compare your llms.txt URLs with your actual AIO citations — and show which ones you should add.

Start Trial →

Best Practices

1. Curate, don't duplicate

Maximum 30 URLs in llms.txt. If you have a sitemap with 5000 posts, pick the 20 most valuable ones. LLM crawlers have token limits — the longer your llms.txt, the higher the chance that it will be cut off at the end.

2. Order by Importance

The first 10 links are the most important. Pillar content, definition pages, main categories first. Tools/calculators in the middle. Blog posts and changelog in "Optional".

3. Provide Markdown Versions

For your top 10 URLs, you should build .md endpoints that render cleanly. This requires setup effort, but LLMs consume Markdown significantly better than HTML with a sidebar/cookie banner/ads.

4. Keep it Current

Include a last-updated date as a comment, refresh every 3–6 months. Dead URLs in llms.txt are a negative signal — you appear to be a poorly maintained source.

5. Validate

There are initial open-source validators (e.g., llmstxt.org). Have your file validated before going live. Most common errors: multiple H1s, missing spaces after -, incorrect URL encoding for umlauts.

~30
Max. URLs per llms.txt recommended
4 out of 5
major LLM providers support standard (May 2026)
Sep 2024
Standard proposal (Jeremy Howard)
< 1%
of Top 10k domains have an llms.txt (May 2026, estimate)

The last number is interesting: Less than 1% of the top 10k domains have a valid llms.txt — that's huge whitespace. Those who set it up now will have a competitive advantage that will disappear in 12–18 months.

How to check if your llms.txt is working

Three ways that work in practice:

Check 1: HTTP Test

Trivial requirement: curl https://your-domain.de/llms.txt must return status 200 and valid Markdown. Sounds self-explanatory, but is often the bug: CDN caching sends 404 because the file is not in the CDN path.

Check 2: LLM Direct Test

Ask ChatGPT, Perplexity, and Claude directly: "What is in the llms.txt of example.com?". If the model doesn't find it, it's irrelevant for citations. If it correctly summarizes the content, it's active.

Check 3: Bot Logs

Filter your server logs for user agents like GPTBot, PerplexityBot, ClaudeBot, Google-Extended. If these bots don't retrieve /llms.txt, you haven't reached them. Pattern: grep -i "GPTBot\|PerplexityBot" access.log | grep "llms.txt".

Quick Win for Today

10-minute task: 1) Use the generator above. 2) Upload llms.txt to your root. 3) Set robots.txt to Allow for the 4 bots. 4) Check bot logs a week later. You don't need a tool, no budget, no approval — you can do this today at noon.

Further reading: Optimize AI Overview — the complete guide for the layer above llms.txt, and GEO Pillar Guide for the overall context.

Häufige Fragen

Do I need to create llms.txt now?

If AI bots should access your content (for citation in ChatGPT, Perplexity, AI Overviews) → yes, highly recommended. If you want to explicitly prohibit AI crawling → also yes, otherwise everything is default-allow. Currently (May 2026), llms.txt is still a proposal, not an official standard, but Anthropic, OpenAI, and Perplexity have already announced support.<\/p>

Does llms.txt replace robots.txt?

No. robots.txt controls classic search crawlers (Googlebot, Bingbot). llms.txt controls AI bots\/LLM training crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended). You need both.<\/p>

Diesen Artikel teilen
LinkedIn X
📄

Diesen Leitfaden als PDF mitnehmen

Kostenlos per E-Mail. Der Artikel bleibt frei lesbar — du bekommst zusätzlich die kompakte PDF-Version zum Abspeichern und Teilen.

Double-Opt-in · 1 Bestätigungs-Mail · jederzeit abbestellbar.