Как запретить индексирование внутренних ссылок | Часть 1

Иногда требуется максимально сократить количество индексируемых внутренних ссылок. Сделать это не сложно – достаточно добавить в ссылку rel=”nofollow”. Однако есть одна загвоздка. Сделать эту прививку легко, если ссылка в шаблоне указана явным образом. Если же ссылка появляется в результате работы какой-нибудь функции или виджета, то в лоб решить эту задачу не получится. Придется разбирать виджет или функцию по винтикам, выискивая, как формируется эта самая ссылка. С функциями, создаваемым плагинами, проблем нет – можно заглянуть в файл плагина и поправить его. А вот что делать, когда в шаблоне используются стандартные функции и виджеты движка? Лезть в системные файлы WordPress? Во-первых, это не очень хорошо, ибо допустив ошибку, можно лишить блог работоспособности. Во-вторых, после обновления опять придется лезть в системные файлы и опять их редактировать.

Я задал вопрос, как запретить индексирование внутренних ссылок, создаваемых виджетами и функциями движка? Откликнулся пользователь ctapbiu, который предложил несколько простых фильтров для автоматического добавления к внутренним ссылкам rel=”nofollow”. Фильтры настолько простые и действительно работоспособные, что не поделиться ими со всеми я не имею права.

Чтобы воспользоваться фильтрами, вставьте их в файл functions.php.

Nofollow для ссылок виджета WP_Widget_Calendar

add_filter('get_calendar', 'fb_get_calendar');
function fb_get_calendar($text) {
$text = preg_replace('#href="#', 'rel="nofollow" href="', $text);
return $text;
}

Nofollow для ссылок виджета архивов WP_Widget_Archives

add_filter('get_archives_link', 'fb_get_archives_link');
function fb_get_archives_link($text) {
$text = preg_replace('#href='#', 'rel="nofollow" href='', $text);
return $text;
}

Nofollow для ссылок виджета страниц WP_Widget_Pages

add_filter('wp_list_pages', 'fb_wp_list_pages');
function fb_wp_list_pages($text) {
$text = preg_replace('#href="#', 'rel="nofollow" href="', $text);
return $text;
}

Надеюсь, что многим сеошникам, озабоченным количеством индексируемых ссылок, а так же блоггерам, зарабатывающим на ссылочных биржах с жесткими требованиями к количеству индексируемых внутренних ссылок, и конечно же просто для тех, кто хочет оптимизировать блог в глазах поисковиков, закрыв лишние ссылки, представляющие интерес только для людей, эти фильтры будут полезны. Кстати, вы думаете, это всё? Ошибаетесь – вас ждет вторая часть!

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

4 Комментарии

  1. А как бы запретить индексацию облака тегов, подскажете? Сами теги к статьям у меня закрыты, а вот в облаке почему-то открыты…

  2. Вы имеете ввиду виджет wp_tag_cloud?
    Может быть вот так?

    add_filter('wp_tag_cloud', 'fb_wp_tag_cloud');
    function fb_wp_tag_cloud($text) {
    $text = preg_replace('#href="#', 'rel="nofollow" href="', $text);
    return $text;
    }
    • Эм, а как закрыть от поисковиков переводчики страниц, например последний освещенный – Transposh.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*