Meta-тег robots играет важную роль в SEO, управляя индексацией страниц поисковыми системами. В WordPress по умолчанию выводятся различные meta-теги, включая robots, и иногда появляется необходимость изменить или полностью удалить этот тег для отдельных страниц или всего сайта. В этой статье мы разберем, как программно контролировать meta robots в WordPress без использования плагинов.
Что такое meta robots и зачем его менять в WordPress
Meta robots — это HTML-тег, который сообщает поисковым роботам, можно ли индексировать страницу и следовать по ссылкам на ней. Типичные значения — index, follow (разрешить индексацию и переход по ссылкам), noindex, nofollow (запретить).
WordPress и SEO-плагины по умолчанию добавляют этот тег для управления индексацией. Однако бывают ситуации, когда нужно удалить этот тег или задать собственные правила, например:
- Убрать meta robots с определенных страниц (архивы, категории, страницы авторов).
- Изменить поведение для кастомных типов записей.
- Оптимизировать SEO без установки дополнительных плагинов.
Как WordPress выводит meta robots: разбор механизма
По умолчанию WordPress в заголовке страницы использует функцию wp_robots(), которая подключена через хук wp_head. Эта функция выводит тег meta robots с параметрами, основанными на условиях запроса (например, главная страница, архив, страница записи).
Если нужно изменить или удалить тег, достаточно отписаться от вызова wp_robots и написать свою реализацию.
Удаление meta robots с помощью отключения стандартного вывода
Для полного удаления meta robots из <head> добавьте в файл functions.php вашей темы следующий код:
remove_action('wp_head', 'wp_robots');
Этот код отменит стандартную функцию вывода. Однако теперь meta robots не будет выводиться вообще, что не всегда желательно.
Кастомизация meta robots с условием
Чтобы гибко управлять значением meta robots, создадим свою функцию и подключим её к wp_head вместо стандартной. Например, удалим тег на страницах автора и архивов, а на остальных оставим с параметрами по умолчанию.
remove_action('wp_head', 'wp_robots');
add_action('wp_head', 'wphelper_custom_meta_robots');
function wphelper_custom_meta_robots() {
if (is_author() || is_archive()) {
// Не выводим meta robots
return;
}
$robots = ['index', 'follow'];
// Пример: на страницах с определенным типом записи запрещаем индексацию
if (is_singular('custom_post_type')) {
$robots = ['noindex', 'nofollow'];
}
echo '<meta name="robots" content="' . esc_attr(join(', ', $robots)) . '">' . "\n";
}
Такой подход позволяет задать разные правила для разных типов страниц без плагинов.
Пример: как добавить meta robots noindex для страниц пагинации
Часто страницы пагинации (например, /page/2) не нужны в индексе, чтобы избежать дублирования. Добавим это правило:
function wphelper_custom_meta_robots() {
if (is_paged()) {
echo '<meta name="robots" content="noindex, follow">\n';
return;
}
// Остальной код как в предыдущем примере
}
Как проверить, что meta robots работает корректно
После внесения изменений откройте исходный код страницы в браузере (Ctrl+U) и найдите тег <meta name="robots">. Убедитесь, что он выводится там, где нужно, и отсутствует там, где мы его отключили.
Кроме того, можно использовать инструменты для вебмастеров Google Search Console для проверки индексации и сканирования страниц.
Использование плагинов из WPShop для управления SEO
Если вы хотите более гибкое управление SEO, можно обратить внимание на плагин Clearfy Pro от WPShop. Он предлагает удобные настройки для управления meta robots и другими SEO параметрами без необходимости писать код.
Итог
Управление meta robots без плагинов — полезный навык для разработчика WordPress. Используя remove_action и свою функцию вывода, можно гибко настраивать индексацию страниц. Такой подход помогает избежать лишних плагинов и держать сайт легким и быстрым.