Перейти к содержимому
Выберите тему

Проверка llms.txt и разметки

Как проверить llms.txt, llms-full.txt, Markdown-версии страниц и структурированные данные - код ответа, тип содержимого, структура, ссылки, валидаторы Google и Яндекса и типичные ошибки

Common Crawl разобрал 584 тысячи файлов llms.txt, найденных в сети. Значительная часть из них не работает как задумано.

успешных ответов на /llms.txt оказались HTML-страницей
40%
Common Crawl, 31.08.2026
файлов не содержат ни одной ссылки
23%
Common Crawl, 31.08.2026
файлов имеют полную структуру: заголовок, описание, секции
50%
Common Crawl, 31.08.2026

Самая частая поломка незаметна владельцу: сайт отвечает на /llms.txt кодом 200, но отдаёт главную страницу или страницу «не найдено».

  1. Адрес https://сайт/llms.txt отвечает кодом 200 без цепочки перенаправлений.
  2. Тип содержимого text/plain или text/markdown, кодировка UTF-8.
  3. В ответе текст, а не HTML. Первая строка начинается с # .
  4. Заголовок первого уровня один.
  5. Под заголовком есть краткое описание, строка начинается с > .
  6. Ссылки записаны как - [Название](адрес): пояснение.
  7. Адреса в ссылках абсолютные и отвечают 200.
  8. В файле нет закрытых страниц, черновиков и адресов с параметрами.
  9. Файл помещается в разумный объём: это карта, а не весь сайт.
  10. robots.txt не закрывает файл от роботов, которым он адресован.
Окно терминала
curl -sI https://example.ru/llms.txt
curl -s https://example.ru/llms.txt | head -n 5

В первой команде смотри строки HTTP и content-type. Во второй первая строка должна начинаться с решётки.

Проверить все ссылки файла разом:

Окно терминала
curl -s https://example.ru/llms.txt \
| grep -oE '\]\(https?://[^)]+\)' | tr -d '()]' \
| while read -r url; do
printf '%s %s\n' "$(curl -s -o /dev/null -w '%{http_code}' "$url")" "$url"
done

Правила формата: формат файла, секции.

  • Отвечает 200, тип текстовый.
  • Содержит текст страниц, а не список ссылок.
  • Размер известен. Файл в десятки мегабайт агент целиком не прочитает.
  • Собран из того же содержимого, что и сайт, и обновляется вместе с ним.
Окно терминала
curl -sI https://example.ru/llms-full.txt | grep -i content-length

Когда этот файл нужен, а когда нет: Что такое llms-full.txt.

Окно терминала
curl -sI -H 'Accept: text/markdown' https://example.ru/docs/install/
curl -sI https://example.ru/docs/install/ | grep -i '^link'
curl -s https://example.ru/docs/install/ | grep -iE 'rel="(alternate|describedby)"'
  • На запрос с Accept: text/markdown или на адрес с .md приходит текст, а не HTML.
  • Адрес из rel="alternate" отвечает 200.
  • Адрес из rel="describedby" ведёт на существующий llms.txt.

Подробно: Markdown-версии страниц, обнаружение.

Инструмент Что проверяет Адрес
Rich Results Test какие расширенные результаты Google может показать, ошибки и предупреждения search.google.com/test/rich-results
Schema Markup Validator соответствие словарю Schema.org без привязки к Google validator.schema.org
Валидатор микроразметки Яндекса как разметку видит Яндекс webmaster.yandex.ru/site/tools/microtest/
Search Console, Вебмастер ошибки разметки на всём сайте со временем отчёты об улучшениях и о разметке
  1. Блок application/ld+json есть в ответе сервера, а не появляется после скриптов.
  2. JSON корректен: проверка открывается без ошибки разбора.
  3. Тип соответствует странице: товар - Product, статья - BlogPosting или Article.
  4. Обязательные свойства заполнены. Для товара это название, предложение, цена, валюта, наличие.
  5. Значения совпадают с видимой страницей: цена, наличие, автор, дата.
  6. На странице одно описание каждой сущности, без дубля от темы.
  7. Хлебные крошки в разметке совпадают с крошками на странице.
  8. Проверены страницы разных видов: товар с вариантами, товар без остатка, статья, главная.
Окно терминала
curl -s https://example.ru/product/kettle/ \
| grep -c 'application/ld+json'

Ноль значит, что в ответе сервера разметки нет. Больше единицы - повод посмотреть, не дублируются ли сущности.

Какие типы нужны и что в них должно быть: Структурированные данные и JSON-LD.

Когда подходит
На /llms.txt приходит код 200, но это HTML
Ловушка
Сайт отдаёт главную или страницу ошибки на любой неизвестный адрес. Lighthouse и агент видят файл, которого нет.
Где посмотреть
Тип содержимого text/html, первая строка начинается с тега.
Когда подходит
Ссылки в файле относительные или ведут на старые адреса
Ловушка
Агент читает файл вне сайта и не может собрать адрес. Часть ссылок отвечает 404.
Где посмотреть
В списке есть пути без домена или адреса, которые перенаправляют.
Когда подходит
Цена в разметке не равна цене на странице
Ловушка
Разметку вывела тема из одного поля, а цену на экране показывает скидочный модуль из другого.
Где посмотреть
Валидатор ошибок не показывает: он проверяет форму, а не правду.
Когда подходит
Файл создан один раз и больше не обновляется
Ловушка
Генератор запускали вручную. Сайт изменился, карта осталась прежней.
Где посмотреть
В файле есть страницы, которых уже нет, и нет новых разделов.

Валидатор подтверждает форму. Он не знает, верна ли цена, жив ли автор и читает ли кто-нибудь файл.

Читают ли файл на самом деле, видно только в журналах сервера: Как измерить видимость в AI.

Lighthouse тоже проверяет llms.txt, но только сам факт ответа: Lighthouse и llms.txt.