Yoast SEO. Как закрыть страницы пагинации и добавить ключевые слова
В плагине Yoast с версии 6.3 теперь нет вкладки Другое, а значит нет возможности закрыть страницы пагинации и нет возможности добавлять ключевые слова. У многих с этим возникли проблемы, хотя не понимаю зачем вообще такой функционал нужен. Поисковики и без него прекрасно все индексируют и никаких дублей нет. По крайней мере, по моим наблюдениям…
Но если надо то можно вывернуться так.
functions.php
через дочернюю тему или например пустой плагин. Прежде чем, вносить какие либо изменения, сделайте бекап сайта.Как закрыть от индексации страницы пагинации?
Тут все просто, проверяем что это страница пагинации и подсовываем ей метатег robots
/*
* Закрытие страниц пагинации от индексирования
*/
add_action( 'wp_head', 'art_noindex_paged', 2 );
function art_noindex_paged() {
if ( is_paged() ) {
echo '<meta name="robots" content="noindex,nofollow">';
}
}
Вот и все. До кучи, можно еще выключить канонические ссылки и теги 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
echo '<meta name="robots" content="noindex,nofollow">';
}
}
к содержанию
Надо ли закрывать от индексации страницы пагинации?
Вопрос на миллион! Точно никто не говорит, сколько людей столько и мнений. Но есть докуметация поисковиков.
Гугл
Гугл — молоток, все прекрасно понимает. Умеет определять теги rel="prev"
и rel="next"
, что как раз и позволяет не закрывать от индексации страницы пагинации.
В статье про обновление Yoast 6.3 есть ссылки на источники почитайте, многое станет понятнее
Яндекс
Тук как обычно, точно ничего не говорят. Вроде и rel="canonical"
понимают, но только как рекомендации. Погуглил немного. Есть два подхода
- Закрывать страницы пагинации — однозначно и обязательно
- Закрывать не надо. Но требуется:
- чтобы в теге
rel="canonical"
сслыки вели на главную - делать разные заголовки и описание в
title
иdescription
для каждой страницы пагинации
- чтобы в теге
Разные заголовки и описание можно добавить через настройки Yoast используя специальные переменные. Идем SEO → Заголовки и метаданные → Таксономии и добавляем нужные переменные. Должно быть так
Тогда в исходном коде будет так, при условии что у вас заполнено описание для рубрик
Что из этого получается и что верно, не знаю. Но судя по наблюдениям Гугл спокойно хавает страницы пагинации и никаких дублей нет, как будет вести себя Яндек не понятно, но вроде тоже пока дублей нет.
к содержаниюКак вернуть добавление ключевых слов после обновления Yoast?
Не знаю зачем нужны вам эти ключи, но если сильно надо, то все возможно.
_yoast_wpseo_metakeywords
. Правда данное поле работает только в статьях.Итак, возвращаем функционал добавления ключевых слов. Потребуется создать метабокс. Для этого проще использовать плагины, коих вагон:
Можно использовать любой из списка, будет отличаться только вывод полей. Рекомендую ACF (Advanced Custom Fields) показывать буду на нем.
После установки плагина появиться дополнительное меню
Создаем группу полей и в ней создаем одно текстовое поле.
Обязательно указываем: ярлык поля на русском, имя поля — на латинице (это важно!). И желательно для имени поля использовать префикс.
Указываем для чего использовать поле: записи, страницы, рубрики и т.д.
В данном случае, метабокс появиться в записях, страницах и рубриках.
Собственно и все. Теперь в записях появиться метабокс
Теперь осталось вывести значения этого поля. Более менее универсальный код (проверялся только с ACF).
/**
* Вывод значений ключевых слов
*/
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 '<meta name="keywords" content="' . esc_html( $keyword_single_field ) . '" />';
}
$term_id = get_queried_object();
$keyword_cat_field = get_term_meta( $term_id->term_id, 'art_meta_keywords', true );
if ( $keyword_cat_field ) {
echo '<meta name="keywords" content="' . esc_html( $keyword_cat_field ) . '" />';
}
}
к содержанию
Резюме
В итоге все должно получиться как было до обновления Yoast. Нужно это или нет, решать вам.
На этом все. Подписывайтесь на обновления, поделитесь статьей в соцсетях.
Всем удачи! Пока-пока.