Robots.txt и sitemap.xml: как настроить и не закрыть лишнее

Сайт два года стоял в выдаче и приносил заявки, а за неделю пропал целиком. Ни фильтра, ни писем из Вебмастера. Программист выкатил обновление с тестового сервера и притащил вместе с ним одну строчку, которая запрещает роботам обходить весь сайт.

Robots.txt и sitemap.xml весят по паре килобайт и лежат в корне сайта. Первый говорит поисковым роботам, куда не ходить. Второй перечисляет страницы, которые вы хотите видеть в поиске. Оба правятся в блокноте за пять минут, и оба за те же пять минут способны обнулить трафик.

Разбираем по делу: как устроен каждый файл, что закрывать типовому сайту и чего нельзя закрывать ни при каких условиях, как убрать страницу из поиска правильно и чем проверить, что вы ничего не сломали.

Что такое robots.txt простыми словами

Коротко. Robots.txt управляет обходом сайта. На показ в выдаче он влияет слабо: это просьба к роботам, а не замок, и закрытая в нём страница всё равно может оказаться в поиске.

Файл лежит по адресу site.ru/robots.txt и открыт любому, кто наберёт этот адрес. Робот читает его перед обходом и учитывает список запретов. Защиты тут никакой: выполнять правила — добрая воля робота. Технически файл ничего не блокирует.

Google формулирует прямо: robots.txt не служит механизмом, который держит страницу вне поиска. Если на закрытый адрес ведут ссылки с других сайтов, он может появиться в результатах — только без описания, читать содержимое роботу запрещено.

Яндекс говорит то же своими словами: ограниченные в robots.txt страницы могут участвовать в поиске, а для настоящего исключения нужен noindex в коде страницы или в HTTP-заголовках.

Disallow в robots.txtробот не заходитна страницуАдрес может попасть в выдачу по внешней ссылке,но без описания: читать страницу роботу запрещеноnoindex на страницеробот заходити читает запретСтраница исключается из поиска. Работает, пока обходтой же страницы не закрыт директивой Disallow

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

Требования Яндекса простые: имя ровно robots.txt, корневой каталог, размер до 500 КБ, код ответа 200. Кириллица внутри запрещена, домены пишутся в Punycode. Если файл требованиям не соответствует, сайт считается открытым для индексирования — сломанный robots.txt равен его отсутствию. Google разбирает первые 500 кибибайт, остальное игнорирует.

Осторожно. Robots.txt публичен. Всё, что вы там закрыли, вы фактически показали пальцем. Прятать в нём адреса админки и тестовых поддоменов бессмысленно: файл читают не только поисковики.

Зачем нужен sitemap.xml, если робот и так ходит по ссылкам

Коротко. Карта сайта не заставляет индексировать, она помогает найти. Чем крупнее сайт и слабее перелинковка, тем заметнее польза.

Робот действительно находит страницы по ссылкам. Проблема в том, что обход не бесконечен. Раздел в четырёх кликах от главной с единственной ссылкой из подвала ждёт своей очереди долго, а на большом каталоге может не дождаться.

Нет времени разбираться самому? Разберём ваш сайт по 20+ SEO-параметрам и покажем точки роста — бесплатно и без обязательств.

Получить аудит

Sitemap.xml отдаёт роботу готовый список адресов и дату последнего изменения каждого. Это экономит обход и ускоряет попадание новых страниц в базу.

Обязательной карту делают четыре ситуации: новый сайт без внешних ссылок, каталог на тысячи позиций, сложная вложенность разделов и частое добавление страниц. Лендингу на семь секций она почти ничего не даст.

Гарантий карта не даёт. Адрес в sitemap — заявка на обход, решение об индексации поисковик принимает сам, по содержанию страницы. Пустой материал карта не спасёт. Как поисковики вообще принимают такие решения, мы писали в разборе что такое SEO простыми словами.

500 КБ
предельный размер robots.txt для Яндекса
50 000
адресов максимум в одном файле карты
50 МБ
предел размера карты без сжатия
2048
символов максимум в одном адресе

Синтаксис robots.txt: пять директив на все случаи

Коротко. User-agent, Disallow, Allow, Sitemap и Clean-param закрывают задачи почти любого сайта. Остальное из старых инструкций давно не работает.

Файл читается блоками. Каждый блок начинается с User-agent, дальше идут правила, которые относятся к этому роботу. Звёздочка означает всех роботов сразу.

ДирективаЧто делаетПример
User-agentУказывает, к какому роботу относятся правила ниже. ОбязательнаяUser-agent: *
DisallowЗапрещает обход раздела или отдельной страницыDisallow: /wp-admin/
AllowОткрывает исключение внутри закрытого разделаAllow: /wp-admin/admin-ajax.php
SitemapСообщает полный адрес карты сайта вместе с протоколомSitemap: https://site.ru/sitemap.xml
Clean-paramТолько для Яндекса: склеивает адреса с мусорными параметрамиClean-param: sort&ref

Рабочий минимум для сайта на WordPress выглядит примерно так:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /cart/
Disallow: /my-account/
Clean-param: sort&order&ref
Sitemap: https://site.ru/wp-sitemap.xml

Конфликты решаются по длине пути: Google берёт самое специфичное правило, при равной длине — наименее ограничивающее. Поэтому Allow с более длинным путём перебивает общий Disallow, и связка выше работает: папка админки закрыта, нужный скрипт внутри неё открыт.

Директива Sitemap живёт отдельно от блоков User-agent и относится ко всему файлу. Её ставят в конец, карт можно указать несколько подряд. Адрес обязательно полный, с протоколом и доменом.

Clean-param и новая настройка GET-параметров

Коротко. Clean-param склеивает адреса с мусорными параметрами с основным URL и передаёт ему накопленные показатели. Disallow просто выбрасывает такие страницы.

Один товар в каталоге доступен по десятку адресов: с сортировкой, с меткой рекламной кампании, с идентификатором перехода из соцсети. Для поисковика это разные страницы с одинаковым содержимым, и обход тратится впустую.

Disallow закрывает такие адреса от обхода целиком. Clean-param говорит роботу Яндекса иначе: параметр на содержимое не влияет, считай эти адреса одной страницей.

Disallow с параметрами

грубое закрытие

  • Страницы просто выпадают из обхода
  • Накопленные показатели теряются
  • Легко зацепить нужные адреса маской
  • Работает для обоих поисковиков

Clean-param

склейка с основным адресом

  • Показатели переходят на основной URL
  • Робот перестаёт обходить дубли
  • Правило до 500 символов, регистр учитывается
  • Понимает только Яндекс

Синтаксис такой: Clean-param, параметры через амперсанд, затем необязательный путь. Строка Clean-param: ref /catalog/ уберёт параметр ref только внутри каталога, без пути правило действует по всему сайту. Приоритет у Disallow выше: если адрес уже закрыт, Clean-param не применится.

Метки веб-аналитики вроде utm_source, utm_campaign и ysclid Яндекс отбрасывает сам. Прописывать их в Clean-param смысла нет, хотя половина шаблонных robots.txt из интернета это делает.

12 декабря 2025 года в Яндекс Вебмастере появился отдельный инструмент: Индексирование, затем Настройка GET-параметров. Робот сам показывает найденные на сайте параметры, а вы в столбце «Учитывать параметр?» ставите «Да» или «Нет». Изменения вступают в силу за неделю.

Совет. Поддержка Clean-param в robots.txt осталась. Если настройки в кабинете и правила в файле противоречат, робот выполнит то, которое запрещает индексировать адрес с параметром. Держите оба источника в одном состоянии.

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

Что закрывать типовому сайту и чего трогать нельзя

Коротко. Закрывайте служебное и дублирующее. Не закрывайте стили, скрипты, картинки и живые разделы — иначе поисковик увидит вместо сайта развалившийся текст.

Список того, что закрывают почти всем, короткий и скучный. Он почти не зависит от ниши и движка.

  • Панель администратора и служебные скрипты движка
  • Внутренний поиск по сайту: страницы вида /?s= и /search/
  • Корзина, оформление заказа, личный кабинет, сравнение товаров
  • Страницы авторизации, регистрации и восстановления пароля
  • Технические каталоги: кеш, логи, резервные копии, временные файлы
  • Печатные версии страниц и дубли с параметрами сортировки

А теперь то, что закрывают по недоразумению и потом долго ищут причину провала.

  • CSS-файлы: без них робот не соберёт вёрстку и не поймёт, что видит посетитель
  • JS-скрипты: если поисковик не загрузит их, часть контента для него просто исчезнет
  • Папку с картинками: закрыли — потеряли весь трафик из поиска по изображениям
  • Каталоги движка целиком: /wp-content/ и /bitrix/ хранят и мусор, и вёрстку разом
  • Страницы пагинации: часть товаров окажется недостижимой для робота
  • Разделы с UTM-метками маской вида /*? — под неё попадает и живая фильтрация

История с CSS и JS повторяется годами. Поисковик рендерит страницу как браузер: подгружает стили, выполняет скрипты, смотрит на результат. Заблокировали загрузку — робот получает набор текста без структуры, без кнопок и часто без половины блоков. Оценивает он честно то, что смог собрать. Мобильная версия рушится первой: она сильнее завязана на скрипты.

Остальные технические пункты можно пройти самому: у нас есть интерактивный чек-лист проверки сайта на полсотни пунктов, robots.txt и карта там тоже есть.

Как правильно убрать страницу из поиска

Коротко. Disallow для этого не годится. Нужен noindex на самой странице или удаление через кабинет вебмастера, а иногда и то и другое по очереди.

Самая частая ошибка выглядит логично: страница попала в поиск, значит закрываем её в robots.txt. Робот перестаёт на неё заходить, а адрес из выдачи никуда не девается и висит без описания месяцами.

Ловушка глубже. Google описывает её дословно: если страница закрыта в robots.txt, робот никогда не увидит правило noindex, и страница может остаться в результатах поиска. Двойная защита из Disallow плюс noindex запрет не усиливает — она его отменяет.

  1. Снимите Disallow с этой страницыРобот должен зайти и прочитать запрет. Пока обход закрыт, мета-теги не сработают.
  2. Поставьте noindexМета-тег robots в коде страницы или заголовок X-Robots-Tag на сервере. В WordPress это переключатель в SEO-плагине.
  3. Отправьте страницу на переобходЧерез переобход в Яндекс Вебмастере и проверку URL в Search Console, иначе ждать неделями.
  4. Ускорьте удаление вручнуюВ Вебмастере есть удаление страниц из поиска: до 500 адресов сайта в сутки, по префиксу — до 20 префиксов.
  5. Закройте в robots.txt в последнюю очередьКогда адрес пропал из выдачи и вы экономите обход. Не раньше.

Для страниц, которых физически больше нет, всё проще: сервер отдаёт 404 или 410, и адрес выпадает сам. Закрывать их в robots.txt не нужно.

Из чего состоит sitemap.xml и что отдаёт ваша CMS

Коротко. Обязателен только адрес страницы. Дальше начинаются лимиты: 50 000 адресов и 50 МБ на файл, свыше — индексный файл со списком карт.

Внутри карты каждая запись содержит тег loc с полным адресом страницы. Остальное необязательно. Тег lastmod с датой изменения полезен, если даты честные. Теги changefreq и priority Google игнорирует открытым текстом, Яндекс их среди учитываемых тоже не упоминает.

Кодировка строго UTF-8, адреса абсолютные, длиной до 2048 символов. Карта действует только на свой хост и каталог: файл в /catalog/sitemap.xml перечисляет адреса из /catalog/ и не может из /images/. Протокол и наличие www должны совпадать с основным зеркалом.

Когда страниц больше 50 000 или файл перевалил за 50 МБ, карту разбивают на части и делают индексный файл. Устроен он так же, только внутри перечислены другие карты — до 50 000 штук. Крупные каталоги бьют по типам: товары, категории, статьи.

ПлатформаГде лежит картаЧто учесть
WordPress без плагинов/wp-sitemap.xmlЯдро отдаёт карту с версии 5.5, настроек нет
WordPress с Yoast или Rank Math/sitemap_index.xmlМожно исключать метки, архивы, лишние типы записей
1С-Битрикспуть задаётся в настройкахГенерируется модулем поиска, раздел поисковой оптимизации
Самописный сайткак договоритесьСобирается скриптом по расписанию, проверяйте свежесть

Два источника карты одновременно не нужны. Yoast обычно сам отключает встроенную карту ядра, но встречаются сборки, где живут обе, и робот обходит один список дважды. Разницу платформ мы разбирали в материале WordPress или Битрикс.

Сообщить о карте лучше сразу тремя способами: строка Sitemap в robots.txt, страница «Файлы Sitemap» в Яндекс Вебмастере и одноимённый отчёт в Google Search Console. Как подключить сайт к обоим кабинетам, расписано в инструкции как добавить сайт в Яндекс Вебмастер.

Чем проверить, что вы ничего не сломали

Коротко. Анализатор robots.txt в Яндекс Вебмастере и отчёты по карте сайта в обоих кабинетах. Проверка занимает минут пять. Делать её нужно до выкатки на боевой сайт.

Основной инструмент живёт в Яндекс Вебмастере: раздел Инструменты, пункт Анализ robots.txt. Он подтягивает файл с сайта или принимает текст руками, находит синтаксические ошибки и главное — позволяет вбить список адресов и посмотреть, какие из них разрешены роботу, а какие запрещены.

Там же лежит история версий за последние полгода, до ста сохранённых состояний файла. Когда трафик просел непонятно почему, она за десять секунд отвечает, кто и когда правил robots.txt.

Учтите перестановку: 28 января 2026 года Яндекс перекроил меню Вебмастера. Инструменты качества и репутации собраны в «Оптимизации сайта», технические проверки вынесены в «Инструменты», настройки обхода живут в «Индексировании».

На стороне Google работают отчёт robots.txt и проверка URL в Search Console. Последняя отвечает сразу на два вопроса: доступна ли страница для обхода и как робот её отрендерил. Именно там видно, что стили не загрузились. Подробнее — в разборе продвижения сайта в Google.

Совет. Заведите привычку: после любого обновления сайта открывать site.ru/robots.txt в браузере и смотреть глазами. Тридцать секунд, а ловит почти все катастрофы из следующего раздела.

Три аварии, которые случаются чаще остальных

Коротко. Почти все катастрофы с этими файлами сводятся к трём сценариям: приехавший с тестового сервера запрет, закрытые скрипты и карта со старыми адресами.

Первая и самая дорогая. На тестовом сервере robots.txt содержит строку Disallow: / — черновик не должен попадать в поиск. При переносе на боевой домен файл едет вместе с остальными. Через несколько дней сайт начинает исчезать из выдачи, через две-три недели пропадает почти целиком. Восстановление идёт дольше падения.

Вторая. Разработчик закрывает каталоги движка целиком, чтобы «не индексировался мусор». Вместе с мусором закрываются темы оформления и скрипты. Позиции сползают месяцами, и связать это с robots.txt уже никто не может. Другие типовые причины сползания мы собрали в материале почему упали позиции сайта.

Третья. Сайт переехал на https, а карта продолжает отдавать адреса через http. Робот получает список чужих для текущего зеркала адресов, отчёт наполняется ошибками, новые страницы находятся медленно. То же случается при смене домена и переезде с www.

Осторожно. Не копируйте robots.txt с чужого сайта, даже похожего. Файл завязан на конкретный движок и структуру адресов. Чужой шаблон закроет у вас что-то живое и оставит открытым лишнее.

Оба файла годами лежат нетронутыми: заявок они не приносят, вспоминают о них только после аварии. Стоит один раз ошибиться в строке — и полгода продвижения уходят в песок.

Хотите понять, что закрыто у вас и не мешает ли это индексации — оставьте заявку на бесплатный экспресс-аудит. Проверим robots.txt, карту сайта и то, как поисковик реально видит страницы. Мы ведём SEO-продвижение, Яндекс.Директ и разработку сайтов одной командой, поэтому правку не придётся согласовывать между тремя подрядчиками. Связаться можно на странице контактов.

← Все статьи Получить бесплатный аудит
Бесплатный аудит