SEO

Nofollow для всех внешних ссылок в WordPress

29 ноября 2015 195

Если вы знакомы с основами SEO-оптимизации сайтов, должны знать, что такое ссылки с запрещенным переходом (nofollow) и для каких целей они используются.

ThemeForest: Лучшие темы для WordPress
ThemeForest: Лучшие темы для WordPress

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

nofollow — это значение атрибута rel тега « a » языка гипертекстовой разметки веб-страниц HTML ( rel=»nofollow» ). Значение предназначено для поисковых систем: оно указывает им на то, что гиперссылке, задаваемой « a », не следует никаким образом передавать ТиЦ и PR. Википедия

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

На самом деле все очень просто.

Сниппет простановки атрибута nofollow для всех внешних ссылок WordPress

Всего несколько строк кода в файле функций (functions.php) вашей активной темы, автоматически добавят атрибут nofollow всем внешним ссылкам, выводящимся непосредственно в контенте и анонсах вашего блога.

add_filter('the_content', 'my_nofollow');
add_filter('the_excerpt', 'my_nofollow');
function my_nofollow($content) {
    return preg_replace_callback('/<a[^>]+/', 'my_nofollow_callback', $content);
}
function my_nofollow_callback($matches) {
    $link = $matches[0];
    $site_link = get_bloginfo('url');
    if (strpos($link, 'rel') === false) {
        $link = preg_replace("%(href=\S(?!$site_link))%i", 'rel="nofollow" $1', $link);
    } elseif (preg_match("%href=\S(?!$site_link)%i", $link)) {
        $link = preg_replace('/rel=\S(?!nofollow)\S*/i', 'rel="nofollow"', $link);
    }
    return $link;
}

Минусы сниппета заключаются в том, что он не обрабатывает виджеты, элементы интерфейса, не имеет никаких настроек, исключений и прочего. Впрочем, в 99% случаях ничего этого и не нужно.

Плагин простановки атрибута nofollow внешним ссылкам в WordPress

Плагинов с подобным функционалом не мало. Все мы их рассматривать, естественно, не будем. Остановимся на одном из них — External Links.

External Links

Плагин, обрабатывающий внешние ссылки WordPress.

  Скачать

Страница настроек плагина External Links выглядит так:

Nofollow для всех внешних ссылок в WordPress

Плагин работает аналогично приведенному выше сниппету, обрабатывая все внешние ссылки, встречающиеся в контенте. Но в отличие от сниппета, имеет некоторые настройки. В частности, плагин может обрабатывать не только ссылки из контента и виджетов. Он справляется абсолютно со всеми ссылками, которые встречаются на вашем сайте. Также можно пометить все внешние ссылки специальной иконкой, задать открытие внешних ссылок в новых окнах/табах. Имеется возможность автоматического конвертирования текста в ссылки. А самое главное, можно задать исключения. Например, домены сайтов, ссылки на которые не будут помечаться атрибутом nofollow.

Автор: Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе WordPress.

Комментарии

Разгоните свой WordPress

Хостинг-провайдер номер один в России — REG.RU

Подробнее