Как оптимизировать сайт и блог под AI

Двадцать лет мы оптимизировали сайты под Google. Пора учиться объяснять их машинам, которые читают сайт вместо человека.

Поисковик показывал человеку десять синих ссылок — дальше человек думал сам. AI-агент так не делает: он читает страницу, понимает её и сразу отвечает пользователю или принимает решение — кого порекомендовать, к кому обратиться, что закупить. Если агент вас не понял — вы не «ниже в выдаче», вас просто нет в ответе.

Хорошая новость: новый сайт не нужен. Нужно навести порядок в нескольких слоях, и работают они только вместе.

Как оптимизировать сайт и блог под AI — инфографика

Три слоя: привратник, путеводитель, паспорт

Коротко суть:

  • robots.txt — решает, кого пускать и куда; указывает путь к sitemap.xml. Ссылку на llms.txt можно оставить в комментарии для людей, но боты комментарии не читают — это не директива.
  • llms.txt — человекочитаемая выжимка в корне сайта: кто вы, услуги, контакты, главные страницы. Поисковик ползёт по всему сайту и догадывается. Агенту вы даёте готовую карту.
  • Микроразметка Schema.org / JSON-LD — машинный паспорт страницы: не «красивый текст про компанию», а структурно — организация, контакты, услуги и связи между ними. Без неё агент догадывается. С ней — знает.

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

Честная оговорка: llms.txt — стандарт молодой, скорее emerging convention, чем утверждённая норма, и не все боты читают его одинаково. Google прямо говорит, что не использует его ни в Поиске, ни в своих AI-функциях. Но стоит он полчаса работы, а вреда не несёт — поэтому в моём чек-листе он есть. Гарантий цитирования или позиций не даёт ни один из трёх слоёв.

1. База: делайте контент понятным

Никакой robots.txt не спасёт страницу, которую не понять ни человеку, ни машине.

  • Одна страница — одна главная тема.
  • Чёткий H1, логичные H2/H3, короткие абзацы.
  • Прямые ответы, определения, списки, FAQ.
  • Автор, дата публикации и дата обновления.
  • Источники, контакты, страница «О нас», редакционная политика.

2. Структура сайта

  • ЧПУ-URL, хлебные крошки, canonical, sitemap.xml.
  • Семантический HTML: <header>, <main>, <article>, <nav>, <footer>.
  • Связанные материалы и внутренняя перелинковка.
  • Не прячьте важный текст только в JavaScript.
  • Мобильная версия и скорость загрузки — обязательны.

3. robots.txt — правила обхода

Файл в корне сайта управляет доступом ботов к разделам и указывает путь к карте сайта:

User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml

# Ссылка на описание для LLM
# https://example.com/llms.txt

Канонического способа сослаться на llms.txt из robots.txt пока нет: директива Sitemap: работает только для sitemap.xml, а строка с # https://.../llms.txt — комментарий для людей и документирования, боты её игнорируют. Полезно оставить её в файле как напоминание редактору, но не ждите, что crawler найдёт llms.txt через robots.txt.

4. llms.txt — краткая карта сайта для LLM

Файл в корне (/llms.txt) помогает кратко объяснить назначение сайта, важные разделы, документацию, контакты и ключевые материалы.

Формат задаёт предложение llmstxt.org: это обычный Markdown с фиксированным порядком блоков.

# Example Site

> Блог и база знаний по AI и SEO.

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

Last updated: 2026-06-02

## Guides

- [AI SEO: с чего начать](https://example.com/guide/ai-seo/): Три слоя и порядок внедрения.

## About

- [Контакты](https://example.com/contact/): Как связаться с автором.

## Optional

- [Архив](https://example.com/archive/): Можно пропустить, если контекст ограничен.

Что здесь обязательно, а что нет:

  • # Заголовок — единственный обязательный элемент. Дальше — цитата-резюме и свободный текст без заголовков.
  • Разделы ## со списками ссылок вида - [название](абсолютный URL): описание.
  • Раздел Optional — особый: агент вправе его отбросить, когда контекста мало. Туда идёт второстепенное.
  • Строка Last updated — моя привычка, а не часть предложения: редактору видно, когда файл пересматривали.

Главное правило — курировать, а не выгружать. SEO-плагины умеют генерировать llms.txt автоматически и кладут туда все посты подряд. Получается второй sitemap, только хуже: агент тратит контекст на список из полусотни ссылок и всё равно не понимает, что на сайте главное. Мой ориентир — до 20 ссылок, не больше 12 на раздел, файл до 8 КБ. Это эвристика, а не требование спецификации.

llms.txt не заменяет sitemap.xml: sitemap — полный машинный список URL для обхода, llms.txt — курированная человекочитаемая выжимка смысла (кто вы, ключевые страницы). Они дополняют друг друга: sitemap помогает найти всё, llms.txt — быстро понять главное.

Markdown-версии страниц — по желанию

То же предложение советует отдавать чистую Markdown-версию страницы рядом с HTML: по тому же адресу с добавленным .md (/guide.html → /guide.html.md) либо index.html.md для адресов без имени файла — и ссылаться из llms.txt на неё. Агенту не нужно продираться через меню, баннеры и скрипты.

Это усиление второго слоя, а не четвёртый слой. Два правила:

  • Ссылайтесь на .md только когда он реально отдаётся: ответ 200, тот же текст, что на странице. Не выводите адрес по шаблону — проверьте запросом. Сервер, который на несуществующий .md отвечает страницей «не найдено» с кодом 200, — самая частая ловушка.
  • Нет Markdown-версий — оставляйте обычные ссылки. WordPress из коробки их не отдаёт; на этом блоге их тоже пока нет, и в моём llms.txt ссылки ведут на HTML.

5. Микроразметка / Schema.org

JSON-LD — предпочтительный формат. Рекомендуемые типы:

Тип страницы Schema.org
Блог Article, BlogPosting
FAQ FAQPage
Инструкции HowTo
Компания Organization
Автор Person
Навигация BreadcrumbList
Общие страницы WebPage

Минимальный шаблон для статьи:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "...",
  "description": "...",
  "author": { "@type": "Person", "name": "..." },
  "datePublished": "2026-06-14T15:26:32+03:00",
  "dateModified": "2026-06-14T15:26:32+03:00",
  "mainEntityOfPage": "URL"
}

Google рекомендует полный ISO 8601 с временем и часовым поясом, а не только дату YYYY-MM-DD.

Размечайте только то, что посетитель видит на странице, и не выдумывайте рейтинги и награды. FAQPage и HowTo остаются корректными типами Schema.org, но расширенных результатов в Google по ним больше нет — ставьте их ради фактов, а не ради сниппета.

6. Что особенно любят AI-системы

  • Краткие summary-блоки в начале материала.
  • Термин → определение → пример.
  • Списки, таблицы, чек-листы.
  • Q&A и блоки «Коротко» / TL;DR.
  • Alt-текст у изображений и подписи к иллюстрациям.
  • Транскрипты для видео и аудио.

7. Управление AI-ботами

Сначала о том, чем robots.txt не является: это не защита доступа. Файл публичный, соблюдают его добровольно, а строка Disallow ещё и подсказывает, где у вас интересное. Приватное закрывайте авторизацией и сетевыми правилами; в robots.txt — только дубли, поиск по сайту и служебные пути.

«AI-бот» — не одна сущность. У крупных вендоров три разных роли, и решение по каждой отдельное:

Роль Примеры токенов Что решаете
Обучение моделей GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot Отдавать ли контент в обучение
Поиск и ответы OAI-SearchBot, Claude-SearchBot, PerplexityBot Быть ли в AI-поиске и ссылках
Запрос по действию пользователя ChatGPT-User, Claude-User, Perplexity-User Почти ничего: часть таких агентов robots.txt не соблюдает

Отсюда типичные ошибки:

  • Закрыли GPTBot и думают, что ушли из ChatGPT-поиска. Нет: за поиск отвечает OAI-SearchBot. Точно так же Google-Extended — не Googlebot, на обычный поиск он не влияет.
  • Завели для бота отдельную группу и забыли про общие запреты. По RFC 9309 бот берёт самую точную группу и в User-agent: * уже не заглядывает. Если написать User-agent: GPTBot / Allow: /, запреты из * для него перестают действовать — продублируйте их внутри группы.
  • Скопировали список токенов из статьи двухлетней давности. Список меняется: сверяйтесь с документацией вендора при каждой ревизии, а не с чужим постом — включая этот.

8. Чек-лист перед публикацией

  • [ ] Понятный title и H1
  • [ ] Summary и FAQ на месте
  • [ ] Автор и дата обновления указаны
  • [ ] Schema.org / JSON-LD внедрена
  • [ ] sitemap.xml обновлён
  • [ ] robots.txt настроен
  • [ ] llms.txt подготовлен — курированный, а не выгрузка плагина
  • [ ] Внутренняя перелинковка есть

Итог

Сайт остаётся прежним для людей. Просто теперь его понимают и машины. В мире, где подрядчика всё чаще выбирает агент, а не человек, — это уже не «приятно иметь», а гигиена.

Формула: хороший контент + понятная структура + robots.txt + llms.txt + schema.org = сайт, который понимают и люди, и AI.

Подходит для блогов, корпоративных сайтов, документации, интернет-магазинов и баз знаний.

Артефакты для агента: три слоя за один вечер

Теория выше — теперь практика. Собрал открытый репозиторий (MIT), содержимое которого читатель может отдать
своему AI-агенту (Cursor, Claude, ChatGPT и др.) и получить черновики всех трёх слоёв под свой сайт.
Начинался он как генератор llms.txt, теперь это набор из четырёх скиллов и линтера.

Открыть репозиторий: ai-llms-generator на GitHub

Что Слой Для чего
/audit-robots-ai-bots 1 Разбор robots.txt и черновик политики по ролям ботов
/generate-llms-txt (SKILL.md, PROMPT.md) 2 Черновик курированного llms.txt и заметка для robots.txt
/draft-json-ld 3 Черновик JSON-LD из фактов, видимых на странице
/aio-site-audit все Аудит трёх слоёв с таблицей «статус — что чинить»
scripts/aio_lint.py все Линтер без зависимостей: проверяет живой сайт из терминала или CI
example-llms.txt, template-llms.txt 2 Курированный пример для этого блога и пустой шаблон

Cursor

  1. Склонируйте репозиторий и установите скиллы в свой проект: ./scripts/install-skill.sh /путь/к/проекту (на Windows — .\scripts\install-skill.ps1 -Target C:\путь\к\проекту).
  2. В чате: /aio-site-audit проверь https://мой-сайт.ru — или сразу /generate-llms-txt создай llms.txt для https://мой-сайт.ru.

Claude / ChatGPT / другой агент

  1. Откройте PROMPT.md в репозитории (русская версия — PROMPT.ru.md).
  2. Подставьте URL, тип сайта, язык и аудиторию.
  3. Вставьте в чат → сохраните вывод как llms.txt → выложите в корень сайта.

Проверка из терминала

python scripts/aio_lint.py https://мой-сайт.ru
python scripts/aio_lint.py https://мой-сайт.ru --check-links

Линтер отличает курированный llms.txt от выгрузки плагина, смотрит robots.txt и JSON-LD на главной, а с --check-links ещё и запрашивает ссылки из llms.txt и показывает битые.

Агент сам изучит sitemap и навигацию, отберёт ключевые страницы и выдаст
фрагмент для robots.txt. Проверьте URL и факты вручную перед публикацией — агент
не заменяет здравый смысл, а страницы сайта для него — недоверенные данные, а не инструкции.


Обновлено 8 октября 2026: формат llms.txt приведён к llmstxt.org, добавлены Markdown-версии страниц и роли AI-ботов, раздел про репозиторий отражает его текущий состав.

Материал ранее опубликован в LinkedIn.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.