Одним из важнейших вопросов поисковой оптимизации является вопрос как закрыть внешние ссылки от ПС (поисковые системы) и их роботов для исключения перетекания веса с страницы. Осознав это я озадачился вопросом как закрыть внешние ссылки на своем сайте 0S3.RU.
Полный ответ на вопрос «Как закрыть внешние ссылки?», с примерами (PHP, jQuery и AJAX, просто JavaScript, теги noindex и nofollow) и анализом экспериментов читаем в статье «Как закрыть внешние ссылки?».
Две недели, (а может и больше) рылся в Google по вопросу как закрыть внешние ссылки?. На основе найденного проводил эксперименты. Итак, что у нас получается.
тег <noindex> </noindex> - закрывает текст от индексации (по факту вес по ссылке утекает, не валидный тег) для валидности пишем <!--noindex-->
Пример как закрыть внешнею ссылку №1: <!--noindex--> <a href="http://0s3.ru/" title="обучающий ресурс разработки веб сайтов">обучающий ресурс разработки веб сайтов </a><!--/noindex-->
rel="nofollow" – поисковые системы его распознают, вес с страницы уходит, но не передается (вес уходит в некуда);
Пример как закрыть внешнею ссылку №2 (с двумя этими тегами): <!--noindex--> <a href="http://0s3.ru/" title="обучающий ресурс разработки веб сайтов" rel="nofollow">обучающий ресурс разработки веб сайтов </a><!--/noindex-->
тег target=_blank - не валидный тег, да и его работа не очень хороша (указываем пользователю открыть внешнею ссылку в новом окне браузера, несрабатывание кнопки назад); валидность возможно добится используя JavaScript, а пользователя все равно хочется оставить у себя на сайте;
Пример как закрыть внешнею ссылку №3 (с тремя этими тегами): <!--noindex--> <a href="http://0s3.ru/" target="_blank" title="обучающий ресурс разработки веб сайтов" rel="nofollow">обучающий ресурс разработки веб сайтов </a><!--/noindex-->;
валидность возможно добиться используя JavaScript;
Пример как закрыть внешнею ссылку №3(а) (с двумя тегами и JavaScript вместо target=_blank): <!--noindex--> <a href="http://0s3.ru/" onclick="return !window.open (this.href)" title="обучающий ресурс разработки веб сайтов" rel="nofollow">обучающий ресурс разработки веб сайтов </a><!--/noindex--> (при отключенном JavaScript у пользователя ссылка откроется но уже в том же окне, что и сайт);
Как закрыть внешние ссылки ими? Никак, но они вроде как прикрывают ссылки. Исходя из проведенными разными оптимизаторами экспериментов и поведением Google бота Пингвин таким способом стои закрывать ссылки на весьма авторитетные ресурсы Яндек Google или другие сайты с высокими пузомерками.
Вывод №1 Как закрыть внешние ссылки Ссылке на сайты с высокими показателями ТИЦ и PR стоит закрывать по схеме: <!--noindex--><a href="http://0s3.ru/" onclick="return !window.open(this.href)" title="обучающий ресурс разработки веб сайтов" rel="nofollow">обучающий ресурс разработки веб сайтов </a><!--/noindex-->. В конечном счете ПС зачтут эти ссылки, но их реакция будет положительна и вы только выиграете от этого.
Как закрыть внешние ссылки? с помощью jQuery и AJAX. На сайт ставится библиотека jQuery, в начале страницы устанавливается скрипт и сама ссылка указывается с помощью определенного кода;
Пример как закрыть внешнею ссылку №4:
Код ссылки на странице:
<a href="#" class="link" data-link ="http://0s3.ru/" title="обучающий ресурс разработки веб сайтов" >обучающий ресурс разработки веб сайтов </a>
Скрипт, который будет обрабатывать ссылку и открывать ее:
<script>$('a.link').click(function(){window.open($(this).data("link"));return false;});</script>;
Пример как закрыть внешнею ссылку №5:
Код ссылки на странице:
<span class="hidden-link" data-link="http://0s3.ru/" title="обучающий ресурс разработки веб сайтов" >обучающий ресурс разработки веб сайтов </span>
Скрипт, который будет обрабатывать ссылку и открывать ее:
<script> $ ('.hidden-link'). replaceWith(function() {return'<a href="'+$ (this) .data('link')+'" > ' +$ (this).text()+' </a> ';} ) </script>
Надеюсь не для кого не новость, что простой и не очень JavaScript – распознаются поисковыми роботами. Есть подтверждения, что document.write разобранный на части, с вызовом внутренней функции или вызова из внешнего файла, – распознаются поисковыми роботами, плюс некоторые пользователи отключают JavaScript. В подтверждение моих слов читайте сканирование AJAX от Google.
Рассмотрим вариант с PHP. Создается PHP (например 0s3.php) файл который загружаем в корень сайта или одну из папок и закрываем её в robots.txt а ссылка вызывается из него с помощью кода на странице :
Пример как закрыть внешнею ссылку №6:
Код ссылки на странице:
<a href="/ http: //http://0s3.ru//0s3.php? url=http://0s3.ru/" title="обучающий ресурс разработки веб сайтов" >обучающий ресурс разработки веб сайтов </a>;
Текст файла 0s3.php:
<?php
$url = $_REQUEST['url'];
if(preg_match('#(http?|ftp)://S+[^s.,>)];'"!?]#i',$url)){
sleep(0);
echo "<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="0;url=$url">
</head>
<body>
В данный момент Вы будете автоматически перенаправлены на необходимую страницу...<br></br>
В случае если ваш браузер не поддерживает пере направления, нажмите тут: <a href="/$url">$url</a>.
</body>
</html>";
}
?>
Сама идея превращения внешние ссылки во внутренние, причем на PHP файл кажется мне сомнительной. И вообще есть подозрение, что ПС при нахождении url подобного текста, конструкции <a> </a> или href и http начинают усиленно сканировать данный участок. По определенным алгоритмам находят ссылку или присылают специальных ботов (имитирующих пользователей или просто отличающихся умом и сообразительностью), а в нагрузку в одном из журналов сканирования ставят вашему сайту минус за дополнительные энергозатраты.
Вывод №2 Как закрыть внешние ссылки Ссылке на сайты закрывать всякими навороченными скриптами и РНР конструкциями не стоит (не сегодня так завтра ПС поймут что именно вы наворотили). Польза от этого сомнительна, а вот бан вполне реален.
Но если вы несмотря на вывод №2 хотите запрятать ссылки (неважно внутренние или внешние, или вообще какой то текст) делаем следующим образом (предупреждаю сразу процесс нудный, замороченный и для каждой ссылке его нужно повторять), в тексте создается кнопка и только при её нажатии динамически подгружается сама ссылка (ниже её пример):
Устанавливаем библиотеку jQuery, качаем её с официального сайта нажмите запросить.
Отмечаем сжатый вариант и нажимаем скачать в зависимости от браузера у вас начнется скачка файла или откроется файл (тогда копируем все, в блокноте создаем файл jquery.js и в него вставляем скопированное). В корне своего сайта (а лучше уже в закрытой папке в robots.txt) на хостинге (сервере) с помощью файлового менеджера создаем папку jquery. Открываем её и закачиваем туда файл jquery.js (в моем случаи скаченный напрямую файл jquery-1.8.2.min.js переименовываем в jquery.js и закачиваем). Пока смотрите robots.txt добавте в него запись Disallow: /jquery/.
Далее рассказ для Joomla 2.5.8. (для Wordpress редактируем файл header.php) Смотрим в админ панели (Расширения/Менеджер шаблонов) какой стоит шаблон (допустим JSN Vintage). Возвращаемся в файловый менеджер идем (открываем папку шаблона) по пути 0s3.ru(ваш сайт)/public_html/templates/jsn_vintage_free/ находим файл index.php скачиваем его себе на компьютер (кому удобнее редактировать не посредствено на сервере бога ради, я сам так делаю). Открываем его Notepad++ либо другим подобным редактором. Обычно в них есть поиск находим </head> (его легко найти визуально) и перед ним вставляем код:
<script type="text/javascript" src="/<?php echo $this->baseurl ;?>/jquery/jquery.js"></script>(<?php echo $this->baseurl ;?> указывает корень вашего сайта, а красным выделен путь к вашему файлу jquery.js, Вы пишите свой)
сохраняем файл и опять загружаем на место. Проверим правильность подключения библиотеке jQuery, открываем в админ панели Joomla! 2.5.8 Расширения/Менеджер модулей и создаем модуль с JavaScript с выводом на одну из проверочных страниц, а в него пишем код:
<script type="text/javascript"> jQuery(document).ready(function( ) {alert(" Привет! Мне нравится уроки на сайте 0S3.RU!"); });</script> в указной странице должно появиться следующая вкладка:
Если вкладка не появилась, перечитываем заново, ищем ошибку и устраняем. Теперь усложним код в index.php:
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
<script type="text/javascript" src="/<?php echo $this->baseurl ;?>/jquery/jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
проверим появляется ли вкладка.
Все удачно, тогда идем дальше, теперь создаем сам файл с ссылкой или текстом который нужно скрыть, назовем его допустим windowjquery.txt (все с помощью Notepad++, если в тексте есть кириллица, открываем вкладку Кодировка/Кодировать в "UTF-8 без BOM") :
ссылка на сайт <!--noindex--> <a href="http://jquery.com/" onclick="return !window.open (this.href)" rel="nofollow">jQuery.com </a><!--/noindex-->;
(только не считайте меня параноиком) Данный файл сохраняем в директорию 0s3.ru(ваш сайт)/public_html/jquery/ (она уже закрыта в robots.txt, Disallow: /jquery/).
Создаем файл windowjquery.js в него пишем код для динамического подключения текста (кода) из файла windowjquery.txt:
jQuery(document).ready(function(){
jQuery("#but1").click(function(){
jQuery("#par1").load("http://0s3.ru//jquery/windowjquery.txt"); }) });
Загружаем его в папку /jquery/. Опять редактируем index.php, опять перед </head> вставляем скрипт:
<script type="text/javascript" src="/<?php echo $this->baseurl ;?>/jquery/windowjquery.js"></script>
На странице в нужном месте ставим код:
<input id="but1" type="button" value="Запросить" /><span id="par1"> нажмите запросить.<br /></span>
PS Давайте посмотрим на сложившуюся ситуацию с ссылками глазами ПС. Ссылки нужны поисковым роботам для хождения между сайтами, но они почти сплошняком стали закрываться тегами, открытыми остаются только платные, в топы вылазят сайты не с нужной пользователю информацией а с большим кошельком тупо потраченным на закупку ссылок. ПС в ответ начинают пробивать noindex и nofollow, но в целом понижают вес передаваемый ссылками. В общем думайте решать в конечном счете вам.