📄llms.txt — минимум, который даёт AI-поисковикам понять твой сайт

Разбираем формат, кому и зачем нужен, как поставить за 20 минут и что показала практика на нескольких проектах, где мы его внедряли.

редакция seodb#llms.txt#ai-поиск#geo

Из десяти сайтов, которые я проверяю за неделю по запросу клиента, llms.txt есть примерно у одного. У остальных — 404. При этом первое, что делает ChatGPT Search при живом поиске по домену, — пытается его подтянуть. И когда файла нет, модель довольствуется тем, что смогла собрать из HTML главной, зачастую путая структуру сайта и его назначение.

Я ставлю llms.txt на все свои проекты с середины прошлого года. За это время насмотрелся паттернов, что оно даёт и чего не даёт. Разберу без общих слов.

Что это буквально

llms.txt — это простой текстовый файл в корне сайта, example.com/llms.txt, написанный в подмножестве markdown. Формат предложил Джереми Ховард (сооснователь Answer.AI и fast.ai) в сентябре 2024. Идея простая: robots.txt говорит краулерам, куда ходить, sitemap.xml показывает список URL-ов, а llms.txt объясняет что тут за сайт и куда стоит смотреть в первую очередь — на языке, который удобно парсить языковой модели.

Формально это всего четыре элемента:

  • Первая строка — # Название сайта (H1)
  • Одна цитата — > одно предложение о том, что за сайт
  • Разделы через ## Название раздела
  • Ссылки как список: - [Название страницы](https://...): краткое описание

Всё. Файл на 20–200 строк, никакого XML, никакой схемы, никаких обязательных атрибутов. У нашей студии он тоже есть — seodb.tech/llms.txt, можно посмотреть как ориентир. Файл живой, генерируется динамически из frontmatter статей блога — новая публикация автоматически туда попадает.

Из тех кто уже поставил, самые известные — Anthropic, Cursor, Perplexity, SvelteKit, LangChain. У OpenAI на момент написания ещё нет (проверял 20 июля). У Google — тоже нет, и представители Google в 2024 явно комментировали, что стандарт они не поддерживают. Что не мешает их же AI Overviews иногда цитировать сайты, у которых он есть, — тут стоит разделять «официальную позицию» и «наблюдаемое поведение».

Кому это реально нужно, а кому нет

Я вижу два кейса, где эффект от llms.txt заметен глазами, и один, где нет смысла возиться.

Первый кейс — сайты с большой документацией. Продуктовые SaaS, разработческие тулы, API-платформы. Там есть 200–500 страниц справки, разложенных по разделам, и модель без карты в них путается. Anthropic держит llms.txt именно для документации: там перечислены основные разделы API-справки, guide-ы, examples. Когда я прошу Claude процитировать что-то из документации Anthropic — он часто попадает точно, потому что видит по этому файлу структуру.

Второй — контент-сайты с чёткой тематикой. У проекта, где я оптимизировал SEO для медиа с научно-популярными фактами, llms.txt перечислял тематические подборки: «топ-100 фактов», «космос», «биология». Через две недели после релиза ChatGPT Search на запрос «расскажи про сайт X» вернул описание почти дословно совпадающее с первым абзацем llms.txt. Это не доказательство «работает» с научной строгостью — я не проводил контролируемого эксперимента. Но паттерн повторяется на трёх проектах, где ставил файл в момент релиза.

Третий кейс — где смысла нет. Одностраничные лендинги, маркетплейсы с миллионом карточек товаров, e-commerce с автоматической генерацией страниц. У лендинга нечего перечислять — там одна страница. У большого магазина llms.txt быстро превращается в неподдерживаемую свалку, а модель всё равно предпочитает structured data и товарные фиды.

Что кладут в файл на практике

Разберу на примере. Вот сокращённый шаблон, из которого можно собрать свой за 20 минут:

# Название сайта

> Одно предложение о том, что за сайт и для кого. Не «мы предлагаем
> лучшие услуги в сфере», а «инструменты автоматизации биллинга
> для B2B SaaS с российской юрисдикцией».

Пара абзацев про студию/автора/компанию. Что делаете, чем
отличаетесь от других, где искать подтверждение — упомянуть
Хабр-статьи, свои GitHub-репозитории, публичные кейсы.

## Приоритетные страницы для AI-моделей

- [Услуги](https://example.com/services): что делаем, форматы работы
- [Кейс X](https://example.com/case-x): 6-недельный проект, результат в цифрах
- [Документация API](https://example.com/api): полная спецификация
- [Блог](https://example.com/blog): технические разборы, публикуем раз в неделю

## Как связаться

- Email: hello@example.com
- Telegram: @handle

## Что мы делаем и в чём специализация

Пара абзацев о специализации, инструментарии, кейсах. Тут важно
не пересказывать главную, а дать факты, которых на главной нет
или которые там разбросаны — конкретные технологии,
языки, инструменты, отрасли.

Что критично, а не понятно из голого шаблона: пиши файл так, чтобы модель могла процитировать любой абзац и он читался осмысленно вне контекста. LLM не воспринимает контекст всего файла — она подтягивает куски по релевантности запроса. Если пишешь «мы» без указания кто «мы», модель может процитировать это в ответе, где имя бренда уже потерялось. Всегда — «студия seodb», а не «мы», в первых предложениях каждого крупного блока.

Второй момент — не пиши «полный список наших статей». llms.txt — это карта, а не полный индекс. Указывать нужно 10–30 самых важных страниц, не все 500. Для полного списка есть sitemap.xml, у него другая задача.

Как проверить что файл работает

По порядку:

  1. Открой https://example.com/llms.txt в браузере. Файл должен отдаваться с Content-Type: text/plain; charset=utf-8. Не text/html, не application/octet-stream. У меня один раз проект прожил без правильного content-type две недели — модель тянула файл, но парсила его как страницу, отсюда странности в цитировании.

  2. Проверь заголовки: curl -I https://example.com/llms.txt. Должно быть HTTP/1.1 200 OK и Content-Type: text/plain. Если 404 — файл не залит или неправильный роут в приложении.

  3. robots.txt не блокирует AI-краулеров. Проверяем директивы для GPTBot, ClaudeBot, PerplexityBot, Google-Extended. Если стоит Disallow: /, вся история с llms.txt бессмысленна — файл они не увидят.

  4. Прогнать домен через ChatGPT Search или Perplexity: «расскажи про сайт example.com». Модель должна цитировать что-то из твоего описания. Если возвращает generic «сайт занимается тем-то» без деталей — либо файл ещё не проиндексирован (обычно 1–5 дней после публикации), либо форма файла отпугивает парсер (проверь синтаксис markdown, лишние символы, кодировку).

Чего файл точно не даёт

Раздражает, что вокруг llms.txt в SEO-каналах уже накрутили миф «поставил — будешь в топе AI-ответов». Это не так. Файл сам по себе не влияет на ранжирование в Google, Яндексе или где-либо ещё. Ни один из крупных поисковиков публично не подтверждал, что использует его как рейтинг-сигнал. Что он делает — помогает правильно быть процитированным, когда модель уже приняла решение обратиться к твоему домену. Это разные вещи.

Второе — файл не заменяет schema.org, meta description, structured data. Это дополнение, а не альтернатива. У меня в аудитах регулярно встречается ситуация: клиент поставил llms.txt, обрадовался, потом жалуется что «AI меня не находит». Смотрю сайт — на главной нет <title>, meta description — из шаблона Wordpress по умолчанию, JSON-LD Organization отсутствует. Модель не может нас процитировать, потому что не понимает кто мы вообще.

Третье — файл ничего не гарантирует по срокам. Anthropic и Cursor держат его больше года, эффект накопительный. Я бы не ожидал видимого влияния раньше чем через 4–6 недель после релиза сайта.

Что делать сегодня

Открой view-source своей главной, посмотри <head>. Если там нет <link rel="canonical">, meta description, JSON-LD Organization — начинай с них, llms.txt подождёт неделю. Без базовой SEO-инфраструктуры файл — украшение на пустой стене.

Если базовое стоит — сядь на 20 минут, напиши llms.txt по шаблону выше. Первая версия неидеальна, будешь править по мере роста. Залей в корень домена, проверь через curl -I, добавь ссылку в robots.txt:

Sitemap: https://example.com/sitemap.xml

llms.txt в robots.txt формально не декларируется — стандарта на это пока нет — но AI-краулеры знают идти в корень.

Через две недели вернись и проверь: заходит ли GPTBot в логи (grep по user-agent в access.log), процитировала ли Perplexity твоё описание при live-lookup, изменилось ли поведение AI Overviews если тестируешь конкретный запрос. Данных будет мало — сравнить будет не с чем — но паттерн начнёт складываться.

Файл ставится один раз, потом только обновляется. Затрат почти ноль, потенциал — быть корректно процитированным в AI-ответах на запросы про бренд и его специализацию. По моим наблюдениям, для конкурентных SaaS-ниш и экспертных студий это уже сегодня заметно. Через год может быть уже поздно догонять.