Меню

Скрываем внешние ссылки в текстах статей и комментариях

Создание сайтов4037

Здравствуйте. Недавно натолкнулся на статью Александра Борисова Noindex и nofollow что это такое и как еще закрыть ссылку от индексации?, где нашёл новый метод скрытия внешних ссылок. О нём и пойдёт речь в этой статье.

Что-за метод?

Он заключается в переводе внешних ссылок в текст, т. е. поисковики видят текст с javascript, а посетители - ссылку.

Ваши действия (Ручной вариант)

Заходим в main.php и вставляем этот код перед закрывающим тегом body:

<script type="text/javascript">
function GoTo(link){window.open(link.replace("_","http://"));}
</script>

Вставляем в конец css-файла шаблона:

.alink { color: rgb(70, 175, 158); cursor:pointer; } .alink:hover { color: rgb(61, 214, 185); text-decoration:underline;

Теперь заходим в статью или виджет, в общем, в то место, где хотим вывести ссылку, и пишем:

<span class="alink" onclick="GoTo ('_google.ru')">Внешний сайт</span>

Как вы поняли, _google.ru - это адрес внешнего сайта, а "Внешний сайт" - текст ссылки.

Закрытие ссылок в комментариях

Для этого заходим в папку type_foreach своего шаблона и открываем файл page-comments-tree.php. Если у вас его нет, скачиваем отсюда.

Открываем и ищем строчку:

$tree .= '<span class="tree-comment-author">' . $comments_url . '</span>';

Старый файл page-comments-tree.php

И заменяем на этот код:

$tree .= '<span class="tree-comment-author"><span '.($comusers_url != '' || $users_url != '' ? 'class="alink" onclick="GoTo(\'' . ( $users_url != '' ? $users_url : $comusers_url ) . '\');"':'').'>' . $comusers_nik . '' . $users_nik . '</span></span>';

Как вы поняли, я заменил ' . $comments_url . ' на код span-ссылки:

<span '.($comusers_url != '' || $users_url != '' ? 'class="alink" onclick="GoTo(\'' . ( $users_url != '' ? $users_url : $comusers_url ) . '\');"':'').'>' . $comusers_nik . '' . $users_nik . '</span>

А код после goto - это вывод адресов сайтов юзеров и комюзеров.

Всё, что написано после ">", но до закрывающего тега span - это текст ссылки:

'.($comusers_url != '
- это код, отвечающий за вывод адреса комюзера;

' || $users_url != '' ? '
- это вывод адреса юзера;

' . $comusers_nik . '
- Имя комюзера

' . $users_nik . '
- имя юзера.

Таким образом, у нас получился новый файл page-comments-tree.php, который вы можете скачать здесь.

Новый файл


Как закрыть внешние ссылки в статьях

Для этого есть плагин rewrite_links для Maxsite CMS, но он закрывает их при помощи noindex и rel="nofollow", а также редиректов.

Что ж тогда меня заставляет модернизировать этот плагин?
  1. По редиректом поисковики переходить умеют, а значит учитывают;
  2. Есть информация, что на noindex и nofollow Яндекс и Гугл больше не обращают внимание. Почему бы тогда не подстраховаться?

Я закрываю ссылки не из-за жадности, а из-за того что есть опыт попадания под фильтр АГС другими блогерами, чего мне не хочется.

Загрузка плагина

span_links.zip

Установка плагина

  1. Распаковываем архив и закачиваем в папку /application/maxsite/plugins;
  2. Переходим в админ-панель, раздел "Плагины", отмечаем span_links и активируем.

История версий:

  1. 0.1: появление;
  2. 0.2: Добавление автоматического подключения скрипта с функцией перед закрывающим тегом body;
  3. 0.3: Добавил style.css и подключил в head.

P. S. Если у вас был прописан скрипт с функцией, описанный в разделе про ручное подключение span-ссылок, прошу удалить его, иначе работоспособность не гарантирую.

Известно, что при использовании span_links стандартный плагин spoiler перестаёт работать. Пока данная проблема не решена: ждите новой версии.

Для тех, кто любит разбираться в коде

Заходим в файл index.php старого плагина, ссылку на который я дал в начале раздела про закрытие внешних ссылок в статьях и находим такой код:

$out = '<noindex>< a' . $matches[1] . 'href="' . $url . '"' . $matches[3] . ' rel="nofollow" target="_blank" >' . $matches[4] . '</a></noindex>';

index.php плагина для Maxsite CMS rewrite_links

И заменяем его на следующий:

$out = '<span class="alink" onclick="GoTo (\'' . $matches[2] . '\');");">' . $matches[4] . '</span>';

Всё

Хочу немного рассказать о том, как проходила модернизация. Изначально там был код $url, но он выводил редирект. Я обратился с вопросом: "Какой код отвечает за адрес ссылки" к Илье Земскову. Он мне сказал, что всё зависит от конкретного случая, после чего было мною решено поискать по коду выше, но ничего подходящего не было, а вот ниже - было:

$url  = $matches[2];

Из этого кода я понял, что $url - это $$matches[2]. Так я и нашёл "$matches[2]", который являлся адресом ссылки:

Заключение

Благодарю за внимание. Буду рад, если статья, плагин и правка в файле page-tree-comments.php будут полезны.

P. S. В правках кода участвовал Илья Земсков, за что ему громадная благодарность. Его работа - это добавление url юзеров и приведение кода в рабочее состояние (Думаю вы заметили различия между кодом примера и тем, что я привёл далее).

Текущая оценка Общий бал: 5 Проголосовало Проголосовало: 2

help_share

Данная публикация была вам полезна?

Помоги автору сайта, расскажи друзьям...

Комментариев: 23
  •  Александр Каратаев 20 апреля 2015 в 17:43:11
    img

    Денис, а вот я закрываю внешние исходящие ссылки в статьях только тегом noindex и атрибутом rel="nofollow". И то, не все. Есть хорошие доверенные сайты, на которые я ссылки вообще не закрываю. Правда их всего штуки четыре таких...

    А вообще я считаю, что ссылка должна быть ссылкой. Все извраты с закрытием ссылок в статьях блоками типа span или скриптами - это от лукавого. С точки зрения ПС, если на сайте нет ссылок, то это вызывает подозрение. Да и скрипты многие уже распознаются ПС.

    К тому-же надо учитывать, что ссылки в статьях мы вставляем сами, а значит контролируем их количество и качество.

    Другое дело в комментариях, где кроме ссылок на блоги комментаторов присутствуют и ссылки, которые вставляются в тело комментария. Тут вакханалия и эти ссылки можно и нужно закрывать.

    •  Денис Скрипник | 20 апреля 2015 в 19:55:51
      img

      Я согласен с вами, но считаю, что если много старых статей, которые некогда проверять, лучше закрывать в span.

      Думаю, что если span-ссылки распознаются, поисковики их засчитывают также, как ссылки с noindex и nofollow.

  •  Александр 8 мая 2015 в 14:37:04
    img

    Можно ли таким образом закрывать картинки от индексации?

    •  Денис Скрипник | 8 мая 2015 в 16:26:33
      img

      Нет. Этот плагин действует только на a href.

  •  Алексей Щукин 9 мая 2015 в 12:32:41
    img

    Кстати, я так же уже видел информацию что поисковики не обращают внимание на noindex и nofollow.

    Что ж, посмотрим что будет дальше.

  •  Алексей Щукин 9 мая 2015 в 12:35:58
    img

    Денис, еще вопрос не по теме.

    Во-первых, прошу прощения за ошибки, пишу с планшета и он немного за мнойтне успевает, а написать хочется много.

    Теперь вопрос, почему в форме комментирования, в поле сайт, необходимо вводить http перед доменом, это какая-то настройка темы или вы уже руками что-то правили?

    •  Денис Скрипник | 11 мая 2015 в 09:34:00
      img

      Это так всегда в Maxsite CMS было.

  •  Александр 9 мая 2015 в 17:23:56
    img

    Комментируя статью, автоматом подписываешься на новые комментарии, но вот ссылки об отмене подписки нет. Как быть?

    •  Денис Скрипник | 11 мая 2015 в 09:40:40
      img

      Здравствуйте. Перейдите на страницу профиля, нажмите "редактировать" и измените тип подписки. Благодарю за то, что обратили внимание - напишу разработчику, чтобы создал отписку на комментарии статьи.

  •  Денис Скрипник | 18 июня 2015 в 17:08:11
    img

    Всем здравствуйте. Обнаружил недавно, что у этого плагина конфликт с [cut] и [xcut]: в постах, где они есть, текст обрывается на месте установки данного тега. Прошу отключить его, если вы используете тег обрезки анонса. В ближайшее время ошибка будет исправлена.

    P. S. Прошу писать по поводу конфликтов мне по обратной связи или в комментариях. Благодарю, и извините за то, что не заметил этого заранее.

  •  Иван Павлович 9 августа 2016 в 17:15:04
    img

    Доброго времени суток.

    А плагин span_links сейчас актуален? При клике на ссылку span_links.zip происходит переход на: 404 Not Found.

    •  Денис Скрипник | 10 августа 2016 в 12:18:40
      img

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

    •  Денис Скрипник | 10 августа 2016 в 12:52:00
      img

      Скачивайте: http://denis-skripnik.ru/uploads/_pages/127/span-links.zip

      •  Иван Павлович 10 августа 2016 в 13:05:01
        img

        Огромное СПАСИБО! Плагин установлю, о результатах напишу!

  •  Иван Павлович 27 сентября 2016 в 13:32:04
    img

    Установил плагин и проверил. Пока только на локальном сервере. В принципе всё работает. Но только вот сслылки перестали отображаться: цвет ссылки совпадает с цветом текста, а курсор не превращается в руку.sick Так, что читатель ссылку вообще не видит. Я сделал следующее: В файле style.css прописал следующий код: .alink{color:#(цвет ссылки);cursor:pointer}. Заработало, - ссылки отображаются.

    •  Денис Скрипник | 30 сентября 2016 в 16:08:11
      img

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

      P. S. Интересная у вашего блога тема - пошёл изучать.

  •  Иван Павлович 30 сентября 2016 в 18:32:54
    img

    Да, надо как-то исправить. Не все же будут с кодом разбираться. Плагин хороший.

  •  Иван Павлович 30 сентября 2016 в 18:39:37
    img

    Статью Александра Борисова я читал. Там он рассказывает, как вставить в редакторе на ВордПрессе кнопку, которая "закрывает" ссылки, ну и код там разный предлагается. Штука хорошая. Александр Борисов плохого не посоветует. Думаю, и у нас на MaxSite такую кнопку тоже надо сделать. А вот как? У меня были идеи, но ход как-то не дошел...

    •  Денис Скрипник | 1 октября 2016 в 21:13:51
      img

      С созданием шарткода проблем не должно возникнуть (Смотрите анонс Maxsite 0,94 или 0,95 на max-3000.com), а вот со вставкой кнопок проблема, так как блогеры используют разные редакторы (Как визуальные, так и невизуальные), а это усложняет внедрение. Почитайте инструкцию к используемому вами редактору и вставьте кнопку. В некоторых они подключаются в .js файлах.

    •  Денис Скрипник | 21 ноября 2016 в 21:03:35
      img

      Здравствуйте. Обновил плагин. Протестируйте пожалуйста: https://denis-skripnik.name/uploads/_pages/127/span_links.zip

      Не забудьте удалить стили в своём шаблоне.

      P. S. Решена ли проблема с кнопкой в редакторе? Если да, то как реализовали?

  •  Иван Павлович 26 ноября 2016 в 00:17:26
    img

    Доброго времени суток!

    Скачал и проверил данный плагин. Проверял на ОпенСервере, версия Maxsite 0.95. Проверка чисто техническая: работает или не работает и какие вылезают проблемы.

    В целом, плагин работает. Адрес ссылки не отображается в левом нижнем углу браузера, что как раз и надо, но если вызвать «Просмотр кода элемента» (F12), то в консоле адрес виден полностью. При использовании плагина rewrite-links адрес ссылки в левом нижнем углу и в консоле отображается в виде абракадабры.

    С этим плагином полностью перестал работать споллер. Если с rewrite-links споллер работал, но при открытии/закрытии открывались новые пустые вкладки, что не совсем не хорошо, то с span-links споллер вообще не открывается. Такой вот минус…long face

    P.S. С кнопкой в редакторе пока не экспериментировал, но будет время займусь. Где-то прочитал, что не все исходящие ссылки надо скрывать, какой то процент ссылок нужно оставить открытыми, - есть мнение, что сайт или блог без исходящих ссылок в «глазах» поисковиков выглядит подозрительно, а это может привести к санкциям. long face

  •  Александр | 25 сентября 2017 в 19:10:30
    img

    18 июня 2015: "Обнаружил недавно, что у этого плагина конфликт с [cut] и [xcut]: в постах, где они есть, текст обрывается на месте установки данного тега. Прошу отключить его, если вы используете тег обрезки анонса. В ближайшее время ошибка будет исправлена".

    До сих пор так и не исправлено? Скачал, установил последнюю версию - возникает эта ошибка.

    •  Денис Скрипник | 8 октября 2017 в 09:00:05
      img

      Здравствуйте. К сожалению, я не смог справиться с этим. Ищу специалиста. Как исправят эту ошибку, напишу сюда в комментариях.

Буду благодарен за каждый оставленный вами комментарий

Добавить Комментарий

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Похожие публикации