Skip to content
← Все статьи

Markdown content-negotiation для AI-агентов

Коротко. Content-negotiation — это механизм, при котором сервер отдаёт разный формат одной и той же страницы в зависимости от заголовка Accept. Для AI-агентов сайт может вернуть чистый markdown вместо тяжёлого HTML, когда запрос приходит с Accept: text/markdown или по URL вида /page.md. Это экономит токены модели и убирает «шум» из навигации, рекламы и скриптов.

Зачем AI-агентам markdown

Когда LLM или AI-краулер запрашивает обычную HTML-страницу, ему приходится продираться сквозь теги, инлайн-скрипты, стили и трекеры. Модель тратит токены и иногда путает структуру. Markdown — это семантически чистый текст: заголовки, списки, код и ссылки без визуального мусора.

  • Меньше токенов — дешевле и быстрее обработка.
  • Чище структура — модель точнее понимает иерархию контента.
  • Лучше цитируемость — корректные пассажи проще извлечь и процитировать.
Content-negotiation не подменяет контент для людей и ботов по-разному ради манипуляции — это легитимная отдача одного и того же содержания в формате, удобном получателю. Текст идентичен, меняется только разметка.

Два способа отдачи markdown

На практике используют два совместимых подхода: заголовок Accept и явный URL с расширением .md.

Первый способ — через HTTP-заголовок. Агент сообщает, что предпочитает markdown:

curl -H "Accept: text/markdown" https://enterno.io/

Если сервер поддерживает negotiation, он вернёт markdown-представление главной страницы (например, содержимое llms.txt) вместо HTML.

Второй способ — суффикс .md на URL статьи:

curl https://enterno.io/articles/robots-txt-guide.md

Enterno.io отдаёт чистую markdown-версию каждой статьи по адресу /articles/<slug>.md, а на запрос GET / с Accept: text/markdown возвращает llms.txt. Оба механизма работают одновременно.

Как сервер выбирает формат

Логика проста: проверяем заголовок Accept или расширение URL, и если запрошен markdown — отдаём текстовое представление с правильным Content-Type.

# Псевдокод серверной логики
if request.path.endswith('.md'):
    return serve_markdown(slug)
if 'text/markdown' in request.headers.get('Accept', ''):
    return serve_markdown(current_page)
return serve_html(current_page)

Важно вернуть заголовок Content-Type: text/markdown; charset=utf-8, иначе клиент может интерпретировать ответ как plain text.

Таблица: форматы и их получатели

ЗапросОтветКому нужно
обычный браузер (Accept: text/html)HTMLЛюди
Accept: text/markdownMarkdownAI-агенты
URL /page.mdMarkdownAI-агенты, разработчики
llms.txtКарта контентаLLM

Дополнительные сигналы для агентов

Markdown-отдачу хорошо дополняют другие AI-сигналы: .well-known/agent-card.json и MCP server card описывают возможности сайта, а Link:-заголовок на каждой странице может указывать на llms.txt и API документацию. Вместе это формирует полноценный «интерфейс для агентов».

Не отдавайте markdown только ботам, скрывая его от пользователей — это серая зона. Лучший вариант: один и тот же контент доступен и людям (HTML), и агентам (markdown) по предсказуемым правилам.

Как проверить

Отправьте curl с заголовком Accept: text/markdown и убедитесь, что вернулся markdown с верным Content-Type. Затем проверьте URL с суффиксом .md. Комплексно оценить поддержку content-negotiation, llms.txt и structured data поможет бесплатный инструмент AI-готовности.

Частые вопросы

Это не клоакинг?

Нет, пока контент идентичен. Клоакинг — это показ ботам контента, отличного от пользовательского, ради манипуляции выдачей. Content-negotiation отдаёт то же содержание в другом формате.

Нужен ли мне и .md, и заголовок Accept?

Достаточно одного, но оба вместе надёжнее: некоторые агенты предпочитают явный URL, другие — заголовок.

Влияет ли это на классический SEO?

Напрямую нет. Это про AI-поиск и цитируемость. Базовый технический SEO по-прежнему важен — см. чек-лист SEO-аудита.

Какой Content-Type использовать?

text/markdown; charset=utf-8. Это стандартный MIME-тип для markdown.

Связано ли это с llms.txt?

Да, это взаимодополняющие механизмы. llms.txt даёт карту контента, а content-negotiation — чистый формат конкретной страницы. См. гайд по llms.txt.

Проверить AI-готовность сайта →

Проверьте ваш сайт прямо сейчас

Проверить свой сайт →
Другие статьи: SEO
SEO
Влияние HTTPS на SEO и ранжирование
14.03.2026 · 94 просм.
SEO
Цепочки редиректов: как они влияют на SEO и скорость
11.03.2026 · 144 просм.
SEO
GEO: оптимизация под AI-поиск (ChatGPT, Perplexity)
15.06.2026 · 36 просм.
SEO
Schema.org для AI-поиска: что важно
15.06.2026 · 36 просм.