Как запретить индексирование внутренних ссылок | Часть 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

Автор n-wp.ru — блога о WordPress для новичков.

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

  1. Anna Volkova

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

    Ответить
  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;
    }
    Ответить
    1. iLemmy

      Эм, а как закрыть от поисковиков переводчики страниц, например последний освещенный — Transposh.

      Ответить
  3. Anna Volkova

    спасибо :)

    Ответить