В данной статье рассмотрим технически верную работу с файлом robots.txt в WordPress и его рекомендуемое содержимое.
Подразумеваем, что вы знакомы с назначением файла, но напомним, что файл robots.txt необходим для поисковых роботов, чтобы указать какие разделы/страницы сайта посещать, а какие посещать не нужно. Закрытые страницы не будут попадать в индекс поисковиков.
На большинстве сайтов файл robots.txt создается вручную и размещается в файловой структуре сайта, такой подход имеет место быть, но накладывает ряд ограничений. Например, если на сайте реализована поддоменная сеть и хочется на каких-то поддоменах скрыть одни типы страниц, а на других нет, то при использовании статичного файла это сделать не получится.
Ниже рассмотрим динамическую работу с файлом robots в рамках WordPress.
Начнем с того, что в WordPress файл robots.txt в идеальных условиях не лежит физически в корне сайта. При обращении к адресу: домен/robots.txt WP перехватывает запрос и формирует ответ на PHP, за это отвечает функция do_robots().
Для удобства принцип работы мы схематично отобразили ниже:

То-есть, не имея никакого файла в структуре мы можем перейти по адресу domen/robots.txt и обнаружим стандартный файл, создаваемый WordPress с таким содержимым:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://domain/sitemap.xml
Данный роботс нельзя назвать полноценным, поэтому рассмотрим варианты взаимодействия с ним, их два: полностью сформировать свой хуком-действием do_robotstxt или дополнить дефолтный файл хуком фильтром robots_txt. Если забыли принцип работы, то можете вернуться к нашей схеме. Обратите внимание, что все хуки ниже будут работать только в том случае, если в папке сайта нет статичного файла robots.txt.
Добавляем свои данные в конец дефолтного файла, используя robots_txt:
add_filter( 'robots_txt', function( $output, $public ) {
return rtrim( $output ) . "\n\n# bot-test\n";
}, 100, 2 );
После сохранения в файле будет:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://domain/sitemap.xml
# bot-test
Генерируем свой роботс, используя do_robotstxt:
add_action( 'do_robotstxt', function() {
echo "bot-test\n";
exit;
} );
После сохранения в файле robots будет только:
bot-test
Таким образом, разобрались как работать с генерацией файла robots, далее рассмотрим его содержимое.
Напомним из чего состоит файл robots и приведем условно универсальный вариант содержимого robots.txt. Имейте, ввиду, что конкретно для вашего случая понадобятся корректировки.
Для удобства напомним, за что отвечают каждая из директив.
User-agent
Кому относятся правила ниже по файлу.
User-agent: * — для всех роботов
User-agent: Yandex / Googlebot — только для указанного бота
Disallow
Запрещает обход URL, где есть указанная подстрока.
Disallow: /cgi-bin # каталог скриптов
Disallow: *?s= # поиск по сайту
Disallow: */page/ # пагинация
Disallow: */embed$ # URL, оканчивающиеся на /embed
Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.
Заполнить заявку
13691 тендер
проведено за восемь лет работы нашего сайта.
Разрешает обход там, где сработал более широкий Disallow.
Пример: закрыли /wp-, но нужны файлы в uploads:
Disallow: /wp-
Allow: */uploads
Порядок Allow и Disallow в файле не важен — роботы сортируют правила сами.
Ссылка на XML-карту сайта:
Sitemap: https://domain/sitemap.xml
User-agent: * # Создаем секция правил для роботов, подразумевается для всех роботов. Чтобы указать секцию правил для отдельного робота, вместо укажите его: GoogleBot, Yandex.
Disallow: /cgi-bin # Папка на хостинге.
Disallow: /wp-admin/ # Админка.
Disallow: /? # Все параметры запроса на главной.
Disallow: *?s= # Поиск.
Disallow: *&s= # Поиск.
Disallow: /search # Поиск.
Disallow: /author/ # Архив автора, если у вас нет расширенного функционала блога, в котором он нужен.
Disallow: */embed$ # Все встраивания.
Disallow: */xmlrpc.php # Файл WordPress API
Disallow: utm= # Ссылки с utm-метками
Disallow: *openstat= # Ссылки с метками openstat
Allow: /wp-admin/admin-ajax.php # Откроем аякс.
В статье рассмотрели динамическую генерацию файла и его основное содержимое. Если у вас появились вопросы или требуется настройка файла robots на вашем сайте, то пишите, будем рады помочь.