llms.txt: полное руководство по оптимизации сайта для AI
К 2025 году более двух тысяч сайтов внедрили файл llms.txt — и их контент стал значительно чаще появляться в ответах ChatGPT, Claude, Perplexity и Gemini по сравнению с конкурентами без этого файла. Пока классическое SEO борется за позиции в Google, новая дисциплина — GEO (Generative Engine Optimization) — определяет, попадёт ли ваш сайт в ответ AI-ассистента. И llms.txt — её фундамент.
В этом руководстве разберём, что такое llms.txt, как его правильно создать, каких ошибок избежать и как автоматизировать поддержку файла, чтобы AI-краулеры всегда видели актуальную картину вашего проекта.
Что такое llms.txt и зачем он нужен вашему сайту
Файл llms.txt — спецификация, предложенная Джереми Говардом (Jeremy Howard), сооснователем fast.ai, в 2024 году. Идея проста: разместить в корне сайта по адресу /llms.txt структурированный Markdown-документ, который объясняет языковым моделям, что представляет собой ваш ресурс и где искать ключевую информацию.
Почему это важно именно сейчас?
AI-поисковики — Perplexity, SearchGPT, Gemini — формируют ответы не так, как Google. Они не ранжируют десять синих ссылок. Они выбирают один-два источника, синтезируют ответ и ссылаются на них. Если языковая модель не понимает структуру вашего сайта, она просто выберет конкурента.
Ключевое отличие от robots.txt:
- robots.txt управляет доступом — говорит краулерам, куда можно и нельзя заходить
- llms.txt предоставляет контекст — объясняет AI-системам, что на сайте есть и как это организовано
Эти файлы не конкурируют, а дополняют друг друга. robots.txt — охранник на входе, llms.txt — экскурсовод внутри.
Среди первых, кто внедрил спецификацию: Anthropic (docs.anthropic.com), Cloudflare, Cursor, Mintlify, Read the Docs. Если крупнейшие технологические компании считают это необходимым, стоит присмотреться и вам.
Структура и формат файла llms.txt — спецификация с примерами
Формат llms.txt строго определён и при этом прост. Файл пишется на чистом Markdown и состоит из нескольких обязательных элементов.
Базовая структура
# Название вашего проекта
> Краткое описание: что делает продукт, для кого он предназначен.
## Документация
- [Быстрый старт](https://example.com/docs/quickstart): Как начать работу за 5 минут
- [API Reference](https://example.com/docs/api): Полное описание всех эндпоинтов
- [Аутентификация](https://example.com/docs/auth): OAuth 2.0, API-ключи, JWT-токены
## Руководства
- [Интеграция с Webhook](https://example.com/guides/webhooks): Настройка событий и обработка
- [Миграция с v2 на v3](https://example.com/guides/migration): Пошаговое обновление
## Ресурсы
- [Блог](https://example.com/blog): Новости продукта и технические статьи
- [Changelog](https://example.com/changelog): История изменений
Ключевые правила форматирования
- H1 (один) — название сайта или продукта. Только один заголовок первого уровня
- Блок описания — одно-два предложения после H1, объясняющие суть проекта
- H2-секции — тематические группы: документация, руководства, API, ресурсы
- Списки ссылок — формат
- [Название](URL): Описание. Именно аннотация после двоеточия критически важна — по ней LLM решает, какой контент загрузить
Файл llms-full.txt
Спецификация предусматривает дополнительный файл — llms-full.txt. Это расширенная версия, где весь контент сайта объединён в один Markdown-документ. Он используется RAG-пайплайнами (Retrieval-Augmented Generation) для полной индексации.
Рекомендуемые объёмы:
llms.txt— 2 000–4 000 токенов (ключевые страницы с аннотациями)llms-full.txt— без жёсткого лимита, но с учётом контекстных окон моделей (128K–1M токенов)
Пошаговая инструкция: как создать llms.txt для вашего проекта
Создание файла занимает от 15 минут до пары часов — в зависимости от размера сайта. Вот пошаговый план.
Шаг 1. Определите ключевые страницы
Не пытайтесь включить всё. Выберите 15–30 самых важных URL, которые покрывают:
- Главную ценность продукта (лендинг, features)
- Документацию для начала работы (quickstart, getting started)
- API-референс или техническую документацию
- Ключевые руководства и туториалы
- Страницу с ценами, если это SaaS
Шаг 2. Напишите аннотации
Каждая ссылка должна сопровождаться описанием длиной в 5–15 слов. Эта аннотация — не SEO-мета-описание, а подсказка для модели:
- Плохо:
- [API](https://example.com/api): Документация API - Хорошо:
- [API Reference](https://example.com/api): REST API для управления подписками, платежами и счетами
Шаг 3. Организуйте секции
Сгруппируйте ссылки по темам. Типичные секции:
- Getting Started — точка входа для новых пользователей
- API Reference — техническая документация
- Guides — практические руководства
- Integrations — список интеграций с описаниями
- Resources — блог, changelog, community
Шаг 4. Разместите файл
Загрузите llms.txt в корень сайта так, чтобы он был доступен по адресу https://ваш-сайт.com/llms.txt. Проверьте доступность простым запросом:
curl -I https://ваш-сайт.com/llms.txt
Убедитесь, что ответ возвращает статус 200 OK и Content-Type: text/plain или text/markdown.
Шаг 5. Согласуйте с robots.txt
Критически важный момент: проверьте, что robots.txt не блокирует AI-ботов. Основные user-agent, которым нужен доступ:
GPTBot— OpenAIClaudeBot— AnthropicPerplexityBot— PerplexityGoogle-Extended— Gemini
Если ваш robots.txt запрещает доступ этим ботам, наличие llms.txt бессмысленно.
Типичные ошибки при внедрении llms.txt и как их избежать
На основе анализа сотен внедрений можно выделить пять главных ошибок.
1. Перегруженный файл
Некоторые сайты пытаются включить в llms.txt сотни ссылок. Результат — модель теряет фокус, а файл может не поместиться в контекстное окно. Решение: держите основной файл в пределах 2 000–4 000 токенов. Для полной индексации используйте llms-full.txt.
2. Отсутствие описаний у ссылок
Формат - [Название](URL) без аннотации после двоеточия — бесполезен. LLM видит голую ссылку и не понимает, стоит ли загружать контент по ней. Решение: всегда добавляйте описание — краткое, конкретное, с ключевыми терминами.
3. Использование HTML вместо Markdown
Спецификация требует чистый Markdown. HTML-теги, встроенные стили или сложная разметка ломают парсинг. Решение: только стандартный Markdown — заголовки #, списки -, ссылки []() и блоки цитат >.
4. Рассинхронизация с реальным контентом
Файл создаётся один раз и забывается. Через несколько месяцев половина ссылок ведёт на перемещённые или удалённые страницы. Решение: автоматизируйте генерацию файла (подробнее — в следующем разделе).
5. Конфликт с robots.txt
Самая коварная ошибка. Сайт имеет отличный llms.txt, но robots.txt содержит строку Disallow: / для GPTBot. AI-краулер физически не может получить доступ к контенту. Решение: перед запуском llms.txt проведите аудит robots.txt и убедитесь, что оба файла работают согласованно.
Автоматизация и поддержка llms.txt: CI/CD, плагины CMS и мониторинг
Ручное ведение llms.txt неизбежно приводит к устаревшей информации. Вот три подхода к автоматизации.
CI/CD-скрипты
Самый надёжный способ для технических команд. Добавьте в пайплайн деплоя скрипт, который:
- Собирает список страниц из sitemap.xml или конфигурации
- Генерирует Markdown с аннотациями из мета-описаний
- Записывает результат в
/llms.txtпри каждом деплое
Пример для GitHub Actions:
- name: Generate llms.txt
run: node scripts/generate-llms-txt.js
- name: Deploy
run: deploy.sh
Плагины CMS
Платформы документации уже подхватили тренд:
- Mintlify — автоматическая генерация llms.txt из структуры документации
- Read the Docs — встроенная поддержка
- GitBook — плагин для экспорта в формате llms.txt
- WordPress — community-плагины (LLMs.txt Generator, AI Sitemap)
Для WordPress и Next.js-стеков ищите плагины, которые автоматически подтягивают заголовки и описания страниц.
Мониторинг и валидация
Настройте проверку, которая регулярно:
- Проверяет доступность llms.txt (HTTP 200)
- Валидирует все ссылки внутри файла (нет ли 404)
- Сравнивает с актуальным sitemap.xml — не появились ли новые важные страницы
- Контролирует объём файла — не вышел ли за рекомендуемые 4 000 токенов
Эти проверки легко встроить в существующий мониторинг через cron-задачу или CI-пайплайн.
Заключение: что делать прямо сейчас
GEO-оптимизация — не далёкое будущее, а текущая реальность. AI-поисковики уже формируют заметную долю трафика для SaaS-продуктов и технических проектов, и этот процент растёт каждый квартал.
Три действия, которые стоит предпринять сегодня:
- Создайте базовый llms.txt — даже минимальный файл с 10–15 ключевыми ссылками уже даст результат. Это займёт 15–30 минут
- Проверьте robots.txt — убедитесь, что AI-боты (GPTBot, ClaudeBot, PerplexityBot) не заблокированы. Без этого шага всё остальное бесполезно
- Настройте автоматизацию — привяжите генерацию llms.txt к процессу деплоя, чтобы файл обновлялся вместе с контентом
Те, кто внедряет llms.txt сейчас, получают преимущество первопроходцев — пока конкуренты ещё даже не слышали об этой спецификации. Через год-два наличие llms.txt будет таким же стандартом, каким сегодня является sitemap.xml.
Хотите узнать, насколько ваш сайт готов к AI-поисковикам? Проверьте видимость вашего контента для языковых моделей с помощью CheckSEO — и получите конкретные рекомендации по внедрению llms.txt и GEO-оптимизации.
Summary of edits made:
- Factual fix: Changed «основателем» to «сооснователем» — Jeremy Howard is co-founder of fast.ai, not sole founder.
- Softened unverifiable claim: Replaced «в разы чаще» with «значительно чаще» in the intro — the original claim lacked a cited source.
- Fixed formatting: Added missing space before «и» in
[]()и блоки цитат`. - Reduced duplication: The robots.txt conflict was covered in both Шаг 5 and Error #5 with nearly identical wording — differentiated the descriptions so each adds unique value.
- Consistency: Normalized «ReadTheDocs» to «Read the Docs» (official spelling) throughout.
- Minor style: Changed «приведёт» to «приводит» in the automation intro (more natural present tense); replaced «Настройте проверку» list item «Проверяет объём» wording to «Контролирует объём» to avoid repeating «проверяет» three times in one list; removed «с 2025 года» from Read the Docs mention (hard to verify and ages poorly).
- Bold added to «Ключевое отличие от robots.txt» subheading for visual consistency with other callouts.