Yoast SEO. Как закрыть страницы пагинации и добавить ключевые слова

В плагине Yoast с версии 6.3 теперь нет вкладки Другое, а значит нет возможности закрыть страницы пагинации и нет возможности добавлять ключевые слова. У многих с этим возникли проблемы, хотя не понимаю зачем вообще такой функционал нужен. Поисковики и без него прекрасно все индексируют и никаких дублей нет. По крайней мере, по моим наблюдениям…

Но если надо то можно вывернуться так.

Внимание!
Весь код необходимо добавлять в файл functions.php через дочернюю тему или например пустой плагин. Прежде чем, вносить какие либо изменения, сделайте бекап сайта.
к содержанию

Как закрыть от индексации страницы пагинации?

Тут все просто, проверяем что это страница пагинации и подсовываем ей метатег robots

/*
 * Закрытие страниц пагинации от индексирования
 */
add_action( 'wp_head', 'art_noindex_paged', 2 );
function art_noindex_paged() {
   if (is_paged()){
      ?>
      <meta name="robots" content="noindex,nofollow">
      <?php
   }
}

Вот и все. До кучи, можно еще выключить канонические ссылки и теги rel="prev" и rel="next", чтобы поисковые системы не вводить в заблуждение.

/**
 * Закрытие страниц пагинации от индексирования
 */
add_action( 'wpseo_head', 'art_noindex_paged', 0 );
function art_noindex_paged() {
   
   if (is_paged()){
      add_filter( 'wpseo_canonical', '__return_false' ); // отключаем канонические ссылки
      add_filter( 'wpseo_disable_adjacent_rel_links', '__return_true' );// отключаем теги prev|next
      ?>
      <meta name="robots" content="noindex,nofollow">
      <?php
   }
}
к содержанию

Надо ли закрывать от индексации страницы пагинации?

Вопрос на миллион! Точно никто не говорит, сколько людей столько и мнений. Но есть докуметация поисковиков.

Гугл

Гугл — молоток, все прекрасно понимает. Умеет определять теги rel="prev" и rel="next", что как раз и позволяет не закрывать от индексации страницы пагинации.

В статье про обновление Yoast 6.3 есть ссылки на источники почитайте, многое станет понятнее

Яндекс

Тук как обычно, точно ничего не говорят. Вроде и rel="canonical" понимают, но только как рекомендации. Погуглил немного. Есть два подхода

  1. Закрывать страницы пагинации — однозначно и обязательно
  2. Закрывать не надо. Но требуется:
    • чтобы в теге rel="canonical" сслыки вели на главную
    • делать разные заголовки и описание в title и description для каждой страницы пагинации

Разные заголовки и описание можно добавить через настройки Yoast используя специальные переменные. Идем SEO → Заголовки и метаданные → Таксономии и добавляем нужные переменные. Должно быть так

Переменная page для уникализации заголовков и описаний страниц пагинации
Переменная page для уникализации заголовков и описаний страниц пагинации

Тогда в исходном коде будет так, при условии что у вас заполнено описание для рубрик

Результат уникализации заголовков и описаний страниц пагинации
Результат уникализации заголовков и описаний страниц пагинации

Что из этого получается и что верно, не знаю. Но судя по наблюдениям Гугл спокойно хавает страницы пагинации и никаких дублей нет, как будет вести себя Яндек не понятно, но вроде тоже пока дублей нет.

к содержанию

Как вернуть добавление ключевых слов после обновления Yoast?

Не знаю зачем нужны вам эти ключи, но если сильно надо, то все возможно.

Нюанс!
Если вы до обновления использовали добавление ключевых слов и у вас было много статей с заполненным этим полем, то вернуть значения возможно используя название поля _yoast_wpseo_metakeywords. Правда данное поле работает только в статьях.

Итак, возвращаем функционал добавления ключевых слов. Потребуется создать метабокс. Для этого проще использовать плагины, коих вагон:

Можно использовать любой из списка, будет отличаться только вывод полей. Рекомендую ACF (Advanced Custom Fields) показывать буду на нем.

После установки плагина появиться дополнительное меню

Управление ACF

Создаем группу полей и в ней создаем одно текстовое поле.

Группа полей в ACF

Обязательно указываем: ярлык поля на русском, имя поля — на латинице (это важно!). И желательно для имени поля использовать префикс.

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

Местоположение поля в ACF

В данном случае, метабокс появиться в записях, страницах и рубриках.

Собственно и все. Теперь в записях появиться метабокс

Метабокс для ввода ключевых слов

Теперь осталось вывести значения этого поля. Более менее универсальный код (проверялся только с ACF).

Внимание! Код работает в именем поля art_meta_keywords Если вы изменили имя, тогда измените его в коде.
Обновление! В код добавлен вывод значений полей на страницах рубрик.
/**
 * Вывод значений ключевых слов
 */
add_action( 'wp_head', 'art_add_field_keyword', 1 );
function art_add_field_keyword() {
	global $post;
	$keyword_single_field = get_post_meta( $post->ID, 'art_meta_keywords', true );
	if ( $keyword_single_field ) {
		echo '';
	}
	$term_id           = get_queried_object();
	$keyword_cat_field = get_term_meta( $term_id->term_id, 'art_meta_keywords', true );
	if ( $keyword_cat_field ) {
		echo '';
	}
	
}
к содержанию

Резюме

В итоге все должно получиться как было до обновления Yoast. Нужно это или нет, решать вам.

На этом все. Подписывайтесь на обновления, поделитесь статьей в соцсетях.

Всем удачи! Пока-пока.

Об авторе
Артем Абрамович

Автор и ведущий проекта «Финты WordPress». WordPress & WooCommerce разработчик. Четыре года создаю плагины и темы. В свободное время пишу статьи, видеообзоры, гайды.