Посоветуйте скрипт добавления nofollow к внешним ссылкам - Форум успешных вебмастеров - GoFuckBiz.com - Страница 2
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.1887
BTC/USD67999.1011
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 22.02.2020, 01:47
Start Post: Посоветуйте скрипт добавления nofollow к внешним ссылкам 
  #11
Aglomerat
Шо бля?
 
Аватар для Aglomerat
 
Регистрация: 26.09.2012
Сообщений: 176
Бабло: $59485
По умолчанию

Привет баблорубы, сабж.
Есть сайт на несколько K страниц, на каждой странице есть внешние ссылки.
Нужно скриптом ко всем внешним ссылкам добавить nofollow.
Пробовал такое решение, но он херачет nofollow и к внутренним и noindex вокруг них
Не особо шарю в js, может посоветуете готовое решение?
PHP код:
<script>
    var 
wlist = [
       
"javascript:",
       
"<strong>https://site.com/</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])==)
             return 
1;
          return 
0;
       }
       for (var 
i=0i<tags.lengthi++)
       if( 
tags[i].nodeName == "A" ) {
         var 
link tags[i];
         if ( 
link.href && !test(link.href) ) {
            
link.rel="nofollow";
            
link.outerHTML =
              
"<!--noindex-->" 
              
link.outerHTML 
              
"<!--/noindex-->";
         }
       }
    }
    
addLoadEvent(LinksExt);
</script> 
Aglomerat вне форума  
Старый 22.02.2020, 12:49   #12
Aglomerat
Шо бля?
 
Аватар для Aglomerat
 
Регистрация: 26.09.2012
Сообщений: 176
Бабло: $59485
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от digg Посмотреть сообщение
на php просто

$html = str_replace('<a href="', '<a rel="nofollow" href="', $html);

где $html это весь хтмл код страницы
так это закроет и внутренние ссылки!
Aglomerat вне форума  
Старый 22.02.2020, 12:49   #13
Sultan
Шучу на половину
 
Аватар для Sultan
 
Регистрация: 23.01.2011
Сообщений: 5,834
Бабло: $1167860
По умолчанию

Цитата:
Сообщение от Igor333 Посмотреть сообщение
nofollow командует боту, не передавать вес ссылке

это неверное утверждение, как и то, что js не учитывается
гугл например учитывает nofollow выставленный в js
nofollow - не запрещает передавать вес, при этом теге вес также распределяется по всем ссылкам
nofollow - говорит боту (я не уверен в этом источнике и не ручаюсь за него), вес утекает с сайта, но не приходит на другой сайт
давай не будешь ляля
бот не воспримет js в нужном в данном случае ключе
nofollow сегодня и всегда не дает делиться мастеру весом/авторитетом/соком с реципиентом, ставится он только с этой цель..
было введено как пометка мастерами различного рода тухлых(спамных) ссылок, как продолжение сейчас есть еще 2 аналогичных тега https://webmasters.googleblog.com/20...-identify.html
Sultan вне форума  
Старый 22.02.2020, 12:50   #14
digg
$400
 
Аватар для digg
 
Регистрация: 17.05.2009
Сообщений: 14,031
Бабло: $1903940
Отправить сообщение для digg с помощью ICQ
По умолчанию

Цитата:
Сообщение от Aglomerat Посмотреть сообщение
Цитата:
Сообщение от digg Посмотреть сообщение
на php просто

$html = str_replace('<a href="', '<a rel="nofollow" href="', $html);

где $html это весь хтмл код страницы
так это закроет и внутренние ссылки!
тогда

$html = str_replace('<a href="http', '<a rel="nofollow" href="http', $html);
digg вне форума  
Старый 22.02.2020, 14:18   #15
Morgul
Senior Member
 
Аватар для Morgul
 
Регистрация: 03.10.2010
Сообщений: 1,712
Бабло: $296955
По умолчанию

Цитата:
Сообщение от Igor333
nofollow - говорит боту (я не уверен в этом источнике и не ручаюсь за него), вес утекает с сайта, но не приходит на другой сайт

вес ушел с А, не пришел на Б. А куда же он девается тогда? )) Просто минусуется такой у страницы А?
Morgul вне форума  
Старый 22.02.2020, 17:12   #16
Sultan
Шучу на половину
 
Аватар для Sultan
 
Регистрация: 23.01.2011
Сообщений: 5,834
Бабло: $1167860
По умолчанию

погуглил для спортивного интереса, нигде нет норм пруфов такой практики (сам скрипт этот нашел но я в него не верю)..
метатеги можно так динамически пихать но я бы отказался от такого использования, если только по другому нельзя и сайт заскриптован

ps как вариант было бы сделать подстановку nofollow
+ редирект скрипт (redirect.php?url=https://www.exterlanlink.com/)
+ скрипт запретить директивой в robots.txt
+ на этот же скрипт можно допилить аналитику, гугл метками например

digg, а если внутряки не относительные а абсолютные

Последний раз редактировалось Sultan; 22.02.2020 в 17:18.
Sultan вне форума  
Старый 22.02.2020, 17:52   #17
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Если это wordpress то есть плагины.

Если нет то нужно велосипед делать, что там за движок у тебя не понятно.

Ещё есть вариант применять изменения в базу данных, если она есть. Если только html то скриптом проходить по файлам с поиском и заменой.

Последний раз редактировалось Hector; 22.02.2020 в 17:57.
Hector вне форума  
Старый 22.02.2020, 18:11   #18
incognito
Senior Member
 
Аватар для incognito
 
Регистрация: 08.07.2007
Сообщений: 177
Бабло: $34565
По умолчанию

Цитата:
Сообщение от Sultan
digg, а если внутряки не относительные а абсолютные
то можно что то такое
PHP код:
<?php
define
('DOMAIN',"https://ya.ru");

$html = <<<HTML
<a href="https://ya.ru/">ya.ru</a>
<a href="https://yandex.ru/">ya.ru</a>
<a style="pointer:cursor;" href="https://yat.ru/">ya.ru</a>
some text
HTML;

$line preg_replace_callback(
        
'#<a.*?(href=[\'"].*?[\'"]).*?>#',
        function (
$matches) {
            if(
strpos($matches[1],DOMAIN)===false){
                return 
str_replace($matches[1],'rel="nofollow" '.$matches[1],$matches[0]);
            }else{
                return 
$matches[0];
            }
        },
        
$html
    
);

echo 
$line;
__________________
incognito вне форума  
Старый 22.02.2020, 18:20   #19
Sultan
Шучу на половину
 
Аватар для Sultan
 
Регистрация: 23.01.2011
Сообщений: 5,834
Бабло: $1167860
По умолчанию

incognito, хвалю, уже надежнее)
а str_replace принципиально используете?
почему не preg_.. тоже гуглятся примеры

ps кстати, с 1 марта будет расколбас, согласно тому посту с гугл блога, как понимаю они начнут использовать описательную часть ссылок (анкор/околоссылочный текст) в ранжировании

Последний раз редактировалось Sultan; 22.02.2020 в 18:34.
Sultan вне форума  
Старый 22.02.2020, 18:28   #20
incognito
Senior Member
 
Аватар для incognito
 
Регистрация: 08.07.2007
Сообщений: 177
Бабло: $34565
По умолчанию

Sultan, с preg_replace просто не дружу
__________________
incognito вне форума  
Закрытая тема