Удаляем 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 дописать:

[sourcecode]remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );[/sourcecode]

Плагин WordPress SEO by Yoast

Исправить код плагина можно через админку или по 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

Тут всё аналогично. Ищем в файле 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";

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

Всё будет прекрасно работать, но только до следующего обновления плагина. Поэтому, чтобы решить эту проблему раз и навсегда необходимо в functions.php дописать:

add_filter('aioseop_prev_link', '__return_empty_string' );
 add_filter('aioseop_next_link', '__return_empty_string' );

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>