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

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

Практически на каждом сайте, будь это интернет магазин, личный блог, или сайт статейник, используется постраничная навигация. Есть админы сайтов, которые в 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.

Добавить комментарий

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

*
*