Канонические ссылки для постраничной навигации + Плагин

Практически на каждом сайте, будь это интернет магазин, личный блог, или сайт статейник, используется постраничная навигация. Есть админы сайтов, которые в robots.txt запрещают индексировать такие страницы, либо отключают пагинацию, но на самом деле они нужны для индексациии сайта.
Поисковая система Яндекс в своём справочнике писала как бороться с подобными страницами, ведь контент на них очень часто дублируется, что негативно сказывается на продвижение.
Яндекс предлагает на страницах вида /page/1/, /page/3/ указывать специальный тэг, в котором указана основная индексируемая страница.

Например с постраничной навигации разделов (http://сайт/ссылка на раздел/page/2), ссылаться на главную раздела
<link rel="canonical" href="http://сайт/ссылка на раздел/" />
Если постраничная навигации на Главной (http://сайт/page/5/)
<link rel="canonical" href="http://сайт/" />
Как сделать на WordPress?
Я не буду подробно объяснять данный код, просто расскажу как он работает. Когда роботы поисковых систем, или посетитель ходит по сайту, работает функция get_query_var , которая проверяет на какой странице пагинации мы находимся.
Если зашли в категорию, или на главную, то get_query_var вернёт значение «0», но стоит перейти на 1, вторую, третью страницу, скрипт начинает свою работу.
Фкнции:
is_category — Функция определяет находится ли посетитель в рубрике
is_home — Если это главная страница
get_category_link — возвращает URL рубрики по ID категории
get_option — функция возвращает данные из БД по названию настройки
А теперь сам код, который нужно внедрить в файл function.php
//С помощью хука wp_head добавим новые строчки в заголовки сайта
add_action('wp_head','add_cannonical');
function add_cannonical(){
if( get_query_var('paged')>0 ){
if(is_category()){
//Вытащим из объекта, ID текущей категории
$cat_id=get_queried_object()->term_id;
//Получаем ссылку на данную категорию
$link=get_category_link( $cat_id );
//Добавляем в header новый тег
echo "<link rel=\"canonical\" href=\"".$link."\" />";
}elseif( is_home() ){
//Достаём из базы данных ссылу на основной сайт
$link=get_option('siteurl');
//Добавляем в header новый тег
return "<link rel=\"canonical\" href=\"".$link."\" />";
}
}
}Для тех кто боится трогать файл function.php, я создал плагин на классе «Add Tag Canonical», просто загрузите его в папку с плагинами и активируйте. Плагин так же работает с дополнением woocommerce.

