Удаляем link rel=’prev’ и link rel=’next’ из кода WordPress

Содержание:

Как известно сейчас поисковые системы Яндекс и Гугл наказывают за дублирование контента. При чём часто под санкции попадают самые обычные блоги на WordPress, которые не создают специально дублированные страницы, не занимаются чёрным SEO. То есть даже Ваш обычный бложик может иметь такую проблему.

Дубли это результат работы некоторых плагинов и самого движка WordPress. Прямо сейчас откройте исходный код (сочетание клавиш Ctrl+U) страницы рубрики, тегов или любой другой страницы где есть пагинация и проверьте поиском наличие такого фрагмента кода:

rel="next" или rel='prev'

Вот как это может выглядеть:

Удалить rel='next' и rel='prev'Это конечно не катастрофа, но по таким ссылкам перетекает статический вес страницы + создаются дубли. Поэтому если хотите избавиться от этой проблемы - то вперёд.

Итак самые известные "вредители" это любимые многими сео-плагины All in One SEO Pack и WordPress SEO by Yoast. Иногда появление такого кода  - это проблемы установленной темы.

к содержанию ↑

В некоторых устаревших темах реализована функция создающая ссылки на предыдущий и следующий пост. Для удаления его необходимо в functions.php дописать:

remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );

Плагин WordPress SEO by Yoast

 

  1. Вариант первый - через хак. Добавляем в functions.php.
add_filter( 'wpseo_next_rel_link', '__return_false' );
add_filter( 'wpseo_prev_rel_link', '__return_false' );

2. Можно исправить код плагина, но будет работать только до следующего обновления. Исправить код плагина можно через админку или по FTP. Через админпанель:

изменения плагинаЕсли по FTP, то  соединяемся с сайтом и в папке плагина находим файл wordpress-seo/frontend/class-frontend.php. Скачиваем его, открываем и находим примерно такие строки

$this->adjacent_rel_link( 'prev', $url, ( $paged - 1 ), true );

и комментируем их:

//$this->adjacent_rel_link( 'prev', $url, ( $paged - 1 ), true );

Я искал такие строки по фрагменту adjacent_rel_l, смотрите рисунок:

WordPress SEO by Yoast удаление дублейВсего таких строк мне пришлось закомментировать шесть.

Теперь обновляем страницу, снова смотрим исходный код - и вуаля - проблема решена.

к содержанию ↑

Плагин All in One SEO Pack

 

  1. Вариант первый - через хак. Всё будет прекрасно работать, но только до следующего обновления плагина. Поэтому, чтобы решить эту проблему раз и навсегда необходимо в functions.php дописать:
add_filter('aioseop_prev_link', '__return_empty_string' );
add_filter('aioseop_next_link', '__return_empty_string' );

2. И редактированием файлов. Тут всё аналогично. Ищем в файле aioseop_class.php строки:

if ( !empty( $prev ) ) $meta_string .= "<link rel='prev' href='" . $prev . "' />\n";
if ( !empty( $next ) ) $meta_string .= "<link rel='next' href='" . $next . "' />\n";

И удаляем или комментируем их.

А вот теперь уже точно всё

Удачи Вам в борьбе с дублями!

4 комментария к “Удаляем link rel=’prev’ и link rel=’next’ из кода WordPress”

Оставьте ответ

Ваш Email не будет опубликован. Обязательные поля отмечены*