Автоматическое добовление всем внешним ссылкам атрибута 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» и не будет передавать вес.

Комментарии
  1. Игорь опубликовал 16 Март 2012, 00:30 #

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

    | Ответить
  2. Анатолий опубликовал 20 Июль 2012, 19:45 #

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

    | Ответить
  3. Миша опубликовал 26 Ноябрь 2012, 06:04 #

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

    | Ответить
    • Андрей опубликовал 22 Март 2016, 06:52 #

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

      | Ответить
      • itshaman опубликовал 26 Март 2016, 13:26 #

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

        | Ответить
  4. Михаил опубликовал 6 Ноябрь 2014, 16:02 #

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

    | Ответить
  5. Селена опубликовал 19 Ноябрь 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>. Просто скрипт нерабочий

    | Ответить
  6. Татьяна опубликовал 2 Апрель 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 пропущены два условия.

    | Ответить
Имя
e-mail
Текст комментария: # ×


Комментарии
Облако тегов
Интересное