Настройка robots.txt: полное руководство

Robots.txt — это первый файл, который ищут поисковые роботы при посещении сайта. Я работаю с ним уже больше 10 лет, и честно говоря, видел столько ошибок в его настройке, что хватило бы на отдельную книгу ужасов.

Что такое robots.txt и зачем он нужен

Robots.txt — это текстовый файл, который лежит в корне сайта и указывает поисковым роботам, какие страницы индексировать можно, а какие — нельзя. Грубо говоря, это вежливая просьба к поисковикам, а не строгое правило.

На моей практике был случай с интернет-магазином, где неправильно настроенный robots.txt заблокировал индексацию всех товаров. Трафик упал на 80% за месяц. А всё из-за одной лишней строчки в файле.

Но robots.txt нужен не только для блокировки. Я использую его для:

ℹ️
Важно знать: robots.txt — это не закон для поисковиков. Это рекомендация, которую они могут проигнорировать. Для жёсткой блокировки используйте метатег noindex или закрытие через .htaccess.

Где расположить robots.txt

Файл robots.txt должен лежать строго в корне домена. То есть по адресу example.com/robots.txt. Никаких поддиректорий, никаких вариантов.

У меня был клиент, который создал robots.txt в папке /seo/robots.txt и удивлялся, почему роботы его не видят. А всё потому, что поисковики ищут файл только в корне.

Права доступа к файлу должны быть 644. Проверить это можно через FTP или файловый менеджер хостинга:

chmod 644 robots.txt

Кодировка файла — обязательно UTF-8. Иначе кириллица в комментариях может отображаться некорректно. Я всегда проверяю это в редакторе перед загрузкой на сервер.

Базовая структура robots.txt

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

Вот базовый пример robots.txt, который я использую для большинства проектов:

User-agent: *
Disallow: /admin/
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /search?
Disallow: /*?print=Y
Disallow: /*?PAGEN_
Allow: /

Sitemap: https://example.com/sitemap.xml

Каждая группа правил начинается с User-agent и заканчивается пустой строкой. Это важно — без пустой строки поисковики могут неправильно интерпретировать правила.

⚠️
Частая ошибка: многие забывают про регистр символов. В robots.txt он имеет значение! Disallow и disallow — это разные директивы для робота.

Настройка robots.txt для разных CMS

Robots.txt для WordPress

Для WordPress я обычно использую такой robots.txt:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Disallow: /wp-content/cache/
Disallow: /wp-json/
Disallow: /xmlrpc.php
Disallow: /*?s=
Disallow: /*?p=
Disallow: /author/
Disallow: /tag/
Allow: /wp-content/uploads/

User-agent: Yandex
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /*?s=
Crawl-delay: 1

Sitemap: https://example.com/sitemap.xml

Особенность WordPress в том, что он генерирует много служебных URL. Я всегда блокирую поиск (/?s=), страницы авторов и тегов, если они не нужны для SEO. При оптимизации WordPress правильный robots.txt может существенно снизить нагрузку на сервер.

Robots.txt для Битрикс

В Битрикс ситуация сложнее из-за большого количества служебных файлов:

User-agent: *
Disallow: /bitrix/
Disallow: /upload/tmp/
Disallow: /personal/
Disallow: /auth/
Disallow: /search/
Disallow: /*?action=
Disallow: /*?PAGEN_
Disallow: /*?print=Y
Disallow: /*?SHOWALL_
Disallow: /*?clear_cache=Y
Allow: /bitrix/images/
Allow: /bitrix/templates/
Allow: /upload/

User-agent: Yandex
Crawl-delay: 2

Sitemap: https://example.com/sitemap.xml

В Битрикс я всегда блокирую папку /bitrix/ целиком, но делаю исключения для изображений и шаблонов. Это критически важно, иначе CSS и JS файлы могут не индексироваться.

Правильное блокирование страниц

Блокировка страниц — это искусство. Нужно найти баланс между защитой от индексации мусора и доступностью важного контента.

Что обязательно блокировать

На основе моего опыта, вот список того, что нужно блокировать в 99% случаев:

Использование wildcards

В robots.txt можно использовать символы подстановки:

Например, чтобы заблокировать все PDF файлы:

User-agent: *
Disallow: /*.pdf$

А чтобы заблокировать все параметры с сортировкой:

User-agent: *
Disallow: /*?sort=

Честно говоря, с wildcards нужно быть осторожным. Я однажды заблокировал все изображения на сайте, написав Disallow: /*.jpg — забыл про $, и в итоге заблокировались все страницы, содержащие .jpg в URL.

💡
Лайфхак: всегда тестируйте robots.txt в Google Search Console или Яндекс.Вебмастере. Там есть инструмент проверки, который покажет, заблокирован ли конкретный URL.

Настройка для разных поисковых роботов

Разные поисковые роботы ведут себя по-разному. Я всегда настраиваю отдельные правила для основных ботов.

Настройка для Googlebot

Google довольно лояльно относится к сайтам, но не любит дублированный контент:

User-agent: Googlebot
Disallow: /search?
Disallow: /*?utm_
Disallow: /*?ref=
Disallow: /print/
Crawl-delay: 1

Настройка для Яндекса

Яндекс более агрессивен в сканировании. У меня был сайт, где Яндексбот создавал нагрузку в 200+ запросов в секунду:

User-agent: Yandex
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=
Crawl-delay: 3

User-agent: YandexBot
Crawl-delay: 3

User-agent: YandexImages
Disallow: /private/
Allow: /

Для Яндекса я всегда ставлю Crawl-delay не менее 2-3 секунд. Иначе сервер может не выдержать нагрузки.

Блокировка агрессивных ботов

Некоторые боты слишком агрессивны. Я блокирую их полностью:

User-agent: AhrefsBot
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: SemrushBot
Disallow: /

Эти боты часто создают большую нагрузку на сервер, а пользы от них мало.

Указание sitemap.xml

В robots.txt обязательно нужно указывать путь к карте сайта. Это помогает поисковикам быстрее находить новые страницы.

Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-images.xml
Sitemap: https://example.com/sitemap-news.xml

Можно указать несколько sitemap файлов. Я обычно разделяю их по типам контента — отдельно для страниц, изображений и новостей.

Важно использовать полный URL с протоколом. Относительные пути работают не всегда корректно.

Тестирование и валидация robots.txt

После создания robots.txt его обязательно нужно протестировать. Я использую несколько инструментов:

Google Search Console

В GSC есть раздел "Тестирование robots.txt". Там можно проверить, как Google интерпретирует ваш файл:

  1. Заходим в Search Console
  2. Открываем "Сканирование" → "Тестирование robots.txt"
  3. Вводим URL для проверки
  4. Смотрим результат

Яндекс.Вебмастер

У Яндекса тоже есть инструмент проверки robots.txt в разделе "Индексирование".

Онлайн-валидаторы

Я часто использую robotstxt.org для быстрой проверки синтаксиса. Он показывает ошибки форматирования.

⚠️
Внимание: изменения в robots.txt начинают действовать не сразу. Поисковики перечитывают файл с периодичностью от нескольких часов до нескольких дней.

Частые ошибки и проблемы

За годы работы я собрал целую коллекцию ошибок в robots.txt. Вот самые частые:

Блокировка всего сайта

Классика жанра — кто-то пишет:

User-agent: *
Disallow: /

И потом удивляется, почему сайт исчез из поиска. Был у меня клиент, который три месяца не мог понять, почему нет трафика.

Неправильная кодировка

Если robots.txt сохранён в Windows-1251 вместо UTF-8, поисковики могут неправильно его интерпретировать. Особенно это касается комментариев на кириллице.

Лишние пробелы и символы

Пробелы в конце строк или табы вместо пробелов могут сломать парсинг файла. Я всегда проверяю это в редакторе с включённым показом невидимых символов.

Блокировка CSS и JS

Google рекомендует не блокировать CSS и JavaScript файлы. Они нужны для корректного рендеринга страниц:

User-agent: *
Disallow: /wp-includes/
Allow: /wp-includes/css/
Allow: /wp-includes/js/

Продвинутые техники

Условная блокировка по User-agent

Иногда нужно настроить разные правила для разных ботов. Например, разрешить Google сканировать больше, а Яндексу — меньше:

User-agent: Googlebot
Disallow: /admin/
Allow: /

User-agent: Yandex
Disallow: /admin/
Disallow: /api/
Disallow: /search/
Crawl-delay: 5

Блокировка по времени

Хотя в стандартном robots.txt нет директивы для блокировки по времени, можно использовать серверные скрипты для генерации динамического robots.txt.

Я делал такую настройку для интернет-магазина, который обновлялся каждую ночь. В это время роботы получали более ограниченный доступ.

Интеграция с .htaccess

Для дополнительной защиты можно настроить .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/admin/ [NC]
RewriteCond %{HTTP_USER_AGENT} !(googlebot|yandexbot) [NC]
RewriteRule ^(.*)$ - [F,L]

Это заблокирует доступ к /admin/ для всех, кроме основных поисковых ботов.

Мониторинг и аналитика

Настройка robots.txt — это не разовая задача. Нужно регулярно мониторить, как поисковики сканируют сайт.

Анализ логов сервера

Я всегда анализирую логи доступа, чтобы понять поведение ботов:

grep "Googlebot" /var/log/nginx/access.log | head -20

Это покажет, какие страницы сканирует Google и с какой частотой.

Мониторинг ошибок сканирования

В Google Search Console и Яндекс.Вебмастере есть отчёты об ошибках сканирования. Я проверяю их еженедельно.

Если вижу много заблокированных URL, которые должны индексироваться, пересматриваю настройки robots.txt.

Robots.txt для e-commerce проектов

Интернет-магазины требуют особого подхода к настройке robots.txt. У меня есть клиент с каталогом в 50 000 товаров, и неправильная настройка может стоить серьёзных денег.

Блокировка фильтров и сортировки

Фильтры создают миллионы дублей. Их обязательно нужно блокировать:

User-agent: *
Disallow: /*?filter=
Disallow: /*?sort=
Disallow: /*?price_from=
Disallow: /*?brand=
Disallow: /*?in_stock=
Disallow: /catalog/*?*&*

Управление пагинацией

С пагинацией сложнее. Полностью блокировать её нельзя — потеряете товары. Я использую такой подход:

User-agent: *
Allow: /catalog/*/page-2/
Allow: /catalog/*/page-3/
Disallow: /catalog/*/page-*

Это разрешает первые несколько страниц пагинации, но блокирует глубокие.

Корзина и личный кабинет

Эти разделы точно не должны попадать в поиск:

User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /wishlist/
Disallow: /compare/

Один раз видел интернет-магазин, где в поиске Яндекса показывались страницы корзин с товарами. Это была катастрофа для конверсии.

Правильная настройка robots.txt — это основа технического SEO. Я видел, как грамотно настроенный файл увеличивал скорость индексации в 2-3 раза. И наоборот — неправильная настройка может похоронить весь SEO-трафик.

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

Нужна помощь с SEO-оптимизацией вашего сайта?

Доверьте настройку robots.txt и другие SEO-задачи нашим экспертам для максимальной видимости в поисковых системах.

П
Павел
Веб-разработчик · 10+ лет опыта · Bitrix, WordPress, Laravel

Читайте также

Почему сайт медленно работает и как это исправить Как перенести сайт на другую CMS Переезд с WordPress на Битрикс: пошаговый план