инструменты / сборка llms.txt / как устроен файл
Как устроен файл llms.txt
llms.txt — текстовый файл, написанный разметкой markdown.
По спецификации в нём идут по порядку: заголовок первого уровня с названием
сайта, строка-описание в блоке цитаты (со знака >), при
желании несколько абзацев пояснений, а дальше — разделы второго уровня,
и в каждом список ссылок вида [название](адрес) с пояснением
после двоеточия. Обязательная часть при этом ровно одна — заголовок; всё
остальное спецификация называет необязательным.
Мы проверили, как это выглядит в жизни. Взяли открытый каталог
llmstxt.site, где сайты
сами объявляют свой файл, и запросили все 1491 адрес подряд. Настоящим
файлом ответили 1215. Спецификации целиком соответствуют 630 из них — 51,9%.
Самая частая недоделка — нет строки-описания под заголовком: её нет
у 428 файлов, то есть больше чем у трети. А 178 файлов провалили бы
проверку llms.txt в PageSpeed, и почти всегда по одной
причине: в файле нет ни одной ссылки.
Две вещи, которых в русских статьях про этот файл пока нет.
Первая: 10 августа 2026 спецификация обновилась до версии 2 — и главное
её изменение в том, что страница теперь должна уметь сама сказать агенту,
какой llms.txt её описывает. Вторая: файла
llms-full.txt, про который часто пишут рядом, в спецификации
нет вообще — ни в первой версии, ни во второй.
Из чего состоит файл
Спецификация лежит на llmstxt.org, её автор — Джереми Ховард, первая публикация 3 сентября 2024 года. Порядок частей задан жёстко, и файл, который его нарушает, формально спецификации не соответствует, даже если читается человеком нормально.
- Необязательная метка кодировки (BOM) в самом начале.
- Заголовок первого уровня с названием сайта или проекта. Дословно: «This is the only required section» — единственная обязательная часть.
- Блок цитаты — короткое описание сайта, «containing key information necessary for understanding the rest of the file».
- Сколько угодно обычных абзацев и списков — что угодно, кроме заголовков. Это место для пояснений: чем сайт занимается, как читать ссылки ниже.
- Разделы второго уровня со списками ссылок. Ссылка
обязана быть markdown-ссылкой
[название](адрес), после неё можно поставить двоеточие и пояснение.
Раздел с именем Optional — соглашение, а не механика:
по нему складывают второстепенные ссылки, которые агент может пропустить,
когда контекст нужно сократить. В нашем замере такой раздел есть
у 263 файлов из 1215 — примерно у каждого пятого.
Вот как это выглядит на живом файле — это начало нашего собственного:
# Инструменты для сайта
> Бесплатные онлайн инструменты для проверки сайта без регистрации,
> сборка и проверка llms.txt, микроразметка Schema.org, товарный фид YML.
## Основное
- [Бесплатные инструменты для сайта](https://arivex.ru/): Сборка и проверка
файла llms.txt, проверка микроразметки, без регистрации.
- [Проверка микроразметки сайта](https://arivex.ru/mikrorazmetka/): Проверим
микроразметку Schema.org и Open Graph на странице.
Ссылки в файле должны быть полными — со схемой и доменом. Агент читает файл
в отрыве от сайта, и относительный адрес вроде /uslugi/
разрешить ему не от чего. В замере относительные ссылки нашлись
у 148 файлов из 1215.
Что изменила версия 2
Версия 2 вышла 10 августа 2026 года, и на llmstxt.org есть отдельная страница изменений. Формат файла она почти не тронула — заголовок, описание, разделы со ссылками остались теми же. Изменилось то, что вокруг файла.
- Появилась находимость. Самая частая просьба за два
года, по словам автора, звучала так: как агенту, стоящему на странице,
найти покрывающий её
llms.txt, не угадывая? Ответ версии 2 — стандартные отношения ссылок:rel="describedby"указывает наllms.txt, аrel="alternate" type="text/markdown"— на markdown-версию самой страницы. Объявить можно двумя способами: тегом<link>в разметке или заголовком ответаLink:. Заголовок удобнее тем, что настраивается на сервере или CDN и работает даже для не-HTML файлов. - Разрешён второй вид адреса markdown-версии. Версия 1
признавала только приписку к полному адресу
(
page.html.md). Часть издательских платформ вместо этого меняет расширение (page.md) — версия 2 разрешает оба вида. - Определено, что значит файл не в корне. Версия 1
разрешала класть
llms.txtв подпапку, но не говорила, что это означает. Теперь сказано: файл покрывает страницы под своим путём, а если подходит несколько файлов — берётся самый частный. Это же даёт участвовать тем, кто владеет только папкой, а не доменом. - Убрана механика разворачивания в контекст. Из
предложения ушёл инструмент
llms_txt2ctx, склеивавший файл в один большой кусок текста, а вместе с ним — особый смысл разделаOptional, который подсказывал такому инструменту, что можно выбросить. Сам раздел остался, но теперь это просто соглашение. - Прямо сказано, как файл используют. Агент смотрит или
ищет по
llms.txt, находит нужное и идёт по ссылкам — значит, ссылки должны вести на содержимое, удобное модели, а сам файл обязан оставаться достаточно коротким, чтобы поместиться в контекст.
Прижилось ли новое за три недели, мы тоже посмотрели: сходили на все
1215 страниц, которые покрывают найденные файлы, и прочитали и разметку,
и заголовки ответа. Ответили 1203. Хотя бы одно из двух отношений объявляют
145 из них — 12,1%. Но почти всё это markdown-версии страниц (133), которые
документационные платформы отдают и без всякой версии 2. А то самое
describedby, ради которого версию и выпускали, стоит
у 26 страниц — 2,2%. Мы к моменту этой статьи тоже его не объявляли;
теперь объявляем. Проверка файла заодно
смотрит и это: объявлен ли ваш файл на страницах и тот ли адрес указан.
Что лежит в 1215 живых файлах
Совокупность у замера особенная, и это надо держать в голове при чтении цифр: каталог перечисляет тех, кто файл завёл и о нём сообщил. Это не «сайты вообще», а лучший возможный случай — и тем показательнее, что почти половина файлов спецификации не соответствует.
| Что пришло | Адресов | Доля |
|---|---|---|
| Настоящий файл | 1215 | 81,5% |
| Ошибка 404 — файла больше нет | 85 | 5,7% |
| Связь не состоялась | 70 | 4,7% |
| Ошибка 403 — доступ закрыт | 65 | 4,4% |
| Код 200, а внутри HTML | 34 | 2,3% |
| Прочие коды ответа | 22 | 1,5% |
Дальше — только про те 1215, что ответили файлом. Слева наши замечания по спецификации, справа — сколько файлов их получили. Один файл может получить несколько замечаний сразу, поэтому доли не складываются в сто.
| Что нашли | Файлов | Доля от 1215 |
|---|---|---|
| Соответствует спецификации целиком | 630 | 51,9% |
| Нет строки-описания под заголовком | 428 | 35,2% |
| Заголовков первого уровня несколько | 143 | 11,8% |
| Есть относительные ссылки | 148 | 12,2% |
| Ни одной ссылки в файле | 169 | 13,9% |
| Ни одного раздела второго уровня | 103 | 8,5% |
| Нет заголовка первого уровня | 32 | 2,6% |
Отдельно про длину. Половина файлов укладывается в 8 246 знаков — это примерно две страницы текста, и для оглавления сайта нормально. Но 178 файлов из 1215 тяжелее 50 000 знаков, а самый большой в выборке весит 2 052 071 знак — это уже не оглавление, а выгрузка всего сайта в один файл. Спецификация версии 2 говорит про размер прямо: файл должен оставаться достаточно коротким, чтобы поместиться в контекст, а подробности живут за ссылками и забираются по необходимости.
Любопытная деталь про тех, на кого спецификация ссылается как на примеры: свои файлы держат OpenAI, Anthropic и Google. Мы прогнали все три через свою же проверку: у OpenAI файл чист, а у Anthropic и Google нет ровно того, чего не хватает трети остальных, — строки-описания под заголовком. Обязательной она не считается, но именно она объясняет агенту, куда он попал.
Ловушка: код 200, а внутри не файл
34 адреса из каталога и, как мы увидим ниже, ещё девять сайтов из русской
выдачи отвечают на запрос /llms.txt кодом 200 — но отдают HTML.
Внутри оказывается заглушка защиты от ботов, страница проверки посетителя
или просто главная страница сайта: так ведут себя сайты, отдающие свой
index.html на любой неизвестный адрес.
Для владельца это хуже, чем ничего. Проверка в PageSpeed устроена так:
если файла нет и сервер отвечает 404, проверка просто выключается
и в счёт не идёт — файл там пока необязателен. А вот содержимое, которое
ответило кодом 200, разбирается по правилам markdown, и типа содержимого
проверка не смотрит вовсе. HTML-страница markdown-заголовка вида
# Название обычно не содержит — и получает провал с пометкой
«File is missing a required H1 header». В нашем замере провал получили
все 34 таких ответа до одного.
Практический вывод простой: наличие файла нельзя проверять по коду ответа. Нужно смотреть, что именно пришло, — и это первое, что делает наша проверка.
Чем llms-full.txt отличается от llms.txt
Ничем — в том смысле, что в спецификации его нет. Мы перечитали текст
llmstxt.org версии 2 целиком: имя llms-full.txt там
не встречается ни разу. Это практика издательских платформ: рядом
с коротким llms.txt-оглавлением они выкладывают второй файл,
в который склеена вся документация сразу. В том же каталоге, откуда мы
брали выборку, такой файл объявлен у 358 адресов.
Логика за этим понятная: llms.txt — оглавление со ссылками,
и агенту надо сходить по ссылкам; llms-full.txt — всё
содержимое разом, одним запросом. Для документации библиотеки, которую
читает кодовый агент, второе бывает удобнее. Но версия 2 спецификации
описывает как раз обратный порядок работы — короткий файл плюс ссылки
на markdown-версии страниц, — и никакого «полного» файла в этой схеме нет.
Что из этого следует для обычного сайта. Заводить
llms-full.txt самому смысла мало: сайт услуг или магазин —
не документация, склеивать там нечего, а PageSpeed этот файл не смотрит.
Если платформа генерирует его сама — пусть лежит, вреда нет. А вот делать
его вместо llms.txt нельзя: проверка ищет файл строго
по имени.
Нужно ли прописывать llms.txt в robots.txt
Нет. Директивы для llms.txt в robots.txt не существует —
ни в стандарте robots.txt, ни в спецификации llms.txt. Карту сайта
в robots.txt указывают строкой Sitemap:, и по аналогии
многие ищут такую же строку для llms.txt; её нет.
Спецификация вообще разводит эти два файла по назначению: robots.txt сообщает автоматам, какой доступ к сайту считается приемлемым, а llms.txt используется по требованию — когда агенту нужна информация по теме, чтобы помочь человеку. Разные вопросы, разные адресаты.
Способ «объявить» файл всё-таки появился — только не в robots.txt,
а в версии 2, отношением rel="describedby" со страницы:
<link rel="describedby" href="/llms.txt" type="text/plain">
Либо тем же самым в заголовке ответа сервера:
Link: </llms.txt>; rel="describedby"
Обязательным это не является, и файл в корне агент найдёт и так — по фиксированному адресу, как robots.txt. Но если файл лежит не в корне, а покрывает раздел, узнать о нём иначе неоткуда.
А в рунете это кто-нибудь ставит
Чтобы ответить не на глаз, мы взяли выборку соседнего замера: топ-20
Яндекса по восьми коммерческим запросам — окна, кровля, потолки,
спецтехника, стоматология, цветы, детская одежда, корм для собак, —
всего 115 доменов после склейки. И запросили /llms.txt
у каждого.
| Что ответили | Доменов |
|---|---|
| Ошибка 404 — файла нет | 91 |
| Код 200, а внутри HTML | 9 |
| Ошибка 403 — доступ закрыт | 7 |
| Настоящий файл | 5 |
| Прочее (503, 410, нет связи) | 3 |
Пять доменов из 115. И три файла из пяти — те самые выгрузки всего каталога: 43, 63 и 90 тысяч знаков против медианных восьми, в одном из них 425 ссылок. Ещё в одном ссылок нет ни одной — этот файл проверку PageSpeed не пройдёт. То есть в рунете файл пока не ставят почти никто, а кто ставит — чаще сваливает туда каталог целиком.
Второе число тут важнее первого: девять сайтов отвечают на
/llms.txt HTML-страницей, и их владельцы об этом, скорее
всего, не знают. У них проверка в PageSpeed не выключится, как у тех
91, а покажет провал.
Где этот замер слаб
Каталог — не интернет. Доля «сколько сайтов вообще держат llms.txt» по нашей выборке не считается и здесь не называется: 1491 адрес — это те, кто файл завёл и внёс в каталог. Все выводы про качество относятся именно к ним.
Только файлы в корне. Список адресов мы собирали из
каталога, а он перечисляет корневые /llms.txt. Файлы
в подпапках — например, /docs/llms.txt, которые версия 2
прямо разрешает и на которые сама же ссылается примером, — в выборку
не попали.
Часть отказов может быть реакцией на нас. 65 адресов ответили 403, 70 не ответили вовсе. Мы ходили с честным именем бота и не пытались его прятать, но защита сайта могла срабатывать именно на незнакомого робота, а обычному браузеру файл при этом отдаваться. Считать эти адреса «файла нет» мы не стали, поэтому доли качества везде считаются от 1215 ответивших, а не от 1491.
Каталог мог устареть. 85 адресов сегодня дают 404. Это либо снятые файлы, либо ошибки в самом каталоге; различить одно от другого мы не можем.
Как проверить свой файл
Пошагового разбора здесь не будет: проверка — дело инструмента, а не текста. Откройте проверку llms.txt и вставьте адрес сайта — мы скачаем файл, покажем отдельно вердикт PageSpeed и отдельно замечания по спецификации. Это разные вещи: PageSpeed устроит заголовок и одна ссылка, а спецификация хочет ещё описание, разделы и полные адреса.
Если файла нет вовсе, генератор соберёт его по вашей карте сайта — заголовки страниц и адреса он расставит сам, а описание под заголовком стоит дописать руками: как видно по замеру, именно его чаще всего и не хватает.
Чего делать не надо
Считать файл пропуском в ответы нейросетей. Справка
Google про ИИ-функции поиска говорит обратное и перечисляет через запятую
и файлы, и разметку: «You don't need to create new machine readable files,
AI text files, or markup to appear in these features». Мы разбирали это
подробно и по первоисточникам в
соседней статье.
Польза у llms.txt своя — это указатель по сайту для агента,
который пришёл за ответом, и одна из проверок PageSpeed.
Сваливать в файл весь сайт. Каждый седьмой файл в замере тяжелее 50 000 знаков, а рекордсмен — больше двух миллионов. Это ровно то, против чего написана спецификация: агент должен прочитать оглавление целиком и дёшево, а подробности забрать по ссылкам, если понадобятся. Сотня осмысленных ссылок с пояснениями работает лучше, чем выгрузка всех страниц.
Оставлять относительные ссылки. Так сделано у 148 файлов
из 1215. Файл читают в отрыве от сайта, и адрес /uslugi/
из него разрешить не от чего — нужны полные адреса со схемой и доменом.
Заводить файл и забывать про него. 85 адресов из каталога сегодня отдают 404, ещё 34 — HTML вместо файла. Файл живёт ровно до следующей переделки сайта, и проверять его стоит тогда же, когда проверяете robots.txt и карту сайта.
Соберём и внедрим файл за вас — это услуга студии.