Тег canonical в карте сайта

Карта сайта разбивается плагином PageNavi на страницы, но…

Тайтл всех страниц карты один, так же все страницы карты имеют одинаковый тег canonical указывающий только первую страницу.

В следствии чего, поисковики индексируют только первую страницу карты.

Как решить проблему?

Заранее благодарен, за подсказку.

Можно добавить подобный фрагмент в functions.php активной темы:

function rel_canonical_paged() {
    echo "<link rel='canonical' href='http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}' />\n";
}

function replace_rel_canonical() {
    if ( is_page('sitemap') ) {
        remove_action('wp_head', 'rel_canonical');
        add_action('wp_head', 'rel_canonical_paged');
    }
}
add_action('wp', 'replace_rel_canonical');

Подразумевается, что страница карты имеет ярлык sitemap.

Спасибо Сергей, помогли.

Сорри может за глупый вопрос
Под ярлыком что понимается ?
Если карта у меня находится по адресу :
…./karta-sajta
то в коде надо поменять sitemap на karta-sajta ?

И вообще с этой гадской канонизацией.
Я вот хотел публиковать большие статьи и бить их на страницы тегом nextpage
А увидал, как яша мне зарубил вторую часть карты сайта и призадумался – а надо-ли это делать ????

Если карта у меня находится по адресу :
..../karta-sajta
то в коде надо поменять sitemap на karta-sajta ?

Да.

То в коде надо поменять sitemap на karta-sajta ?

А ещё убрать дублирование тега canonical…

Sergey Biryukov, спасибо.

А как решить аналогичную проблему для постов, разделенных на части ?

WordPress присваивает первой части статьи rel=’canonical’ и поисковики индексируют только ее, а все следующие части нет.

remove_action( ‘wp_head’, ‘rel_canonical’ );

Спасибо.

remove_action( 'wp_head', 'rel_canonical' );

Сорри, а это надо вставлять конкретно в пост, поделенный на страницы ?

Какой смысл вставлять php-код в пост? Код – к коду. Например, в functions.php Темы.

Anonymous
Отправить
Ответ на: