Как убрать циклические ссылки из меню, логотипа и комментариев

Циклические ссылки — ссылки, ведущие на ту же страницу, на которой находятся.

Какой вред от циклических ссылок

Наличие таких ссылок негативно сказывается на удобстве использования сайта, так как никакого веса они не передают и только вводят пользователя в заблуждение, когда он пытается перейти по ним и в итоге оказывается на той же странице, с которой уходил. Чем больше на сайте таких ссылок, тем менее удобно им пользоваться.

Из-за циклических ссылок

  • другие страницы сайта недополучают статический вес
  • напрасно расходуется бюджет индексирующего робота
  • пользователю такая ссылка точно не нужна, поскольку он уже находится на этой странице — для чего ему с этой же страницы переходить на неё же?

Можно ли оставить циклические ссылки

Следует убрать циклические ссылки или сделать их не активными. Это позволит поисковым системам не зацикливаться на одной и той же странице, а следовательно, быстрее индексировать ваш сайт и добавлять в результаты поиска новые страницы.

Где чаще всего находятся циклические ссылки

Одно из самых распространенных мест появления таких ссылок — это меню сайта. При его создании часто забывают не только выделять пункт меню, на который только что нажал пользователь, цветом, но и сделать этот пункт неактивной ссылкой, чтобы не было возможности перейти по нему повторно.

Часто, даже в платных темах для Вордпресс, разработчики оставляют недоработки в виде циклических ссылки из активных пунктов меню и логотипа.

Как их найти

  • Проверка наличия циклических ссылок есть в онлайн сервисе СайтРепорт.
  • Заказать Seo-аудит у SeoPult или Сайтклиник или
  • провести аудит самому, используя WebSite Auditor.

Удаляем циклические ссылки из меню

Если нужно убрать ссылку из текущего пункта меню, являющимся названием рубрики (категории), чтобы он перестал быть ссылкой на странице этой рубрики, это можно сделать как минимум тремя способами:

  1. С помощью jqery — будет работать, но этот вариант работает только на стороне пользователя.
  2. Можно сделать на php, чтобы сразу на сервере все это делалось и пользователю выдавался конечный результат.
  3. Подключив плагин Remove Redundant Links (Удаление лишних ссылок).

Первый способ на jQery

Довольно просто сделать если подключен jQuery. Код выглядит так:

Код:

<script>
(function($) {
  $('.current-menu-item').find('a').removeAttr('href');
}(jQuery));
</script>
Удаление циклических ссылок из меню, логотипа и комментариев

Dacian G / Shutterstock.com

Второй способ на PHP (рекомендуется)

  1. Открываем файл functions.php вашей темы.
  2. Вставляем код, который будет удалять ссылки из активного пункта меню.

Код:

function no_link_current_page( $p ) {
    return preg_replace( '%((current_page_item|current-menu-item)[^<]+)[^>]+>([^<]+)</a>%', '$1<a>$3</a>', $p, 1 );
}
add_filter('wp_nav_menu', 'no_link_current_page');

Обратите внимание! Скорее всего у вас слетят стили активного пункта меню и после применения данной функции он будет выглядеть некорректно. Поэтому текущий пункт меню рекомендую обвертывать в span и прописать для него те же стили, какие были у активного элемента.

Код:

function no_link_current_page( $p ) {
    return preg_replace( '%((current_page_item|current-menu-item)[^&lt;]+)[^&gt;]+&gt;([^&lt;]+)&lt;/a&gt;%', '$1<span style="color: #ff0000;">&lt;span&gt;</span>$3<span style="color: #ff0000;">&lt;/span&gt;</span>', $p, 1 );
}
add_filter('wp_nav_menu', 'no_link_current_page');

Стили прописываются в style.css, а идентификатор так:

Код:

... '$1<span>$3</span>' ...

Третий способ: плагин Remove Redundant Links

Да он тоже выполняет аналогичную работу. Установили плагин и циклических ссылок нет. Но в нем столько кода…

Он оставляет фрагменты кода ссылки (<a>) и еще свой стиль дописывает:

<a>Здесь была циклическая ссылка</a>

Если не совсем не знаете php и боитесь залезть в код, то можете скачать плагин Remove Redundant Links здесь: https://wordpress.org/plugins/remove-redundant-links/changelog/

Как удалить циклические ссылки из комментариев

У кого стандартные комментарии, для тех тоже есть лекарство от цикличных ссылок 🙂

add_filter( 'cancel_comment_reply_link', '__return_false' );

Этот код также нужно добавить в файл функций вашей темы.

Как удалить циклическую ссылку с логотипа

Чтобы убрать ссылку на главной, нужно добавить проверку:

<?php
if ( is_front_page() ) {
    // логотип без ссылки
} else {
    // лого со ссылкой
}
?>

Кстати, функция is_home() не всегда срабатывает, поэтому рекомендуется использовать is_front_page().

Потому что is_home() определяет главную страницу только если она не статическая.

Понравилось? Расскажите друзьям и оцените статью
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...
  • http://vk.com/id161156171 Миша Алтайский

    Получается что в случае с меню надо $3 обернуть стилем как и в дефолтном меню?

  • Алексей

    Второй способ Циклическая ссылка в рубриках при удалении вашим кодом остается в коде страницы закрывающий тег Как от него можно избавиться?