Автоматическое добовление всем внешним ссылкам атрибута rel="nofollow" с помощью JS

Автоматическое добовление всем внешним ссылкам атрибута rel="nofollow" с помощью JS

Для вебмастеров, кому надоело постоянно вычищать свои комментарии или присланные статьи от скрытых, хитрых или явно видных исходящих ссылок, предлагается воспользоваться приведенным ниже JS-скрипт. Мне этот скрипт понадобился на этапе «становления на ноги» одно своего сайта, на который люди сами пишут уникальные статьи, а не совсем хорошие люди пытаются, нарушая условия публикования статей, вставить куда не поподя свои ссылки.

На момент раскручивания, этот скрипт добавлял всем исходящим ссылкам, которые ведут на другие ресурсы атрибут rel=«nofollow», исключая не контролированное перетекание веса страницы, ибо нехер.

Сам код, который делает такую полезную вещь как добавление атрибуту rel=«nofollow» для всех внешних ссылок, выглядит так:

<script>
    var wlist = [
       "javascript:",
       "<strong>https://adminwy.ru/</strong>"
    ];
function addLoadEvent(func) {
 var oldonload = window.onload;
 if (typeof window.onload != 'function') {
    window.onload = func;
 } else {
    window.onload = function() {
      if (oldonload) {
         oldonload();
       }
      func();
    }
 }
    }
    function LinksExt() {
       var tags = document.all?document.all:document.getElementsByTagName("*");
       function test(str) {
          for (var url in wlist)
          if( str.indexOf(wlist[url])==0 )
             return 1;
          return 0;
       }
       for (var i=0; i<tags.length; i++)
       if( tags[i].nodeName == "A" ) {
         var link = tags[i];
         if ( link.href && !test(link.href) ) {
            link.rel="nofollow";
            link.outerHTML =
              "&#60;!--noindex--&#62;" + 
              link.outerHTML + 
              "&#60;!--/noindex--&#62;";
         }
       }
    }
    addLoadEvent(LinksExt);
</script>

Там где сейчас красуется имя моего блога – https://adminwy.ru/ должно стоять имя вашего сайта.

Работа скрипта такова, что он анализирует все ссылки на странице и к тем, у которых в адресе нет заданного URL, добавляет этот атрибут. Все просто и лаконично.

Код по возможности нужно вставить между HTML-тегами <HEAD>…<HEAD> или вынести в отдельный js-файл, который после подключить. Кстати, последний вариант более предпочтительный.

После этого любая ссылка с вашего майта, ведущая на другой сайт, будет помечена атрибутом rel=«nofollow» и не будет передавать вес.

Теги: и

Комментарии

Игорь, 16.03.2012 00:30 #

Скажите пожалуйста как его подключить?код положил в папку.а как подключить его теперь?зарание большое спасибо

Анатолий, 20.07.2012 19:45 #

очень нужный скрипт для меня..Но не понял куда его загрузить..и как запустить,чтобы он работал на сайте???

Миша, 26.11.2012 06:04 #

а смысл добавлять этот атрибут через javascript?)))

Михаил, 06.11.2014 16:02 #

Хороший скрипт, если он действительно работает. Жаль, что в js не шарю ни капельки. Но, судя по тексту выложенного кода, наличие ссылок в html или php без прописки абсолютности обрабатывается и этим неабсолютным ссылкам присваивается nofollow и noindex. Спасибо автору! Буду экспериментировать.

Селена, 19.11.2014 19:08 #

Не работает скрипт, не пытайтесь. Вставлять можно и весь скрипт до </HEAD> , и вывести скриптом
<script type=“text/javascript” src=“http://adminway.ru/avtomaticheskoe-dobovlenie-vsem-vneshnim-ssylkam-atributa-rel-nofollow-s-pomoshchyu-js/nofallow.js”></script>. Просто скрипт нерабочий

Андрей, 22.03.2016 06:52 #

сразу видно вы знающий человек.
поисковики не читаю js. нет смысла добавлять. поисковики всё равно его не увидят. идиоты

Зюзгин Иван, 26.03.2016 13:26 #

На чем основано Ваше утверждение?

Татьяна, 02.04.2018 13:59 #

Скрипт рабочий, его только следует немного подправить. Потому как автор, наверное, при вставке кода просто малость ошибся.
В частности, вот эта часть кода:
for (var i=0; i if( tags[i].nodeName == «A» ) {
var link = tags[i];
if ( link.href && !test(link.href) ) {
link.rel=«nofollow»;
link.outerHTML =
«<!—noindex—>» +
link.outerHTML +
«<!—/noindex—>»;
}
}
}

ее нужно исправить на вот это:
for (var i=0; i<tags.length; i++ ){ if( tags[i].nodeName == «A» ) { var link = tags[i]; if ( link.href && !test(link.href) ) { link.rel=«nofollow»; link.outerHTML = «<!—noindex—>» + link.outerHTML +»<!—/noindex—>»; } } } }

в операторе FOR пропущены два условия.

Александр, 02.07.2021 15:05 #

Очень заморочен скрипт, вот упрощенная рабочая версия:
<script>
function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != „function“) { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } }
} function LinksExt() { var tags = document.all?document.all:document.getElementsByTagName(«*»); for (var i=0; i<tags.length; i++) if( tags[i].nodeName "A" ) { var link = tags[i]; var url = link.href; if ( link.href && (url.indexOf("<?=$_SERVER['HTTP_HOST']?>")-1) ) { link.rel=«nofollow»; link.outerHTML = «<!—noindex—>» + link.outerHTML + «<!—/noindex—>»; } } } addLoadEvent(LinksExt);
</script>






Важное событие
Основание Yandex<
Основание Yandex
Узнать подробнее
Комментарии
Интересное
Оглавление