robots.txt и sitemap.xml: как управлять индексацией
robots.txt и sitemap.xml — два служебных файла в корне сайта, которые управляют тем, как поисковые роботы его обходят. Первый говорит, куда роботу ходить не нужно: в корзину, поиск, фильтры, админку. Второй, наоборот, перечисляет страницы, которые вы хотите видеть в поиске. Ошибка в любом из них может месяцами держать сайт без трафика, хотя исправляется за минуты. Ниже — что писать в каждом файле, какие директивы действительно работают, как всё проверить и на чём чаще всего ошибаются.
Зачем сайту robots.txt и sitemap.xml
У каждого сайта есть два маленьких текстовых файла, которые решают, что поисковик увидит, а что — нет. Владельцы бизнеса о них обычно не знают. Узнают в тот момент, когда сайт три месяца висит в интернете, а в Яндексе его нет.
Мы регулярно начинаем аудит именно с robots.txt и sitemap.xml — и примерно на каждом третьем сайте находим там проблемы. Хорошая новость: чинится это быстро. Плохая: до этого сайт мог месяцами терять трафик на ровном месте.
| robots.txt | sitemap.xml | |
|---|---|---|
| Что делает | Запрещает или разрешает роботу обход разделов | Перечисляет страницы, которые нужно обойти |
| Где лежит | Только в корне: site.ru/robots.txt | Обычно в корне: site.ru/sitemap.xml, адрес можно задать любой |
| Формат | Обычный текстовый файл | XML-файл со списком адресов |
| Обязателен ли | Нет, но без него робот обходит всё подряд | Нет, но с ним новые страницы находятся быстрее |
| Чем опасна ошибка | Можно закрыть от поиска весь сайт | Робот тратит время на мусор или не узнаёт о новых страницах |
Как устроен robots.txt: директивы, которые работают
Файл состоит из блоков. Каждый блок начинается со строки, для какого робота он написан, а дальше идут правила. Директив, которые реально понимают и Яндекс, и Google, немного.
User-agent: *— правила для всех роботов. Вместо звёздочки можно указать конкретного:YandexилиGooglebot.Disallow: /cart/— запретить обход всего, что начинается с/cart/.Allow: /catalog/— разрешить обход. Нужна, чтобы открыть часть закрытого раздела.Sitemap: https://site.ru/sitemap.xml— полный адрес карты сайта. Указывается один раз, вне блоков.Clean-param: utm_source&utm_medium&utm_campaign— директива только для Яндекса: просит не считать отдельными страницами адреса, которые отличаются перечисленными параметрами.
В правилах работают два спецсимвола. Звёздочка * означает любую последовательность символов, знак $ — конец адреса. Например, Disallow: /*?sort= закрывает все адреса с параметром сортировки, а Disallow: /*.pdf$ — все файлы PDF.
В старых инструкциях встречаются директивы Host и Crawl-delay. Яндекс от них отказался: главное зеркало теперь определяется редиректом, а скорость обхода настраивается в Вебмастере. Google их не поддерживал никогда. Вреда от таких строк нет, но и пользы тоже — добавлять их в новый файл не нужно.
Чтобы не писать файл вручную и не ошибиться в синтаксисе, воспользуйтесь нашим генератором robots.txt: он собирает готовый файл для популярных CMS и для любого другого сайта, останется сверить его со своими разделами.
Что закрывать в robots.txt, а что нельзя
Логика простая: в индексе должны быть страницы, которые приносят клиентов, — услуги, товары, статьи. Всё служебное индексировать незачем.
- Корзину, оформление заказа и личный кабинет — там нет полезного контента.
- Результаты поиска по сайту: они генерируют бесконечное число мусорных страниц.
- Страницы фильтров и сортировок в каталоге — иначе интернет-магазин на 200 товаров превращается для робота в 20 000 почти одинаковых URL, и он тратит время на дубли вместо карточек товаров.
- Админку и технические разделы.
- Адреса с рекламными метками и служебными параметрами.
У поисковиков есть лимит на обход — робот не будет сканировать сайт бесконечно. Если он утонул в страницах фильтров, до новых товаров может просто не дойти. Подробнее о том, откуда берутся копии страниц и как с ними бороться, — в статье про дубли страниц и canonical.
Есть и то, что закрывать нельзя. Файлы стилей, скриптов и картинки должны быть доступны роботу: без них он не может увидеть страницу так, как её видит человек, и оценивает её хуже. Запрет на папки с оформлением — частая ошибка в файлах, скопированных из старых шаблонов.
robots.txt не удаляет страницу из поиска
Это самая частая путаница. Запрет в robots.txt означает «не обходи», а не «убери из выдачи». Если на закрытую страницу ведут ссылки, поисковик может показывать её в результатах — без описания, с одним адресом.
Чтобы страница гарантированно не попала в поиск, используют метатег noindex в коде самой страницы. И здесь ловушка: если страница одновременно закрыта в robots.txt, робот на неё не зайдёт и метатег не увидит. Правило такое: либо запрет обхода в robots.txt, либо noindex на открытой для робота странице — но не оба сразу.
| Задача | Чем решать |
|---|---|
| Не тратить время робота на служебные разделы | Disallow в robots.txt |
| Убрать конкретную страницу из выдачи | Метатег noindex, страница открыта в robots.txt |
| Склеить копии одной страницы | Атрибут canonical или Clean-param для Яндекса |
| Спрятать личные данные и закрытые документы | Авторизация на сайте; robots.txt здесь не защита |
| Срочно убрать страницу из результатов | Инструмент удаления страниц в панели вебмастера плюс noindex или код 404 |
И ещё: robots.txt открыт всем. Любой человек может набрать его адрес и прочитать. Перечислять в нём «секретные» папки — значит подсказывать, где их искать.
Один символ, который убивает сайт целиком
Классическая история. Разработчики делают сайт на тестовом домене и закрывают его строчкой Disallow: / — чтобы недоделанная версия не попала в поиск. Это правильно. Потом сайт переезжает на боевой домен, а строчка остаётся.
К нам пришёл клиент — мебельное производство. Новый сайт запустили в декабре, к марту из поиска не пришло ни одного человека. Директор грешил на дизайн и уже собирался всё переделывать. Мы открыли robots.txt — там стоял тот самый Disallow: / с разработки. Весь сайт был закрыт от индексации четыре месяца. Убрали одну строчку, отправили страницы на переобход — через три недели пошёл первый поисковый трафик.
Проверьте свой сайт прямо сейчас: откройте адрес вида vash-sait.ru/robots.txt. Если видите Disallow: / без уточнений — у вас проблема. Как устроить разработку так, чтобы тестовая версия не мешала боевой, мы описали в статье про тестовую копию сайта.
Sitemap.xml: список приоритетов, а не гарантия
Карта сайта sitemap.xml — противоположность robots.txt: она не запрещает, а подсказывает. Это список всех страниц, которые вы хотите видеть в поиске, с датами обновления. Робот сверяется с ним и понимает, куда идти в первую очередь.
Тут есть распространённое заблуждение. Наличие страницы в sitemap не гарантирует, что она попадёт в индекс. Поисковик всё равно сам решает, достойна ли страница выдачи. Карта сайта лишь ускоряет знакомство робота с сайтом — особенно это заметно на больших каталогах и после публикации новых разделов.
Что должно быть в карте, а чего быть не должно:
- Только рабочие страницы. Адреса, которые отвечают кодом 200, а не ошибкой 404 и не редиректом.
- Только то, что открыто для индексации. Страница из карты, закрытая в robots.txt или метатегом, — противоречие, о котором панели вебмастеров сообщают как об ошибке.
- Только основные версии. Без копий с параметрами, без адресов с http, если сайт работает по https.
- Честная дата изменения. Поле
lastmodдолжно меняться, когда меняется содержимое страницы, а не при каждой генерации файла. - Без лишних полей.
priorityиchangefreqможно не заполнять: Google прямо говорит, что не учитывает их.
В одном файле карты помещается до 50 000 адресов. Большим сайтам делают несколько файлов — отдельно товары, категории, статьи — и объединяют их индексным файлом, который ссылается на остальные.
Следите, чтобы карта обновлялась автоматически. Мы встречали sitemap, который сформировали при запуске сайта и забыли: за два года в каталоге появилось 300 новых товаров, а в карте их не было. Робот находил их медленно и неохотно. В современных CMS карту формирует сам движок или плагин — нужно лишь убедиться, что он включён.
Как настроить оба файла: пошагово
- Откройте
site.ru/robots.txtиsite.ru/sitemap.xmlв браузере. Убедитесь, что оба файла существуют и открываются. - Выпишите разделы, которым не место в поиске: корзина, кабинет, поиск, фильтры, админка, служебные параметры.
- Составьте robots.txt: блок
User-agent: *, правилаDisallowдля каждого раздела, строкаSitemapс полным адресом карты. - Проверьте, что не закрыли лишнего: главную, каталог, карточки, статьи, файлы стилей и скриптов.
- Включите автоматическую генерацию sitemap.xml в CMS и убедитесь, что в карту попадают только страницы, открытые для индексации.
- Добавьте карту в Яндекс Вебмастер и Google Search Console.
- Через несколько дней посмотрите отчёты: сколько страниц из карты обработано и нет ли ошибок.
Как проверить robots.txt и sitemap.xml
В Яндекс Вебмастере есть раздел «Инструменты» → «Анализ robots.txt»: вставляете любой URL сайта и видите, открыт он для робота или закрыт и каким именно правилом. Там же, в разделе «Индексирование» → «Файлы Sitemap», можно добавить карту сайта и следить за ошибками в ней. Какие ещё отчёты стоит просматривать регулярно, мы собрали в обзоре Яндекс Вебмастера.
В Google Search Console аналогично: отчёт «Файлы Sitemap» покажет, сколько страниц из карты Google принял, а инструмент проверки URL — почему конкретная страница не в индексе. Пятнадцать минут раз в месяц на оба сервиса — и вы застрахованы от сюрпризов.
Проверять файлы стоит не только по расписанию, но и после каждого крупного изменения: редизайна, смены движка, переезда на другой домен, обновления SEO-плагина. Именно в такие моменты правила чаще всего перезаписываются.
Частые ошибки
- Забытый
Disallow: /. Сайт закрыт целиком после переноса с тестового домена. - Закрытые стили и скрипты. Робот видит страницу без оформления и считает её неудобной.
- Попытка убрать страницу из поиска запретом в robots.txt. Страница остаётся в выдаче, только без описания.
- Карта сайта с мусором. В ней удалённые товары, редиректы и закрытые страницы — робот тратит обход впустую.
- Карта не обновляется. Новые страницы в неё не попадают, и поисковик узнаёт о них с опозданием.
- Файл лежит не там. robots.txt в подпапке или с другим именем не работает вообще.
- Разные правила для Яндекса и Google по недосмотру. Если в файле есть отдельный блок для одного робота, общий блок
User-agent: *этот робот уже не читает.
Проблемы с этими файлами — лишь одна из причин, по которым сайт не получает трафик. Остальные мы разобрали в статье почему сайт не в ТОПе.
Чек-лист проверки за десять минут
- robots.txt открывается по адресу в корне сайта.
- В файле нет строки Disallow: / без уточнений.
- Корзина, кабинет, поиск и фильтры закрыты от обхода.
- Стили, скрипты и картинки роботу доступны.
- В robots.txt указан полный адрес карты сайта.
- sitemap.xml открывается и содержит актуальные страницы.
- В карте нет закрытых, удалённых и перенаправляющих адресов.
- Карта добавлена в Яндекс Вебмастер и Search Console, ошибок в отчётах нет.
Коротко
robots.txt запрещает роботу обход служебных разделов, sitemap.xml подсказывает, какие страницы важны. Первый не удаляет страницы из поиска, второй не гарантирует попадание в индекс — но без обоих сайт индексируется медленнее и хуже. Проверяйте файлы после каждого крупного изменения сайта и хотя бы раз в месяц заглядывайте в отчёты вебмастеров.
Если сомневаетесь, что с индексацией вашего сайта всё в порядке, — покажите его нам. В CasperLab проверка robots.txt и sitemap.xml входит в базовый аудит при продвижении сайта: найдём закрытые разделы, мусор в индексе и подскажем, что исправить.
Продвинуть сайт в CasperLab
Поможем подобрать решение под вашу задачу и рассчитаем стоимость без обязательств.
Продвинуть сайт