Существует наверное единственный эффективный и простой способ закрыть ссылку комментатора от индексации — это, так называемый способ подмены ссылки на скрипт с текстовым полем и тегом <span>.
Более актуальная статья: как правильно закрыть ссылку тегом span
В WordPress за вывод ссылки комментатора, если она указана в поле «сайт», отвечает функция в файле wp-includes/comment-template.php:
function get_comment_author_link( $comment_ID = 0 ) {
$url = get_comment_author_url( $comment_ID );
$author = get_comment_author( $comment_ID );
if ( empty( $url ) || 'http://' == $url )
$return = $author;
else
$return = "<a href='$url' rel='external nofollow' class='url'>$author</a>";
return apply_filters( 'get_comment_author_link', $return );
}
Именно данную функцию нам необходимо изменить с помощью простого скрипта и функции, добавленной в function.php.
Нужно ли закрывать ссылки комментаторов от индексации
В свете последних событий с изменениям в алгоритмах Яндекс вопрос «закрытия ссылок» имеет особенную актуальность. Как следовало того ожидать, ссылки в nofollow начали отображаться в вебмастере Яндекс. С таким положением дел ссылочный спам получил «второе» дыхание.
Программы авто-спама в буквальном смысле начали понимать текст статей, добавляя казалось бы адекватные комментарии с тематическими ссылками. Вырос объём и ручного спама, не читающих ваш материал, а просто оставляющих ссылки на собственные блоги в надежде на некоторый прямой трафик.
Второй причиной, почему следует закрывать ссылки комментариев от индексации, является их актуальность.
Каждый автор блога WordPress знает, что на каждую хорошую статью на блоге приходится не менее 10 комментариев. На моём блоге при 35 опубликованных статьях насчитывается 412 комментариев. Даже с учётом того, что каждый второй мой — это 200 исходящих ссылок на интернет-документы.
Постоянно отслеживать и проверять данные ссылки просто не хватает времени, да и сам процесс не имеет смысла. Но проблемы ссылок никуда не исчезают:
- ссылки могут стать битыми (блог перестал существовать),
- интернет-ресурс на который указывает ссылка с комментатора сменил тематику на запрещенную,
- ссылка стала редиректом (реферальный спам, дорвеи, некачественный контент) и т.д.
Причин закрыть ссылки для индексации действительно много. Но какой же была блогосфера без обратной связи, что это за сообщество, в котором нет связей?
Именно поэтому опытные вебмастера прячут ссылки различными способами от поисковых систем, оставляя возможность пользователям без проблем переходить по ним.
Как закрыть ссылку от индексации без изменения файлов WordPress
Честно вам скажу, я не являюсь автором данного способа, я лишь усовершенствовал его под себя, изменив функционал, который будет работать на любом блоге WordPress.
Я долгое время пользовался довольно простым способом закрытия ссылок от индексации с помощью изменения файлов WordPress и добавления скрипта и изменения тега <a href= на тег <span>. Пока мне это не надоело, ведь каждое обновление WordPress возвращало файлы в первоначальный вид.
Данный способ мне подсказала поисковая выдачи и блог вебмастера моего тезки Максима Зайцева. У Максима написаны две статьи:
Как скрыть ссылки комментаторов без изменения файлов WordPress
Первая из которых описывает способ изменения файлов, вторая — без изменений файлов, но с подключением библиотеки jQuery.
Как я уже сказал, первый способ мне более не подходит (слишком часто приходится вносить изменения), второй же способ требует обработки скрипта через сторонний сервис, что не совсем правильно в отношении скорости загрузки сайта.
Именно поэтому я предлагаю закрыть ссылки от индексации без изменения файлов движка и лишних обращений к сторонним библиотекам.
Шаг первый:
Добавляем скрипт либо в файл footer.php, либо на страницы, где необходимо закрыть ссылку, например single.php перед <?php get_footer(); ?>
<script type= "text/javascript">function GoTo(link){window.open(link.replace("_","http://"));}</script>
Шаг второй:
Добавляем функцию в файл function.php, которая заменяет теги и запускает работу скрипта:
function marseo_link( $marseo_remove ) {
$url = get_comment_author_url( $comment_ID );
$cut = array("<a", "</a", "href='$url'", "rel='external nofollow'");
$insert = array("<span class='spanlink' title='$url' onclick=\"GoTo('$url')\"", "</span", "");
return str_replace($cut, $insert, $marseo_remove);
}
add_filter( 'get_comment_author_link', 'marseo_link', 'url');
Шаг третий:
Приводим текст в вид ссылок с помощью изменения css в файле style.css:
.spanlink{cursor:pointer;text-decoration: underline;color: #0645AD;}
Теперь поисковые системы будут принимать ссылки комментаторов за обычный текст, а пользователи и читатели без проблем смогут переходить по ним. Такой вариант закрытых ссылок подходит и для самого контента, где вместо привычного <a href= используйте:
<span title="описание ссылки" onclick="GoTo('ссылка')">Анкор ссылки</span>
Так первую ссылку на блог Максима я оставил открытый, а вторую закрыл скриптом.
Закрывать так ссылки — обижать комментатора! Фу, фу, плохая затея! Чо жалко чоль? =)
Я объективно объяснил причину такого закрытия, а чтобы пользователи были не в обиде за закрытые ссылки, я ссылки вывожу напрямую в Яндекс: https://marseo.ru/poiskovaya-optimizaciya/rss-lenta-wordpress/
Максим, это то что называется «Золотая середина». Идеальный способ для решения поставленной задачи!
В этом и была цель, найти оптимальный и простой вариант.
Привет Максим. А есть еще один вариант, с помощью которого ссылки будут закрыты, файлы не нужно менять и даже не нужно устанавливать скрипты. Есть готовый плагин, который закрывает ссылки комментаторов в «span» супер плагин! Этот плагин называется ark-hidecommentlinks и его разработчиком является Александр Каратаев. Мне будет очень интересно узнать твое мнение по поводу этого плагина. Можешь проверить? У меня он установлен как минимум полгода и все великолепно. Никаких ссылок в Гугле не присутствует.
Я уже знакомился с плагином и его автором. Я сторонник работы с кодом, поэтому использую на блоге их всего пару. Всё остальное через код реализую.
Максим, я знаю что ты сторонник кодов. Ты предпочитаешь коды для быстрой загрузки сайта, не так ли? Так вот этот плагин, по утверждению его разработчика совсем не нагружает блог и количество запросов к базе данных минимальное.
Не все же плагины громоские и тормозят блог!Или же причина того, что ты используешь коды, другая?
В данном случае не думаю, что плагин может создавать дополнительную нагрузку, он так же добавляет скрипт. Пользуюсь я кодом потому, что это возможность обучения и гибких изменений. С помощью кода ведь можно не только ссылки закрывать, а подстраивать блог под себя. Таких плагинов нет, которые бы можно такие изменения вносить.
Максим, достойный ответ! Спасибо
Подскажите лучше как закрывать ссылки из тела статьи. есть блог с рекомендательными статьями. в каждой статье ссылка, грубо говоря «купить тут». Оптимально плагин чтобы ссылки были через go.php, я нашел как вручную это делать но уж больно муторно. Нужно такую примочку чтобы скрыть эти ссылки от ПС легальным образом, чтобы сайт не выглядел как сливальщик трафика. Прятать ссылку от пользователя нет нужды, никого не обманываем, просто не хочется терять вес страниц и передавать его на чужой интернет-магазин.
Если уж говорить о ссылках, которые считаются рекламой, они в обязательном порядке должны находится в блоке noindex, только в том случае, это считается рекламой. Не индексирует — ничего не передает. Это самый простой способ.
а если на каждой странице есть такая ссылка? У меня есть информационный блог и есть интернет магазин. Я хочу с блога на магазин ссылки ставить и кажется что это чревато для блога. Может я ошибаюсь?
В этом нет ничего страшного, ведь рекламу от Adsense и Директ устанавливают на всех страницах, но она не индексируется.
так ведь адсенс как раз через какую-то лабуду типа googleblabla.com=34t59e845t8te
идет.
Это всего лишь ссылка аналитики, смысл лишь в том, что реклама от Яндекс и Google реализована с помощью скрипта закрытого для индексации. Метод, каким вы закроете ссылки принципиально не важен, самый простой, как я сказал, noindex.