Robots API в WordPress

WordPress 5.7 представляет нам Robots API, дающий контроль над мега-тегом robots. Кроме того, он добавляет в него значение max-image-preview:large.

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

<!DOCTYPE html>
<html>
    <head>
        <meta name="robots" content="max-image-preview:large" />
    </head>

Теперь WordPress будет добавлять автоматически этот мета-тег со значением max-image-preview:large для всех сайтов, у которых в Настройки – Чтение не указано скрытие от поисковиков.

Функция wp_robots()

Про функцию wp_robots() читайте в Кодексе.

Функция автоматически добавляется на хук wp_head:

add_action( 'wp_head', 'wp_robots', 1 );

Отключить вы тоже можете её так же, как она и была включена:

remove_action( 'wp_head', 'wp_robots', 1 );

Ну и читайте подробнее про фильтры в WordPress.

А если хотите последовательно прокачать свои знания в WordPress? Тогда могу порекомендовать вам свой видеокурс по созданию темы на основе HTML-вёрстки.

Также разработчики плагинов и тем не должны использовать эту функцию напрямую, всегда вешаем как хук, например:

add_action( 'truemisha_custom_head', 'wp_robots', 25 );

Изменяем значение мета тега robots при помощи хуков

У функции wp_robots() есть одноимённый фильтр-хук, при помощи которого мы можем изменить значение мета-тега по умолчанию.

По сути и сама функция пустая и основывается тупо на фильтрах. Если её не хукать, то и мета-тег будет пустой.

Значение мета-тега robots по умолчанию

Я уже упоминал выше, что мета-тег robots теперь автоматически добавляется на хук wp_head(). И его значение по умолчанию для разрешённых для индексации сайтов (Настройки > Чтение) такое:

<meta name="robots" content="max-image-preview:large" />

Вы кстати можете отключить именно директиву max-image-preview при помощи строки:

remove_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );

Не знаете, куда вставлять код? Читайте это.

Давайте более подробно разберём, как генерируются мета-теги:

  • Когда чекбокс «Попросить поисковые системы не индексировать сайт» включен, то в тег будет добавлено значение noindex,nofollow, а директива max-image-preview:large – нет.
  • Когда сайт редактируется через Customizer, то в тег будет добавлено значение noindex.
  • Страница авторизации WordPress включает noindex,noarchive тег, как и было ранее, а также тег <meta name="referrer" content="strict-origin-when-cross-origin" />

Добавляем произвольные значения в мета-тег robots

В хук wp_robots вы можете передать ассоциативный массив ключ=>значение. Для того, чтобы добавить свои значение тега, используем:

add_filter( 'wp_robots', 'truemisha_custom_robots' );
 
function truemisha_custom_robots() {
 
	$robots[ 'follow' ] = true;
	return $robots;
 
}

В итоге код выше (не знаете куда вставлять?) добавляет значение follow уже к существующим директивам, например, учитывая, что у нас по умолчанию выводится max-image-preview:large, то мета-тег станет выглядеть так:

<meta name="robots" content="max-image-preview:large, follow" />

Также у вас есть возможность исключить уже добавленные ранее директивы:

add_filter( 'wp_robots', 'truemisha_custom_robots', 25 );
 
function truemisha_custom_robots() {
 
	unset( $robots[ 'max-image-preview' ] );
	$robots[ 'follow' ] = true;
	return $robots;
 
}

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!