Robots.txt и sitemap.xml — два первых файла, которые проверяет поисковый робот, заходя на сайт. Криво настроенный robots может закрыть весь сайт от индексации. Без sitemap робот дольше находит страницы — особенно на большом сайте или при слабой перелинковке. Разберу с нуля: что это, как настроить, какие ошибки убивают позиции.
robots.txt — инструкция для поискового робота: куда можно ходить, а куда нет. sitemap.xml — карта сайта со списком всех важных страниц для быстрой индексации. Оба файла лежат в корне сайта, проверяются по адресам site.ru/robots.txt и site.ru/sitemap.xml. Без них SEO не работает. Шаблоны и инструкции — в этой статье.
Что такое robots.txt
robots.txt — это текстовый файл с инструкциями для поисковых роботов. Лежит в корне сайта, доступен по адресу https://site.ru/robots.txt.
Когда поисковый робот Яндекса или Google заходит на сайт, первое, что он делает — открывает robots.txt и читает, куда можно ходить, а куда нет. Если файла нет — робот считает, что можно везде. Если файл есть, но с ошибкой — может случайно закрыть весь сайт.
Robots.txt — это рекомендация, не запрет на 100%. «Хорошие» роботы (Яндекс, Google, Bing) её соблюдают. «Плохие» (парсеры, спам-боты) — игнорируют. Поэтому robots.txt не используют для защиты приватных данных — он только для управления индексацией.
Базовая логика проста: пишете директивы, что можно («Allow») и что нельзя («Disallow») для конкретных разделов сайта.
Как написать robots.txt — рабочие шаблоны
Минимальный рабочий robots.txt для большинства сайтов:
User-agent: *
Disallow: /admin
Disallow: /cart
Disallow: /search
Disallow: /*?utm_
Allow: /
Sitemap: https://site.ru/sitemap.xml
Что здесь:
- User-agent: * — правила для всех роботов;
- Disallow: /admin — закрываем админку;
- Disallow: /cart — корзину (нечего индексировать);
- Disallow: /search — внутренний поиск сайта;
- Disallow: /*?utm_ — страницы с UTM-метками (дубли);
- Allow: / — всё остальное можно индексировать;
- Sitemap: — ссылка на карту сайта.
Для интернет-магазина добавь закрытие фасетной навигации с мусорными параметрами:
Disallow: /*sort=
Disallow: /*order=
Disallow: /*filter=
Пиши параметр без ? и & в начале (/*filter=, не /*?filter=): тогда правило ловит параметр на любой позиции в URL — и когда он первый (?filter=), и когда идёт после других (&filter=).
Для блога закрой служебные страницы:
Disallow: /author/
Disallow: /tag/
Disallow: /feed/
Раздельные правила для Яндекса и Google (если нужны):
User-agent: Yandex
Disallow: /admin
Crawl-delay: 2
User-agent: Googlebot
Disallow: /admin
Crawl-delay: 2 — пауза между запросами в секундах. Полезно, если сервер слабый. Google эту директиву игнорирует, Яндекс — соблюдает.
User-agent: * Disallow: /admin/ # служебное Disallow: /cart/ # корзина Disallow: /*sort= # сортировки-дубли на любой позиции Disallow: /search/ # внутренний поиск Sitemap: https://site.ru/sitemap.xml
Clean-param, Host и robots для CMS
Две директивы, о которых часто забывают. Clean-param велит Яндексу игнорировать GET-параметры (UTM-метки, сортировки, session id), чтобы один товар не плодил десятки дублей: Clean-param: utm_source&utm_medium /catalog/. Host раньше указывал главное зеркало — сейчас устарел, зеркала задаются 301-редиректом, и из robots его можно убрать.
У конструкторов и CMS свои нюансы. На Тильде robots правится в «Настройках сайта», в WordPress (вордпресс) файл отдаёт SEO-плагин Yoast или Rank Math, на Битрикс — модуль «Поиск». Google и Яндекс читают один и тот же файл, но Clean-param понимает только Яндекс; у гугла для параметров свои правила. Рядом появился llms.txt — отдельный файл-подсказка для AI-ботов, в robots.txt его не кладут, но ссылаются на него всё чаще.
Какие директивы понимают Яндекс и Google
Половина проблем с robots.txt растёт из статей десятилетней давности: там встречаются директивы, которые уже никто не учитывает. Актуальная картина на 2026 год.
| Директива | Яндекс | Что делает и когда нужна | |
|---|---|---|---|
User-agent | понимает | понимает | к какому роботу относится блок правил |
Disallow | понимает | понимает | закрывает обход адреса или раздела |
Allow | понимает | понимает | исключение внутри закрытого раздела |
Sitemap | понимает | понимает | адрес карты сайта, не привязан к User-agent |
Clean-param | понимает | игнорирует | склеивает адреса с незначащими параметрами — только для Яндекса |
Crawl-delay | игнорирует | игнорирует | устарела: скорость обхода задаётся в Вебмастере и Search Console |
Host | игнорирует | игнорирует | устарела: главное зеркало задаётся редиректом |
Noindex в robots.txt | игнорирует | игнорирует | никогда не работала как метатег, страницу так не убрать |
Маски * и $ | понимает | понимает | шаблоны адресов: любая подстрока и конец строки |
Clean-param. Директива говорит Яндексу, что адреса, отличающиеся только этим параметром, — одна и та же страница. Пишется как Clean-param: utm_source&utm_medium /. Для Google тот же результат даёт canonical, поэтому в норме используют оба инструмента сразу.Требования к файлам: размеры и формат
Ограничения редко всплывают на маленьком сайте и стабильно ломают крупные каталоги.
| Что | Ограничение | Что происходит при нарушении |
|---|---|---|
| robots.txt, расположение | строго в корне, имя строчными буквами | файл в подпапке робот не ищет вообще |
| robots.txt, размер | Google читает первые 500 КиБ | правила из хвоста файла не применяются |
| robots.txt, кодировка | UTF-8, обычный текст | файл в другой кодировке разбирается с ошибками |
| sitemap.xml, адресов | до 50 000 в одном файле | лишние адреса не обрабатываются |
| sitemap.xml, размер | до 50 МБ в несжатом виде | файл отклоняется целиком |
| Индекс карт | до 50 000 вложенных карт | карты сверх лимита игнорируются |
| Адреса внутри карты | абсолютные и с того же домена | чужие адреса отбрасываются |
Сжатие в .gz поддерживают оба поисковика, лимит в 50 МБ считается по несжатому файлу. Собрать и проверить карту можно генератором sitemap и разбором карты, а правила — генератором robots.txt.
Disallow не убирает страницу из выдачи
Самое дорогое заблуждение в теме. Disallow запрещает обход; показ он не запрещает. Если на закрытую страницу ведут ссылки, поиск может показать её в выдаче — без описания, с пометкой вроде «нет данных о странице». Содержимое робот при этом не видит, поэтому и переписать сниппет не выйдет.
| Задача | Что использовать | Почему так |
|---|---|---|
| Убрать страницу из выдачи | метатег noindex на самой странице | робот должен зайти и прочитать запрет — значит, адрес нельзя закрывать в robots.txt |
| Убрать срочно | удаление адреса в Вебмастере или Search Console | работает быстрее, но временно: без noindex страница вернётся |
| Не тратить обход на мусор | Disallow в robots.txt | фильтры, корзина, внутренний поиск, служебные разделы |
| Склеить дубли | canonical и Clean-param | страница остаётся доступной, вес переходит на основную |
Топ-7 ошибок в robots.txt
- 1
Disallow: / без условий
✗Disallow: /Закрывает весь сайт от индексации. Самая частая ошибка после тестового сервера или переноса — проверяй robots.txt сразу после релиза.
- 2
Закрытие CSS и JS
✗Disallow: /css/✗Disallow: /js/Поисковики читают эти файлы, чтобы понять, как выглядит страница; без них сайт ранжируется хуже. Что ресурсы не закрыты по ошибке, проверяют через валидатор микроразметки или анализ кода страницы.
- 3
Закрытие важных разделов
✗Disallow: /catalog/И весь каталог выпадает из индекса. Перепроверь каждую строку Disallow — что именно закрываешь.
- 4
Пробелы перед директивами
✗·Disallow:✓Disallow:С пробелом в начале строки директива не срабатывает. Пишите с первого символа, без отступа.
- 5
Скрытие секретов через robots.txt
✗Disallow: /admin/Файл публичный — его видят все, включая злоумышленников. Пути к админке и тестовым серверам туда не пишут: это готовая подсказка, куда стучаться. Закрывай их авторизацией.
- 6
Нет ссылки на sitemap
✓Sitemap: https://site.ru/sitemap.xmlБез неё робот не знает, где карта сайта. Всегда добавляй строку Sitemap: в конце файла.
- 7
Кириллица в URL без кодировки
✗Disallow: /категория✓Disallow: /kategoriyaКириллица в путях работает не везде. Используй URL-encoded формат или сразу транслит — например, через генератор транслита и ЧПУ-адресов.
Что такое sitemap.xml
sitemap.xml — это карта сайта в формате XML, в которой перечислены все важные страницы. Лежит в корне сайта (https://site.ru/sitemap.xml) или указывается в robots.txt.
Зачем нужен sitemap, если робот и так может ходить по ссылкам:
- Ускоряет индексацию. Робот видит весь список страниц сразу — не нужно ходить по ссылкам, чтобы их найти. Особенно важно для новых сайтов и больших каталогов.
- Помогает найти страницы без внутренних ссылок. Если на страницу никто не ссылается, робот её не найдёт. Sitemap решает.
- Передаёт метаданные. Ориентируйтесь на спецификацию schema.org для правильной структуры метаданных в XML. Можно указать дату последнего изменения, приоритет, частоту обновлений.
Без sitemap сайт тоже будет индексироваться, но медленнее. Подробнее про ускорение индексации — в отдельной статье.
Как создать sitemap.xml
Три способа в зависимости от размера сайта.
1. Через CMS — большинство сайтов. WordPress, Bitrix, Tilda, OpenCart, Shopify умеют генерировать sitemap автоматически. В WordPress есть плагины Yoast SEO, RankMath. В Tilda — настройка в кабинете. Проверь — обычно sitemap уже есть.
2. Через онлайн-сервисы — для статических и небольших сайтов. XML-Sitemaps.com (бесплатно до 500 URL), Screaming Frog (бесплатно до 500 URL). Генерируете один раз, загружаете в корень сайта, обновляете по необходимости.
3. Скриптом — для больших сайтов. Если на сайте 50 000+ страниц, нужен скрипт, который автоматически обновляет sitemap при добавлении новых страниц. Программисты пишут это за пару часов.
Минимальный sitemap.xml выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://site.ru/</loc>
<lastmod>2026-06-07</lastmod>
<priority>1.0</priority>
</url>
<url>
<loc>https://site.ru/uslugi/</loc>
<lastmod>2026-06-07</lastmod>
<priority>0.9</priority>
</url>
</urlset>
После создания файла обязательно подай его в Яндекс.Вебмастер (раздел «Индексирование → Файлы Sitemap») и Google Search Console.
Как прописать Sitemap в robots.txt
Чтобы поисковик быстрее нашёл карту сайта, ссылку на неё добавляют прямо в robots.txt отдельной директивой Sitemap. Это связывает два файла: робот открывает robots.txt и сразу видит, где лежит sitemap.xml. Синтаксис — одна строка с полным адресом карты:
Sitemap: https://site.ru/sitemap.xml
Правила директивы Sitemap:
- Только абсолютный URL — со схемой https:// и доменом. Относительный путь
/sitemap.xmlне сработает. - Место — любое. Директива Sitemap не привязана к User-agent, обычно её ставят в конце файла.
- Можно несколько. Если карт несколько (например, обычная и для видео), добавляют по строке
Sitemapна каждую. - Читают и Яндекс, и Google — обе системы понимают директиву одинаково.
Sitemap: /sitemap.xml — робот его не поймёт, нужен полный адрес. Адрес с http:// после переезда на https — карта считается чужой. И самая обидная: карта закрыта правилом Disallow в этом же файле, поэтому робот видит ссылку и не может её открыть.Пример готового robots.txt, где sitemap прописан в конце:
User-agent: *
Allow: /
Disallow: /admin/
Sitemap: https://site.ru/sitemap.xml
Когда директиву добавил, проверь её в Яндекс.Вебмастере — он покажет, видит ли робот карту. Директива в robots.txt не отменяет ручную подачу карты в Вебмастер и Search Console: делай и то, и другое, чтобы sitemap точно нашли и переобошли. Как ускорить сам обход — в разборе про ускорение индексации.
Что должно быть в sitemap, а чего быть не должно
Должно быть:
- Все коммерческие посадочные страницы;
- Все статьи блога;
- Карточки товаров (для интернет-магазинов);
- Категории и подкатегории;
- Главная страница;
- Страницы услуг.
Чего быть не должно:
- Страницы, закрытые в robots.txt — иначе сигналы получаются противоречивые;
- Страницы с canonical на другие URL — это дубли по сути;
- Страницы с noindex — зачем подавать в sitemap то, что не должно индексироваться;
- Битые ссылки (404);
- Страницы пагинации (page=2, page=3, etc) — индексируется первая, остальные через canonical;
- Внутренний поиск, корзина, фильтры с UTM-метками.
Если страниц очень много: Sitemap.xml ограничен 50 000 URL и 50 МБ. Для большего размера — несколько sitemap-файлов и общий sitemap-index, который их связывает. Это рутинная задача — все CMS делают автоматически.
| robots.txt | sitemap.xml | |
|---|---|---|
| Что это | Текстовый файл с правилами обхода | XML-файл со списком адресов сайта |
| Что говорит роботу | Куда ходить не нужно | Какие страницы существуют и когда менялись |
| Где лежит | Строго в корне: /robots.txt | Любой адрес, чаще /sitemap.xml |
| Основные директивы | User-agent, Disallow, Allow, Sitemap, Clean-param | loc, lastmod, priority |
| Убирает из индекса | Нет — закрывает только обход | Нет — робот воспринимает список как подсказку |
| Что будет, если файла нет | Робот обойдёт всё подряд, включая служебное | Робот найдёт страницы сам, но медленнее и не все |
| Частая ошибка | Disallow: / на боевом сайте и закрытые CSS с JS | Внутри лежат редиректы, 404 и закрытые от индексации адреса |
| Связь между собой | Ссылается на карту строкой Sitemap: | Адрес карты должен быть открыт в robots.txt |
Файлы решают разные задачи и не заменяют друг друга: первый ограничивает обход, второй его направляет. Ни один из них не убирает страницу из выдачи — для этого нужен noindex.
Как проверить, что robots.txt и sitemap работают
Чек-лист после настройки:
- Открой файлы в браузере: site.ru/robots.txt и site.ru/sitemap.xml. Оба должны открываться, отвечать кодом 200, показывать содержимое.
- Проверь robots.txt в Я.Вебмастере. Раздел «Инструменты → Анализ robots.txt». Введи адрес страницы — Вебмастер скажет, может робот по нему ходить или нет. Подробнее о Вебмастере — в отдельной статье.
- Подай sitemap в Вебмастер. Раздел «Индексирование → Файлы Sitemap → Добавить файл Sitemap». Вставь полный адрес. Через 1–2 дня появится статистика обработки.
- Подай sitemap в Google Search Console. Оба сервиса покажут подробную статистику по индексации и проблемам — Search Console для Google. Раздел «Индексирование → Файлы Sitemap».
- Прогони сайт через Screaming Frog или аналог. Обойди сайт краулером и посмотри, какие страницы доступны роботу. Если важные страницы помечены как «Disallowed» — что-то закрыто.
Если что-то сломано или robots закрывает важные страницы — заметишь за 1–2 недели по падению трафика. Лучше один раз настроить правильно, чем потом долго восстанавливаться.
Главное
robots.txt — это инструкции роботу: куда можно, куда нельзя. Лежит в корне сайта. Минимум: User-agent: *, Disallow закрытых разделов, Allow: /, ссылка на sitemap.
sitemap.xml — карта всех важных страниц для быстрой индексации. Лежит в корне сайта. Большинство CMS генерируют автоматически. Обязательно подавай в Я.Вебмастер и Search Console.
Топ-3 ошибки: Disallow: / без условий (закрывает весь сайт), закрытие CSS/JS, отсутствие ссылки на sitemap в robots.txt. Если нет уверенности, что всё настроено — закажи SEO-аудит.
Частые вопросы
Что такое файл robots.txt простыми словами?
Это текстовый файл в корне сайта, в котором владелец указывает поисковым роботам, какие разделы сайта можно индексировать, а какие нет. Открывается по адресу site.ru/robots.txt. Без файла робот считает, что можно индексировать всё. С криво настроенным файлом можно случайно закрыть весь сайт.
Зачем нужен sitemap.xml?
Это карта сайта со списком всех важных страниц. Помогает поисковому роботу быстро найти все страницы, особенно если они не связаны между собой ссылками или сайт большой. Без sitemap робот находит новые страницы медленнее — особенно на большом сайте или при слабой перелинковке. Лежит в корне сайта (site.ru/sitemap.xml) и подаётся в Яндекс.Вебмастер и Google Search Console.
Можно ли сделать robots.txt и sitemap самому?
robots.txt — да, это простой текстовый файл. Создаёте в блокноте по шаблону из этой статьи, загружаете в корень сайта. Sitemap.xml для маленького сайта тоже создаётся вручную или через бесплатные сервисы вроде XML-Sitemaps. Для больших сайтов и интернет-магазинов лучше использовать CMS-плагины, которые обновляют sitemap автоматически.
Где должны лежать robots.txt и sitemap.xml?
Оба файла лежат в корне сайта. Robots.txt доступен по адресу site.ru/robots.txt (это стандарт, путь нельзя менять). Sitemap.xml можно класть в любое место, но традиционно — в корне (site.ru/sitemap.xml). Главное — указать путь к sitemap в robots.txt директивой Sitemap: https://...
Что закрывать в robots.txt?
Стандартный набор: админку (/admin), корзину (/cart), внутренний поиск (/search), страницы фильтров с UTM-метками, страницы пагинации (если не используете canonical). Для интернет-магазинов — мусорные комбинации фасетной навигации. Для блога — теги, авторы, RSS-фиды. Не закрывай CSS/JS — поисковики используют их для анализа страницы.
Как проверить, правильно ли настроен robots.txt?
Самый надёжный способ — раздел «Инструменты → Анализ robots.txt» в Яндекс.Вебмастере. Вводи адрес любой страницы, и Вебмастер скажет, может робот по нему ходить или нет. Заодно проверь, что важные страницы (главная, услуги, статьи) НЕ помечены как «Disallowed». Через Screaming Frog можно сделать crawl и увидеть все заблокированные URL.
Как прописать sitemap в robots.txt?
Одной строкой с полным адресом карты: Sitemap: https://site.ru/sitemap.xml. Директива не привязана к User-agent, поэтому ставится в любом месте файла, обычно в конце. Относительный путь /sitemap.xml не работает, адрес нужен со схемой и доменом. Если карт несколько, добавляют строку на каждую либо одну строку на индекс карт. После правки проверь, что сама карта открывается по прямой ссылке и не закрыта правилом Disallow в этом же файле.
Нужно ли добавлять sitemap в robots.txt, если карта уже подана в Вебмастере?
Да, стоит сделать и то, и другое. Строка в robots.txt — способ, которым карту находит любой робот, включая тех, у кого нет твоей панели. Подача в Яндекс Вебмастер и Google Search Console даёт отчёт об обработке: сколько адресов прочитано и какие в файле ошибки. Одно другое не заменяет.
Почему страница закрыта в robots.txt, но показывается в поиске?
Потому что Disallow запрещает обход, а показ — нет. Если на закрытую страницу ведут ссылки, поиск может показать её в выдаче без описания. Чтобы страница ушла из результатов, нужен метатег noindex на самой странице, а адрес при этом должен быть открыт для обхода: иначе робот просто не прочитает запрет.
Под рукой: генератор robots.txt, генератор sitemap.xml и анализ карты сайта — собрать и проверить файлы за минуту.
