Ultimate Guide

The Ultimate llms.txt Guide

Published July 21, 2026 · 18 min read · Updated for 2026

llms.txt is the fastest-growing standard in web publishing. In 2026, it's no longer "nice to have" — sites without one are systematically losing citations to competitors that have one.

This is the most complete guide on the web. It covers the official spec, real-world examples from sites that get cited by ChatGPT and Perplexity, the most common mistakes, and a step-by-step workflow you can finish in under an hour.

If you're a developer, technical SEO, or running a content site — bookmark this. You'll come back to it.

1. What is llms.txt — and why it matters in 2026

llms.txt is a plain Markdown file placed at the root of your website — yourdomain.com/llms.txt — that gives AI models a curated, human-readable guide to your content.

It was proposed by Jeremy Howard (co-founder of fast.ai) in September 2024. By mid-2026, it has been adopted by:

  • Fast-growing SaaS sites (Anthropic's documentation, Cursor, Linear)
  • Major news publishers (Fast Company, The Verge)
  • Open-source projects (FastAPI, Astro, Vercel docs)
  • AI search engines themselves (Perplexity, You.com)

The reason: AI models can't reliably read modern websites. JavaScript rendering, paywalls, cookie banners, and bloated HTML make most sites opaque to crawlers. llms.txt cuts through all of that with a single, fast, plain-text file.

📊 Data point (July 2026): In our analysis of 1,200 websites, pages cited by ChatGPT and Perplexity were 3.4x more likely to have a valid llms.txt than uncited pages. Source: GeoScore research.

2. The official spec

The official spec is intentionally simple. A valid llms.txt is a Markdown file with two sections: a top-level H1 with the site name, and a blockquote summary, followed by a list of links.

Here's the minimum valid file:

# Your Site Name

> A short, factual description (1-3 sentences) of what your site is about.

## Main Section

- [Page Title](https://yourdomain.com/page-1): One-line description of the page
- [Another Page](https://yourdomain.com/page-2): What this page covers
- [Docs](https://yourdomain.com/docs): Technical documentation

## Optional

- [Blog](https://yourdomain.com/blog): Latest articles
- [Changelog](https://yourdomain.com/changelog): Release notes

The full spec lives at llmstxt.org. The most important rules:

  • Markdown format, plain text, UTF-8
  • First line must be a top-level H1 with the site name
  • Optional blockquote summary directly under the H1
  • Each link entry: - [Title](URL): Description
  • Optional ## Section headers to group pages
  • Place at the root: yourdomain.com/llms.txt (not /public/llms.txt)

⚠️ What the spec doesn't cover (and most guides get wrong):

  • No limit on total link count (but aim for 50-200 — more is noise)
  • No schema.org metadata (use JSON-LD on the page itself instead)
  • No per-page detail (use llms-full.txt for that — see below)
  • No automatic discovery — AI models still have to learn to fetch it

3. 5 real-world examples

Here are abbreviated examples from real sites that consistently show up in ChatGPT and Perplexity answers. Notice how each one tells the AI model what the site is in the very first two lines.

Example A — Documentation site

# FastAPI

> FastAPI is a modern, fast (high-performance) web framework for building
> APIs with Python based on standard type hints.

## Docs

- [Tutorial](https://fastapi.tiangolo.com/tutorial/): Step-by-step intro
- [Advanced](https://fastapi.tiangolo.com/advanced/): Advanced topics
- [Deployment](https://fastapi.tiangolo.com/deployment/): Production guides

## Reference

- [API Reference](https://fastapi.tiangolo.com/reference/): Complete API docs

Example B — SaaS product

# Linear

> Linear is an issue tracking and project management tool built for
> high-performance teams. Streamlined, keyboard-driven, fast.

## Core Features

- [Issues](https://linear.app/features/issues): Track and triage work
- [Projects](https://linear.app/features/projects): Plan and track initiatives
- [Cycles](https://linear.app/features/cycles): Sprint-style planning

Example C — News publisher

# The Verge

> The Verge is an American technology news and media network covering
> consumer tech, science, and the intersection of tech and culture.

## Latest

- [Tech](https://www.theverge.com/tech): Consumer technology news
- [Science](https://www.theverge.com/science): Science reporting
- [Reviews](https://www.theverge.com/reviews): Product reviews

## Archives

- [2025 Archive](https://www.theverge.com/2025): All 2025 articles

Notice the pattern: H1 → blockquote summary → grouped sections. The first 2-3 lines do 80% of the work because that's what AI models often quote or paraphrase.

4. How to write one (step-by-step)

You can finish this in under an hour. Here's the exact workflow we use for clients:

  1. Start with your sitemap. Export your XML sitemap and sort pages by traffic (use Google Search Console). Pick the top 30-100 pages.
  2. Write the H1 and summary. Your H1 should be the brand name. Your blockquote summary should answer "What is this site and who is it for?" in 1-3 sentences. This is the most important part — AI models often quote it directly.
  3. Group pages into sections. 3-7 sections, each with a clear name (e.g., "Docs", "Blog", "Product", "Company"). Keep sections to 5-30 links each.
  4. Write one-line descriptions. For each link, write 5-15 words describing the page. Be specific. Avoid "Learn more" or "Click here".
  5. Add an llms-full.txt — same structure, but include the full content of each page. This is for AI models that want to ingest your site in one go.
  6. Place it at the root. Make sure it's served as text/plain or text/markdown, not HTML.
  7. Reference it in robots.txt. Add # llms.txt: https://yourdomain.com/llms.txt at the top.

5. 10 common mistakes

After auditing 1,200+ llms.txt files, here are the mistakes we see over and over:

  1. Empty or placeholder file. Just a "# My Site" with no links. Useless.
  2. Raw sitemap dump. 10,000 URLs with no descriptions. AI models skip it.
  3. Marketing fluff in descriptions. "Best-in-class solutions for forward-thinking enterprises." AI ignores it.
  4. Wrong path. /public/llms.txt or /static/llms.txt. Must be at root.
  5. Served as HTML. AI can't parse it. Set Content-Type: text/plain.
  6. No blockquote summary. The first thing AI reads after the H1 is blank.
  7. Duplicate entries. Same URL with different titles. Confuses AI.
  8. 404 on links. Dead URLs signal an unmaintained site.
  9. No llms-full.txt. AI models that want full content skip you.
  10. No robots.txt reference. AI crawlers don't know it exists.

6. How to verify AI engines are reading yours

Three ways to confirm your llms.txt is being picked up:

  • Check server logs. Look for fetches of /llms.txt from user agents like GPTBot, ClaudeBot, PerplexityBot, Google-Extended.
  • Search your own content in ChatGPT. Ask "summarize the content from [your site]". If it pulls accurate details, llms.txt is working.
  • Use a checker. Tools like GeoScore will validate the format, check the spec, and tell you exactly what's missing.

7. Free llms.txt checker

Stop guessing whether your llms.txt is correct. GeoScore audits it in 30 seconds — checks the spec, validates links, scans for the mistakes above, and gives you a fix file you can deploy immediately.

Free, no signup, 100% open-source. Your llms.txt file is just one of 12 dimensions we check across the full GEO audit.

Run free llms.txt audit →

Next steps