Markdown-версии страниц
Зачем сайту Markdown-версии страниц для AI-агентов, три способа их отдавать - отдельный адрес .md, заголовок Accept и ссылка rel=alternate - и что об их пользе известно на самом деле
HTML и Markdown одной страницы
Заголовок раздела «HTML и Markdown одной страницы»HTML
для браузера и поиска
- Меню, шапка, подвал, скрипты, стили
- Структурированные данные в коде страницы
- Много служебной разметки вокруг текста
Markdown
для агента
- Только содержание
- Заголовки и списки сохраняют структуру
- Нет JSON-LD и интерактивных частей
Три способа отдать Markdown
Заголовок раздела «Три способа отдать Markdown»К адресу страницы добавляется .md. Способ описан во второй редакции proposal llms.txt.
https://example.ru/docs/install.html страницаhttps://example.ru/docs/install.html.md её Markdown-версия
https://example.ru/docs/ страница без имени файлаhttps://example.ru/docs/index.html.md её Markdown-версияДопустимы обе формы: page.html.md и page.md. Плюс способа: адрес можно открыть в браузере и положить в llms.txt.
Адрес один, а формат выбирает клиент. Агент просит Markdown заголовком запроса:
GET /docs/install/ HTTP/1.1Host: example.ruAccept: text/markdownСервер отвечает тем же содержанием с типом text/markdown. Обычный браузер такого заголовка не шлёт и получает HTML.
Так устроены документация OpenAI, Stripe и Cursor. Cloudflare с февраля 2026 года умеет делать такое преобразование на своей стороне, без правок сайта. Функция входит в платные тарифы, а тариф Cloudflare можно оплатить из России.
Страница сама сообщает, где её Markdown-версия. Это связь из второй редакции proposal:
<link rel="alternate" type="text/markdown" href="/docs/install.html.md">То же можно передать заголовком ответа:
Link: </docs/install.html.md>; rel="alternate"; type="text/markdown"Агенту не нужно угадывать адрес: он читает его со страницы.
Способы не исключают друг друга. Подробно о связях обнаружения: Обнаружение файла и Markdown-версий.
Что должно быть в Markdown-версии
Заголовок раздела «Что должно быть в Markdown-версии»- То же содержание, что в HTML. Другой текст для машины - это подмена, и поисковые системы относятся к ней плохо.
- Один заголовок первого уровня и осмысленные заголовки разделов.
- Абсолютные ссылки. Агент читает файл вне сайта, относительный путь ему некуда приложить.
- Таблицы таблицами, код в блоках кода. Снимок экрана с таблицей машина не прочитает.
- Без навигации, подвала и форм.
- Тип ответа
text/markdownилиtext/plain, кодировка UTF-8.
Связь с llms.txt
Заголовок раздела «Связь с llms.txt»В llms.txt лучше ссылаться на Markdown-версии, если они есть. Тогда агент проходит путь целиком: карта, затем чистый текст.
Если Markdown-версий нет, файл со ссылками на обычные страницы всё равно корректен. Proposal рекомендует Markdown, но не требует.
Что известно о пользе
Заголовок раздела «Что известно о пользе»Что известно, а что нет
Подтверждено
- Сайты документации OpenAI, Anthropic, Stripe, Cloudflare, GitHub отдают Markdown-версии страниц.
- Платформы документации создают их автоматически для всех сайтов.
- Mintlify сообщает, что на её сайтах агенты запрашивают документацию чаще людей. Источник заинтересован: это его продукт.
Не доказано
- Что Markdown-версия увеличивает число цитирований или переходов.
- Что боты поисковых AI-систем сами запрашивают
.md. В опыте OtterlyAI за 14 дней таких обращений не было ни одного.
Чего это не означает
- Это не способ попасть в поисковый индекс: поиск читает HTML.
- Это не замена структурированным данным: в Markdown нет разметки сущностей.
Markdown-версии публикуют крупные сайты документации. Независимых замеров пользы пока мало.
Вывод трезвый: Markdown-версии полезны там, где сайт читают агенты по ходу работы, прежде всего в документации. Для магазина или блога это задел, а не срочная задача.
Подробнее в блоге: Cloudflare отдаёт агентам Markdown, опыт Mintlify с четырьмя форматами.
Как проверить
Заголовок раздела «Как проверить»- Запроси страницу с заголовком
Accept: text/markdownили открой адрес с.md. - Ответ
200, типtext/markdownилиtext/plain. - В ответе текст, а не HTML-страница.
- Содержание совпадает с обычной страницей.
- Ссылки абсолютные и рабочие.
- Если есть
rel="alternate", адрес в нём отвечает200.
curl -sI -H 'Accept: text/markdown' https://example.ru/docs/install/curl -sI https://example.ru/docs/install.html.mdКто так делает
Заголовок раздела «Кто так делает»- llms-full.txt
- есть
- Markdown-страницы
- по заголовку Accept
Что показывает. Корневой индекс и вложенные файлы для /api, /codex, /commerce
Чего не доказывает. Что ChatGPT читает чужие llms.txt
Anthropic
platform.claude.com/llms.txt- llms-full.txt
- есть
- Markdown-страницы
- да, с rel=alternate
Что показывает. Индекс документации и полный текст одним файлом
Чего не доказывает. Что Claude читает чужие llms.txt
Cloudflare
developers.cloudflare.com/llms.txt- llms-full.txt
- есть
- Markdown-страницы
- да
Что показывает. Очень большой индекс: полный текст занимает 67 МБ
Чего не доказывает. Что файл такого размера удобен агенту целиком
Stripe
docs.stripe.com/llms.txt- llms-full.txt
- нет
- Markdown-страницы
- по заголовку Accept
Что показывает. llms-full.txt не обязателен: хватает индекса и Markdown-страниц
Чего не доказывает. Что отказ от полного файла - общее правило
Cursor
cursor.com/llms.txt- llms-full.txt
- не проверялось
- Markdown-страницы
- по заголовку Accept
Что показывает. Единственный замеренный сайт с rel=describedby из второй редакции
Чего не доказывает. Что вторая редакция уже распространена
GitHub Docs
docs.github.com/llms.txt- llms-full.txt
- нет
- Markdown-страницы
- да
Что показывает. Индекс без полного файла на большой документации
Чего не доказывает. Что Copilot опирается на этот файл