Закрыть ссылку от индексации

Для того чтобы закрыть ссылку от индексации, поисковые системы официально рекомендуют использовать атрибут nofollow, но в последнее время все чаще можно услышать мнение о неэффективности данного метода.

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

В данной статье я хочу рассказать вам о альтернативном методе, как закрыть внешние ссылки от индексации на WordPress сайте без использования дополнительный плагинов. Ссылка, которую мы хотим закрыть, будет выглядеть в глазах поисковых систем как обычный фрагмент текста, но при этом как и при использовании тэга <a> перенаправлять посетителей на другие сайты.

Для того чтобы закрыть ссылку от индексирования, мы будем записывать ее в виде текста размещенного внутри HTML-тега <span>. Самостоятельно <span> не имеет логического значения и выполняет функцию тэга-контейнера, который используют для форматирования или назначения уникального идентификатора выделенному фрагменту текста.

Чтобы сделать закрытую ссылку в браузере посетителя активной и ничем не отличающейся от других ссылок, мы будем использовать внутри HTML-документа специальный JavaScript код. Дополнительно назначим для тэга <span> стили оформления, которые уже используют ссылки на нашем сайте.

Закрыть ссылку от индексации в WordPress

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

Открываем панель управления WordPress и переходим в меню «Внешний вид» — «Редактор». Необходимо добавить в файл footer.php перед закрытием тега </body> следующий скрипт:

<script type= "text/javascript">function GoTo(link){window.open(link.replace("url:","http://"));}</script>

Для тега <span> необходимо указать стили таким образом, чтобы формат текста своим внешним видом ничем не отличался от обычной ссылки на нашем сайте. Открываем файл style.css, копируем код из примера ниже и устанавливаем значение селекторов CSS под внешний стиль ссылок.

.spanurl {
  color: #333;
  border-bottom: 1px solid #333;
  cursor:pointer;
}
.spanurl:hover {
  color: #707070;
  border-bottom: none;
}

Теперь, чтобы закрыть ссылку от индексации, вместо обычной ссылки <a href="url"></a> необходимо использовать следующий код:

<span class="spanurl" onclick="GoTo('url:example.com/')">Example Domain</span>

Каждый раз копировать данный код не очень удобно, чтобы легко закрыть ссылку от индексации я предлагаю использовать специально предназначенный для этого шорткод. Для этого необходимо добавить в файл functions.php код из примера ниже:

function shortcode_spanurl($content) {
 
    $pattern = '/[spanurl](.*?)<a (.*?)href=["']([a-zA-Z]+://)?(.*?)["'](.*?)>(.*?)</a>(.*?)[/spanurl]/i';
    $spanurl = preg_replace($pattern, "$1<span class='spanurl' onclick="GoTo('url:$4')">$6</span>$7", $content);
 
return $spanurl;
}
add_filter('the_content', 'shortcode_spanurl');