Практическое руководство по созданию файла robots.txt для WordPress

Иллюстрация к записи: поисковой робот сканирует страницы сайта на WordPress

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

Что такое robots.txt?

Robots.txt — это текстовый файл, который содержит директивы и их значения для управления индексированием сайта в поисковых системах.

В базовый набор директив (параметров) для поисковой системы Яндекс входят:

Директива Описание
User-agent Указывает на робота, для которого действуют правила (например, Yandex).
Allow Разрешает обход и индексирование разделов, страниц, файлов.
Disallow Запрещает обход и индексирование разделов, страниц, файлов.
Clean-param Указывает роботу, какие параметры URL (например, UTM-метки) не следует учитывать при индексировании.
Sitemap Указывает путь к файлу Sitemap, который размещен на сайте.

Все директивы, кроме Clean-param одинаково интерпретируются в других поисковых системах и помогают решить 90% задач связанных с индексированием сайтов на WordPress.

Краулинговый бюджет: что это и как им управлять

Важно понимать, что файл robots.txt не является инструментом для запрета индексирования сайта. Поисковая система Google может не учитывать значения директив и индексировать страницы по своему усмотрению.

Crawler (веб-паук, краулер) или поисковой бот. Его задачи: найти, прочитать и внести в поисковую базу данных веб-страницы найденные в Интернете.

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

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

Где находится robots.txt в WordPress

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

Плагины позволяют редактировать robots.txt из панели администратора WordPress и не создают копию файла в корневой папке сайта (например, в режиме Multisite).

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

  • Наличие файла в корневой директории,
  • Правильный ответ сервера (код 200 ОК),
  • Допустимый размер файла (не более 500 Кб).

После проверки сообщите поисковым системам о внесении изменений.

Стандартный robots.txt

После инсталляции WordPress 5.9.3 по умолчанию robots.txt выглядит так:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

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

Из содержания следует, что разработчики рекомендуют закрывать от поисковых машин раздел административной панели, кроме сценария admin-ajax.php из этой же директории. При составлении файла robots.txt для любого проекта под управлением WordPress это необходимо учитывать.

Правильный robots.txt

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

Системные директории и файлы

Директория / Файл Описание
/wp-admin Панель администратора
/wp-json JSON REST API
/xmlrpc.php Протокол XML-RPC

Параметры URL

Параметр Описание
s Стандартная функция поиска
author Личная страница пользователя
p&preview Просмотр черновика записи
customize_theme Изменение внешнего вида темы оформления
customize_autosaved Автосохранение состояния кастомайзера

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

Примечательно, что системные каталоги, файлы и параметры URL можно запретить с помощью директивы Disallow без использования Clean-param. В результате правильный robots.txt для WordPress выглядит так:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

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

Не забудьте изменить значение директивы Sitemap.

Это универсальная конфигурация robots.txt для сайтов под управлением WordPress.

Значение /*? директивы Disallow запрещает к индексированию все параметры URL для главной страницы, записей и категорий. В том числе: рекламные UTM-метки, параметры плагинов, поисковых систем, сервисов коллтрекинга и CRM-платформ.

Отлично! Теперь перейдем к индивидуальной настройке.

Несколько примеров из практики

Запрет индексирования AMP страниц в поиске Яндекса

Сайт использует плагин для генерации мобильных страниц в формате AMP для поисковой системы Google. Яндекс их не поддерживает, но умеет сканировать. Для экономии квоты, запрещаем обход AMP страниц для Яндекса с помощью директивы Disallow:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /amp
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

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

Не забудьте изменить значение директивы Sitemap.

Запрет индексирования служебных URL

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

  • https://example.com/login,
  • https://example.com/register,
  • https://example.com/reset-password.

Предварительно, исключим страницы из wp-sitemap.xml и добавим запрет на их сканирование с помощью директивы Disallow в файле robots.txt:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /amp
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

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

Не забудьте изменить значение директивы Sitemap.

Использование директивы Clean-param

Директива Clean-param позволяет гибко настроить индексирование страниц с параметрами URL, которые влияют на содержание страниц.

Она поддерживается только поисковой системой Яндекса. Поисковые роботы Google теперь работают с параметрами URL автоматически.

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

Параметр Описание
orderby Функция сортировки
add-to-cart Функция добавления товара в корзину
removed_item Функция удаления товара из корзины

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

Разрешим сканирование параметров URL в каталоге, где установлен Woocommerce. Определим лишние параметры — это add-to-cart и removed_item. Воспользуемся директивой Clean-param и внесем изменения:

User-agent: *
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

User-agent: Yandex
Allow: /catalog/?
Allow: /wp-admin/admin-ajax.php
Allow: /*.js
Allow: /*.css
Disallow: /*?
Disallow: /amp
Disallow: /login
Disallow: /register
Disallow: /reset-password
Disallow: /wp-admin
Disallow: /wp-json
Disallow: /xmlrpc.php

Clean-param: add-to-cart
Clean-param: removed_item

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

Не забудьте изменить значение директивы Sitemap.

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

Отслеживание лишних страниц в поисковой консоли

Для получения максимального эффекта регулярно отслеживайте сканирование страниц в поисковой консоли Яндекса (разд. Статистика обхода) и запрещайте обход лишних страниц в robots.txt.

При настройке robots.txt я не рекомендую:

  • Запрещать обход страниц пагинации записей и разделов (используйте атрибут rel="canonical"),
  • Исключать из поиска комментарии пользователей к записям,
  • Запрещать сканирование системных папок, где хранятся изображения, скрипты и стили тем оформления WordPress: wp-content, wp-includes и пр.

Как сообщить об изменениях поисковикам

Для отправки изменений используйте инструменты для анализа robots.txt в Яндекс.Вебмастер и Google Search Console.

Аватар пользователя: Николай Дубков
@dubkov
Веб-разработчик, автор сервиса для комплексного анализа сайтов, в прошлом сертифицированный специалист по Яндекс.Директ (2017-2019). Иногда отвечаю на вопросы про SEO на Хабре.