В данной статье мы подробно рассмотрим хук wp_robots
, который позволяет управлять мета-тегом robots
на страницах вашего сайта. Этот тег используется для управления индексированием страниц поисковыми системами, и его правильная настройка может существенно повлиять на видимость вашего сайта в поисковых системах.
apply_filters( ‘wp_robots’, array $robots )
Хук wp_robots
предоставляет возможность фильтровать директивы, которые будут включены в мета-тег robots
. Этот тег будет добавлен в <head>
секцию HTML-кода страницы, только если это необходимо.
Параметры
$robots
(массив): Ассоциативный массив директив. Каждый ключ должен быть именем директивы, а соответствующее значение может быть либо строкой, задающей значение для директивы, либо логическимtrue
, если директива не требует значения.
Добавление директивы noindex
В этом примере мы добавим директиву noindex
, чтобы закрыть страницу от индексации поисковыми системами.
add_filter( 'wp_robots', function( $robots ) {
$robots['noindex'] = true;
return $robots;
} );
Этот код можно вставить в файл вашей темы functions.php
. Таким образом, вы укажете поисковым системам не индексировать текущую страницу.
Управление индексированием по ID страницы
Если вы хотите более точно контролировать, какие страницы закрыть от индексации, вы можете использовать ID страницы:
add_filter( 'wp_robots', function( $robots ) {
$page_id = get_the_ID();
if ( 42 === $page_id ) { // Проверяем, является ли ID страницы 42
$robots['noindex'] = true;
}
return $robots;
} );
Этот код закроет от индексации страницу с ID 42, если она существует.
Директивы мета-тега robots
Мета-тег robots
будет выводиться в следующем формате:
<meta name='robots' content='директива, директива'>
Например:
<meta name='robots' content='noindex, follow, max-image-preview:large' />
Если в результате применения фильтра массив $robots
будет пустым, то мета-тег robots
не будет выведен.
Примеры использования
#1 Закрытие от индексации определенных страниц
Мы можем закрыть от индексации страницы вложений, пагинации и архивов записей:
add_filter( 'wp_robots', 'custom_robots_tag' );
function custom_robots_tag( $robots ) {
// Закрываем страницы вложений, пагинации и архивов
if ( is_attachment() || is_paged() || is_post_type_archive() ) {
$robots['noindex'] = true;
}
// Закрываем таксономии, если для терминов не указано описание
if ( ( is_category() || is_tag() || is_tax() ) && ! trim( get_queried_object()->description ) ) {
$robots['noindex'] = true;
}
// Закрываем страницы с параметром запроса ?filter
if ( isset( $_GET['filter'] ) ) {
$robots['none'] = true;
}
return $robots;
}
#2 Удаление нежелательных директив
Предположим, что у вас есть плагин, который добавляет директиву noindex
на страницы, которые не должны быть закрыты от индексации. Вы можете удалить эту директиву следующим образом:
add_filter( 'wp_robots', 'remove_noindex_directive' );
function remove_noindex_directive( $robots ) {
// Удаляем директиву noindex
unset( $robots['noindex'] );
return $robots;
}
Заключение
Хук wp_robots
предоставляет мощные возможности для управления индексированием страниц вашего сайта. Используя примеры, приведенные в этой статье, вы сможете настроить мета-тег robots
в соответствии с вашими потребностями. Если вам необходимо более тонкое управление, не стесняйтесь адаптировать приведенные примеры под свои задачи.