🗺️llms.txt, robots.txt и sitemap.xml: кто за что отвечает и где не дублируют

Три файла в корне сайта, которые постоянно путают. Разбираем, что делает каждый — доступ, карта URL и смысловая карта для LLM — и как они работают вместе, а не вместо.

редакция seodb#llms-txt#robots-txt#sitemap#geo#ai-поиск#техническое-seo

Три текстовых файла в корне сайта — robots.txt, sitemap.xml, llms.txt — регулярно валят в одну кучу. «Зачем llms.txt, если есть sitemap?», «robots.txt же и так всё закрывает», «поставил llms.txt — теперь AI меня видит». Каждое из этих утверждений — про непонимание, кто из трёх за что отвечает. На самом деле у них три разные задачи, и они не заменяют, а дополняют друг друга. Разберём по полкам.

Коротко: три файла — три задачи

  • robots.txt — про доступ. Кому из ботов можно ходить по сайту и куда. Это охранник на входе.
  • sitemap.xml — про полноту. Список всех страниц, которые есть на сайте, чтобы поисковый краулер ничего не пропустил. Это опись помещений.
  • llms.txt — про смысл. Короткая человекочитаемая карта: что это за сайт, о чём он и куда смотреть в первую очередь. Это табличка «вы здесь» с указателями.

Дальше — каждый подробнее.

robots.txt — контроль доступа

robots.txt отвечает на один вопрос: какому боту куда можно. User-agent + Allow/Disallow. Он не про содержание и не про смысл — только про доступ. Именно здесь вы решаете, пускать ли GPTBot, OAI-SearchBot, PerplexityBot и остальных (полный разбор — в справочнике AI-краулеров).

Чего robots.txt не делает:

  • Не прячет страницу из выдачи. Disallow говорит «не сканируй», но URL всё равно может попасть в индекс — без сниппета, «голой» ссылкой, если на неё кто-то ссылается. Чтобы страницы не было в выдаче, нужен мета-тег noindex на самой странице, а не Disallow в robots.
  • Не гарантирует запрет. Добросовестные боты слушаются, недобросовестные — нет. robots.txt — просьба, не замок.

sitemap.xml — карта существующих URL

sitemap.xml (или sitemap-index.xml, если карт несколько) — это машинный список всех страниц сайта в формате XML, который вы предъявляете поисковым краулерам Google и Яндекса. По каждому URL можно указать дату последнего изменения (lastmod), частоту обновления и приоритет. Задача — чтобы краулер узнал обо всех страницах, включая те, на которые мало внутренних ссылок, и не потратил краулинговый бюджет впустую.

Чего sitemap не делает:

  • Не управляет индексацией. Наличие URL в sitemap — подсказка «вот эта страница существует и вот когда обновилась», а не команда «проиндексируй». Google сам решает, что брать.
  • Не про доступ и не про смысл. Это просто перечень адресов. Робот, который не имеет права ходить по сайту (закрыт в robots), sitemap не «разблокирует».

Важная деталь: sitemap должен быть актуальным. Устаревшая карта с несуществующими URL (404) — это шум, который снижает доверие краулера. Поэтому sitemap правильно генерировать автоматически при сборке сайта, а не поддерживать руками.

llms.txt — смысловая карта для LLM

llms.txt — самый молодой из трёх и самый недопонятый. Это человекочитаемый файл в формате markdown, который объясняет языковой модели, что за сайт перед ней и куда смотреть. Не список всех URL (это работа sitemap), а курированная карта смысла: H1 с названием сайта, одно предложение-описание, разделы с несколькими ключевыми ссылками и коротким пояснением к каждой.

Разница с sitemap принципиальная. Sitemap говорит «вот 400 страниц» — модель в них утонет. llms.txt говорит «этот сайт про GEO-оптимизацию, вот 8 главных материалов, вот как связаться» — модель получает суть за один запрос. Полный разбор формата — в отдельной статье llms.txt — минимум.

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

Таблица: чем они отличаются

robots.txt sitemap.xml llms.txt
Про что доступ полнота URL смысл сайта
Формат директивы XML markdown
Для кого все краулеры поисковые боты языковые модели
Что содержит кому куда можно список всех страниц курированную карту
Статус стандарт стандарт конвенция
Обязателен де-факто да желательно по желанию

Частые заблуждения — по пунктам

  • «llms.txt заменяет sitemap». Нет. Sitemap — про полноту (все URL для поисковика), llms.txt — про приоритет и смысл (главное для модели). Разные аудитории, разные задачи.
  • «llms.txt заменяет robots.txt». Нет. robots.txt управляет доступом, llms.txt — навигацией по смыслу. llms.txt никого не пускает и не закрывает.
  • «sitemap заставляет Google проиндексировать». Нет, это подсказка, а не команда.
  • «Disallow в robots прячет страницу из выдачи». Нет, для этого noindex. Disallow может, наоборот, оставить URL в индексе без описания.

Как они работают вместе

Правильный сетап — это все три, каждый на своём месте:

  1. robots.txt пускает нужных ботов (поисковые + AI-поисковые), режет обучающие, если хотите, и в конце указывает Sitemap: https://site.ru/sitemap-index.xml.
  2. sitemap.xml генерируется автоматически при билде, перечисляет все живые страницы с актуальным lastmod.
  3. llms.txt лежит в корне, даёт модели смысловую карту: что за сайт, главные разделы, как связаться.

Ни один не дублирует другой. robots.txt пускает → sitemap показывает, что есть → llms.txt объясняет, что из этого главное.

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

curl -s https://site.ru/robots.txt | head -20
curl -sI https://site.ru/sitemap-index.xml | head -1   # ждём 200
curl -s https://site.ru/llms.txt | head -20

Проверьте: в robots.txt есть строка Sitemap:; sitemap отдаёт 200 и в нём нет мёртвых URL; llms.txt заполнен до конца, а не заглушка на два слова (короткий llms.txt вреднее его отсутствия — он создаёт впечатление, что сайт пустой). Три файла, пятнадцать минут проверки — и вы точно не мешаете сами себе.


Автор: Денис Б., seodb.tech — SEO / GEO / AI-поиск. Смежные разборы: robots.txt для AI-краулеров · llms.txt — минимум · GEO-чек-лист перед запуском лендинга.