» » » Как скрыть ссылку от индексации с помощью jQuery AJAX
logotip

Как скрыть ссылку от индексации с помощью jQuery AJAX

Всем привет! Сегодня на seo-mayak.com я расскажу как скрыть ссылку от индексации средствами библиотеки jQuery и AJAX запросов.

Не так давно я уже писал, что ссылки, закрытые атрибутом noffolow, прекрасно индексируются поисковыми системами.

Допустим в статье есть пять ссылок, четыре из них внутренние и одна внешняя. Вес страницы всегда поровну делится межу ссылками, передовая по ним PageRank и ВИЦ.

Из этого следует, что внешней ссылке досталось пятая часть общего веса страницы.

skrytaya ssylka

Стараясь сохранить статический вес страницы, многие веб-мастера закрывают внешние ссылки атрибутом nofollow. И действительно, в этом случае PR и ВИЦ (индекс Яндекса) не передаются. НО!

Ссылка, хоть с nofollow, хоть без него, свободно индексируется поисковиками. Раз ссылка индексируется, то значит она забирает вес со страницы, а nofollow только препятствует передаче PR и ВИЦ от сайта донора, сайту акцептору.

Из этого следует вывод, что пятая часть общего веса страницы, которая перешла по внешней ссылке, помеченной nofollow, просто улетучилась в пустоту.

Но как же тогда быть? Для того, чтобы на 100% скрыть ссылку от индексации поисковыми системами я использую jQuery.

Как подключить к сайту библиотеку jQuery

jQuery — это библиотека JavaScript, основанная на взаимодействии JavaScript и HTML. Также средствами jQuery можно взаимодействовать с сервером с помощью AJAX запросов.

AJAX — это набор способов разработки веб-приложений. Техника AJAX позволяет отправлять динамические запросы серверу без видимой для пользователя перезагрузки веб-страницы.

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

Начнем с подключения библиотеки jQuery к сайту. Есть несколько способов подключения, но я остановлюсь на самом простом. Воспользуемся возможностями, которые нам представляет гигант интернет индустрии Google. Google хранит на своих серверах все версии библиотеки jQuery, но нам нужна версия не ниже 1.7.

С помощью FTP клиента открываем для редактирования файл header.php, который находиться в папке с темой и до закрывающего тега </head> вставляем следующее:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Мы только-что подключили библиотеку jQuery самой последней версии.

Как скрыть ссылку от индексации с помощью AJAX

Стоит сказать, что способов скрытия ссылок от индексации с помощью запросов AJAX существует много, с созданием отдельных файлов и без них, но я всегда публикую только проверенные на себе варианты.

Мне приглянулся метод скрытия ссылок без использования структуры <a href=“seo-mayak.com“></a> как таковой, что гарантированно предохраняет ссылку от индексации поисковиками.

Код, в который следует обернуть ссылку, выглядит так:

<span class="external-reference" data-link="Ссылка с http">анкор ссылки</span>

В коде надо заменить «Ссылка с http» на URL страницы, на которую Вы хотите сослаться.

Также в коде задан класс для тега <span>:

class="external-reference"

Ссылка без применения стилей будет выглядеть как простой текст, например:

Обязательно подпишитесь на обновления блога!

Словосочетание «Подпишитесь на обновление блога» и есть анкор ссылки. Теперь добавим стили, чтобы ссылка выглядела естественно в глазах пользователя.

Открываем для редактирования файл style.css, который также расположен в папке с темой и в самом конце прописываем следующее:

span.external-reference {
 color: #5151FF; /* выбираем цвет ссылки */
 text-decoration: underline; /* устанавливаем подчеркивание */
 cursor: pointer; /* создаем курсор при наведении*/
}

Теперь ссылка примет свой привычный вид:

Обязательно подпишитесь на обновления блога!

Поисковые системы будут индексировать анкор ссылки как простой текст и поэтому если Вы используете в качестве анкора голый URL, то есть смысл закрыть текст ссылки тегом noindex для Яндекса:

<!--noindex--><span class="external-reference" data-link="Ссылка с http">URL адрес</span><!--/noindex-->

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

Для этого в файле footer.php перед закрывающем тегом </body> вставляем следующее:

<script>
+function($){
  $(document).ready(function(){
    $('.external-reference').replaceWith (function (){return'<a onclick="return !window.open(this.href)" href="'+$(this).data('link')+'" title="'+$(this).text()+'" rel="nofollow">'+$(this).html()+'</a>';});
  });
}(jQuery);
</script>

Если Вы не хотите, чтобы ссылки открывались в новом окне, то надо убрать в скрипте следующий участок кода:

onclick="return !window.open(this.href)"

Также можно вставить этот скрипт непосредственно в редактор НТML, если вы хотите скрыть ссылку только на одной странице.

Как скрыть от индексации ссылку в виде картинки

Веб-мастера очень часто используют изображение в виде ссылки. Как же в этом случаи правильно скрыть ссылку от индексации с помощью jQuery и AJAX?

Все очень просто, вот эта картинка является ссылкой, но ссылка скрыта от индексации, хотя само изображение прекрасно индексируется:

kak skryt' ssylki

Осуществляется скрытие по тому же способу, который был приведен выше, только вместо анкора надо вставить изображение:

<span class="external-reference" data-link="Ссылка с http"><img title="title для картинки" alt="alt для картинки" src="Путь до картинки" width="450" height="333" /></span>

Для обработки используется тот же скрипт, что и для обычных ссылок.

Попробуйте данный метод применить у себя на сайте, а если будут вопросы, то я всегда готов ответить на них в комментариях.

Есть еще один способ скрыть ссылки в jQuery AJAX, который я описал в статье «Сквозные ссылки».

Советую почитать: Кнопка в редактор для ajax-ссылки

На сегодня у меня все. Как Вам статья?

С уважением, Виталий Кириллов

Комментарии: 171

  1. Алексей Виноградов:

    я давно задумываюсь о таком методе скрытия ссылок. Интересно только одно: за клоакинг поисковики не накажут?

    Ответить
    • Виталий Кириллов:

      Насколько я знаю Алексей, с помощью jQuery AJAX можно скрыть от поисковиков не только ссылки, но и, к примеру, сайдбар целиком, да так что в исходном коде останутся только дивы. Это уже давно реалезованно на многих блогах. С моей точки зрения клоакинг на лицо, но блоги неплохо живут и даже процветают

      Ответить
  2. Елена:

    То есть так можно без проблем закрывать ссылки. Последствий от поисковиков никаких не будет? Спасибо за информацию, это очень нужная и полезная инфа!

    Ответить
    • Виталий Кириллов:

      Елена, закрывать все внешние ссылки я Вам не советую, так как «закупоренные» сайты поисковики оценивают неоднозначно.

      Ответить
  3. Ирина:

    Нужная информация для опытных вебмастеров, мне кажется новичкам сложно будет бороться со скриптами

    Ответить
    • Виталий Кириллов:

      Ирина, не надо с ними бороться и боятся скриптов не надо. Пока не попробуешь не разберешься, а разбираться, рано или поздно, все равно придется.

      Ответить
  4. Олег:

    Спасибо за полезную информацию! 🙂 Для некоторых моментов скрытая ссылка очень важна! Берем на заметку. Успехов Вам и Удачи! 🙂

    Ответить
  5. Наталья:

    Интересный способ скрытия ссылок, Виталий! Алексей, что такое клоакинг и как могут наказать?

    Ответить
    • Виталий Кириллов:

      Наталья, рад снова тебя видеть. Клоакинг — это обман поисковиков. А наказание одно — бан!

      Ответить
  6. Александр:

    Вопрос такого плана — а как таким методом открывать ссылки во всплывающем окне?
    Другими словами, код
    a target=»_blank» title=»Открыть в новом окне.» onclick=»return !window.open(‘http://site.ru/test.html’, ‘_blank’, ‘scrollbars=1, resizable=1, menubar=0, left=100, top=100, width=500, height=500, toolbar=0, status=0’);return false» href=»#» rel=»nofollow»Открыть во всплывающем окне/a
    выполнить на jQuery?

    Ответить
    • Виталий Кириллов:

      Александр я посмотрю, что можно сделать и напишу Вам.

      Ответить
  7. Елена:

    Виталий, а закрывать от индексации нужно внешние ссылки или и внутренние тоже?

    Ответить
    • Виталий Кириллов:

      Елена, в основном конечно закрывают внешние ссылки, но бывают случаи когда и внутренние закрывают.

      Ответить
  8. Елена:

    а в каком случае нужно закрыть внутреннюю ссылку?

    Ответить
    • Виталий Кириллов:

      Например, ссылки на страницу «контакты» или другую не информативная страницу.

      Ответить
  9. Елена:

    Виталий, а ссылки из одной статьи на другие статьи нужно скрывать как текст? или можно оставить хотя бы одну?

    Ответить
    • Виталий Кириллов:

      Ссылки из статьи на статью закрывать вообще не надо.

      Ответить
  10. Елена:

    Виталий, а как убрать подчёркивание, чтобы был текст, выделенный цветом?

    Ответить
    • Виталий Кириллов:

      Елена, подчеркивание устанавливается с помощью стилей:
      [php]text-decoration: underline; /* устанавливаем подчеркивание */[/php]
      Уберите эту строчку и подчеркивание исчезнет.
      Если вы хотите выделить шрифт жирным, то надо добавить следующую строчку:
      [php]font-weight: bold;[/php]

      Ответить
      • Елена:

        пробовала, почему-то подчёркивание не исчезло, потом поставила на это место строку text-decoration: none;, всё равно подчёркнуто, вот думаю, как прописать конкретно — не подчёркивать. не подскажете?

        Ответить
        • Виталий Кириллов:

          Елена, а Вы про какие ссылки говорите? У меня в статье реальный пример, в котором ссылка выглядеть как текст. Без подчеркивания и без цвета. Вот надо по-колдовать со стилями.
          А может у Вас какой-то исключительный случай.

          Ответить
  11. Елена:

    И ещё один вопрос. Сколько в статье допустимо ссылок на другие статьи?

    Ответить
    • Виталий Кириллов:

      Елена, все зависит от размера статьи. Примерно на 1000 слов 5 — 7 ссылок вполне достаточно.

      Ответить
  12. Елена:

    И ещё, Виталий, как Вы закрыли от индексации комментаторов? Может быть в какой-то статье у Вас есть, я ещё не всё изучила)

    Ответить
    • Виталий Кириллов:

      Елена все комментаторы в WordPress по-умолчанию закрыты тегом nofollow. Скрывать их не надо, комментарии очень полезны для блога.

      Ответить
  13. Елена:

    Когда я прочитала у Вас и поставила RDS bar, то те ссылки, которые закрыты от индексации, они зачёркнуты, вот у Вас имена комментаторов зачёркнуты, у меня почему-то нет, хотя тоже вордпресс, поэтому и спросила, может надо прописать.

    Ответить
    • Виталий Кириллов:

      Елена, возможно у Вас чет-то по-другому. Откройте файл comment-template.php, который находится в папке wp-includes и найдите там такую строчку (у меня строка №155):
      $return = "<a href=’$url’ class=’url’>$author</a>"
      И вставьте nofollow вот так:
      $return = "<a href=’$url’ rel=’external nofollow’ class=’url’>$author</a>"

      Ответить
  14. Алексей:

    Доброго времени суток Вам! Скажите, а как мне скрыть все исходящие ссылки с моего сайта, если он «одностраничный». Как скрыть все сразу ? Каждую ссылку отдельно не получается. Сайт самописный, посмотрите и если возможно скажите, буду блогадарен. Спасибо!

    Ответить
    • Виталий Кириллов:

      Алексей, мне не понятно, почему у Вас не получается скрыть ссылки по отдельности!

      Ответить
  15. Алексей:

    Скорее потому, что я не знаю как. Видимо это надо делать в phpmyadmin. Добавляю я эти ссылки (сервера) через специальную панель управления, а там никак не скрыть их.

    Ответить
    • Виталий Кириллов:

      Алексей, я затрудняюсь Вам дать дельный совет.

      Ответить
  16. Макс:

    Как проверить работает скрипт или нет, просто в стилях к скрипту меняю цвет он не меняется, удаляю скрипт из footer.php ссылка становиться не активной но при этом стили работают, также могу удалить строку со скриптом в header но при этом оставить скрипт в footer и ссылка все равно работает

    Ответить
    • Виталий Кириллов:

      Макс, попробуйте переставить скрипт-обработчик с footer.php в header.php. Вставьте его перед закрывающим тегом:
      </head>
      Возможно у Вас уже была подключена библиотека jQuery, если так, то 2 раз ее подключать не надо.

      Ответить
  17. Макс:

    да действительно был подключен не заметил строку, но почему стили не работают?

    Ответить
    • Виталий Кириллов:

      Макс, я сходу не могу Вам выдать диагноз. Ведь у меня и у многих других все работает. Попробуйте прописать стили в файле header.php.

      Ответить
  18. Roman:

    Здравствуйте!
    А как закрыть ссылки если они выводятся функцией? Например, у меня в хлебных крошках, ссылка на категорию выводится функцией the_category. Как-то можно ее закрыть от индексации и в ноиндекс?

    Ответить
    • Виталий Кириллов:

      Roman, об этом вскоре будет статья. В двух словах объяснить сложно.

      Ответить
  19. Roman:

    Спасибо, буду ждать!

    Ответить
  20. Никита:

    Виталий, здравствуйте!

    Такая проблема… Надо закрыть ссылку на картинке, все делаю, как Вы написали, но в результате, вместо внешней ссылки на нужный сайт, — ссылка вида мойсайт.ru/undefined.
    Подскажите пожалуйста, с чем это может быть связано и как это исправить??

    Спасибо.

    Ответить
    • Виталий Кириллов:

      Никита, давайте я еще раз покажу, как правильно скрывать картинки ссылки.
      <span class="external-reference" data-link="Ссылка на внешний ресурс с http"><img title="title для картинки" alt="alt для картинки" src="Путь до картинки" width="450" height="333" /></span>
      Обратите внимание на:
      data-link="Ссылка на внешний ресурс с http"
      Возможно здесь ошибка.

      Ответить
      • Никита:

        Использовался именно такой код, ссылку вставлял с http…
        Код в футере необходимый тоже стоит…

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

        Ответить
        • Виталий Кириллов:

          Трудно сказать, может шаблон имеет свои особенности.

          Ответить
  21. Николай:

    Доброго времени суток, подскажите пожалуйста в вашем скрипте

    $('.external-reference').replaceWith (function (){return'<a href="'+$(this).data ('link')+'" title="'+$(this).text ()+'" rel="nofollow">'+$(this).html ()+'</a>';})

    параметр href="'+$(this).data ('link')+'" берется из (data-link="Ссылка с http"), а для чего этот код? title="'+$(this).text ()+'" и как он вызывается?

    Ответить
    • Виталий Кириллов:

      Николай, это ничто иное, как title. Скрипт обрабатывает не только обычные ссылки, но и ссылки в виде изображений, где alt и title будут не лишними.

      Ответить
  22. Виталий:

    Доброго времени суток, хелп ми) пожалуйста, при загрузке в header.php скрипта
    пропадают картинки и часть текста(, что делать как быть?
    тема платная не рекомендуетвставлять что либо в style.css отправляет в app.css, но с этим я разобрался)

    Ответить
  23. Юрий:

    Виталий, отличная статья!
    Я через поисковик Яндекс 30 сайтов просмотрел, но нигде нормального объяснения не нашел, как с jQuery закрыть ссылки от индексации. Если честно, то читая вашу статью, я тоже не сразу разобрался. Пока все коды в шаблон не вмонтировал, не понял, как это работает.
    Спасибо за статью!

    Ответить
  24. Виталий:

    Отличный блог, куча полезной информации. Спасибо, тёзка)
    А если у меня плагин стоит WP No External Links и в плагине All In One SEO Pack тоже есть возможность ссылки закрывать, что лучше? Или лучше закрывать ссылки jQuery AJAX?
    Какой оптимальный вариант?, а то я что-то запутался.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Виталий!
      Я закрываю где-то половину ссылок тегом nofollow, а вторую половину через Query AJAX.

      Ответить
  25. Анастасия:

    Спасибо, отличная информация!

    Ответить
  26. Игорь:

    Правильно ли я понял, скрыв ссылку от индексации, по ней нельзя будет перейти даже пользователям?
    Кучу вариантов перепробовал, почитав Вашу статью. Получилось ссылку сделать не активной для клика и перехода по ней, но все стили сохранились, которые обычно присутствуют у активных ссылок на моем сайте.

    Ответить
    • Виталий Кириллов:

      Игорь, ну зачем нужна ссылка, по которой даже пользователь перейти не может. Это тогда и не ссылка вовсе. Такую ссылку не видят поисковики, а в остальном это самая обычная ссылка!

      Ответить
      • Игорь:

        Что-то у меня не получается сделать ссылку ссылкой.
        Подскажите пожалуйста, правильно ли я сделал?
        Яндекс Маркет

        Ответить
        • Виталий Кириллов:

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

          Ответить
  27. Ербол:

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

    Ответить
    • Виталий Кириллов:

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

      Ответить
      • Ербол:

        Спасибо большое за ответ!
        Еще вопрос: а как именно скрыть ссылки в сайдбарах, не подскажете? Особенно интересует виджет «Последние записи».

        Ответить
        • Виталий Кириллов:

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

          Ответить
  28. Валерий:

    Сенсей, что такое ВИЦ?))) Может ВИЧ?

    Ответить
    • Виталий Кириллов:

      Грамотей, ВИЦ — это взвешенный индекс цитирования, а ВИЧ я бы никому не пожелал.

      Ответить
  29. Евгений:

    Здравствуйте Виталий, на моем сайте при переходе в админке на страницу плагина WP optimize, а также при переходе на страницу Яндекс.ПДС открывается пустая страница или 404, которой якобы нет, помогает только ‘переход’ назад…
    Скажите пожалуйста в чем может быть проблема?
    Спасибо.

    Ответить
    • Виталий Кириллов:

      Евгений, я не использовал данные плагины, возможно их надо просто переустановить.

      Ответить
      • Евгений:

        Переустановил, — не помогло! 🙁
        А тут еще одна беда, — при обновлении плагинов или ядра wordpress, сайт становится не доступным, а точнее выскакивает надпись «Ведутся технические работы» , да такое и должно быть, но раньше это длилось 1-3 минуты, то сейчас я, спустя 20 минут удалил всё из папки /update, только тогда сайт «завелся» (заработал). Что может быть я так и не знаю, а обновления так и висят в панели… 🙁 Прошу помощи!

        Ответить
        • Виталий Кириллов:

          Евгений, мне нужно взглянуть на проблему изнутри. Напишите мне через форму обратной связи.

          Ответить
        • Vit:

          Евгений, у Вас случайно плагин для кеширования не стоит? У меня в свое время чертовщина творилась с сайтом из за плагина, удалил его и все заработало. Не помню точно как он называется. Если есть плагин для кеша попробуйте удалить его, не деактивировать, а именно удалить.

          Ответить
  30. Евгений:

    Спасибо Vit! После удаления плагина кэширования баз данных я смог установить обновления, пока всё вроде бы хорошо! Спасибо еще раз.
    А хостинг теперь не ‘перегрузится’ моим сайтом с посещением в 2200-2500 чел/сут?

    Ответить
    • Vit:

      Рад, что помог:) Про перегрузку сайта ничего сказать не могу, напишите вашему хостинг провайдеру, они должны знать ответ на этот вопрос.

      Ответить
  31. Дмитрий:

    Здравствуйте.
    Спасибо за подробную статью.
    Все сделал как в инструкции, но почему то скрытая ссылка ведёт на такой адрес: домен.ру/раздел-где-опубликована-ссылка/null
    Подскажите, в чем может быть проблема?

    Ответить
    • Виталий Кириллов:

      Здравствуйте Дмитрий! Ищите ошибку. Не видя, что вы прописали, я не могу Вам дать точные рекомендации.

      Ответить
    • Сергей Москвитин:

      Дмитрий у меня такая же была проблема пока я не поместил оба скрипта в footer.php.

      Ответить
  32. Юрий:

    Здравствуйте, Виталий.
    Подскажите, а как быть в случае если надо закрыть родную ссылку на картинку с другого сайта и заменить на свой адрес.
    Пример у меня выглядит так сейчас:

    Несколько картинок подгружаются с других сайтов, с помощью jQuery AJAX хочу закрыть ссылки на эти сайты, но оставить для индексации свои подставленные ссылки.
    Попробовал по Вашему примеру , получилось примерно так, но скорее всего так не правильно, и ссылка на мою страницу тоже получается закрыта:

    Ответить
  33. Юрий:

    Прошу прощения, не закрыл код
    Подскажите, а как быть в случае если надо закрыть родную ссылку на картинку с другого сайта и заменить на свой адрес.
    Пример у меня выглядит так сейчас:
    <a href="ссылка на страницу моего сайта" rel="nofollow"></a>

    Несколько картинок подгружаются с других сайтов, с помощью jQuery AJAX хочу закрыть ссылки на эти сайты, но оставить для индексации свои подставленные ссылки.
    Попробовал по Вашему примеру , получилось примерно так, но скорее всего так не правильно, и ссылка на мою страницу тоже получается закрыта:
    [php][/php]

    Ответить
  34. Юрий:

    Не отображается текст между [php]и[/php],подскажите,как мне правильно вставить его, либо мои комментарии становятся пустыми..

    Ответить
    • Виталий Кириллов:

      Юрий, фильтр зашиты не позволяет добавлять коды в комментарии, в натуральном виде.
      Воспользуйтесь преобразователем.

      Ответить
  35. Юрий:

    Пример у меня выглядит так сейчас:
    <a href ="Ссылка На Страницу Моего Сайта"><img src="Ссылка На Источник Картинки.Jpg" width="300" height="260" alt="Альт Текст" class="alignleft" /></a>
    Несколько картинок подгружаются с других сайтов, с помощью jQuery AJAX хочу закрыть ссылки на эти сайты, но оставить для индексации свои подставленные ссылки.
    Попробовал по Вашему примеру , получилось примерно так, но скорее всего так не правильно, и ссылка на мою страницу тоже получается закрыта:
    <span class="external-reference" data-link="ссылка на страницу моего сайта"><img title="тайтл текст" alt="альт тескт" src="Ссылка На Источник Картинки.Jpg" width="300" height="260" class="alignleft" /></span>
    Извините за мусор, только учусь..

    Ответить
    • Виталий Кириллов:

      Юрий <img src="Ссылка На Источник Картинки.Jpg" width="300" height="260" alt="Альт Текст" class="alignleft" /></a> — это путь до картинки, и в данном случаи картинка является анкором. Чтобы ссылка считалась ссылкой, она должна иметь атрибут href.
      Если Вы не хотите закрывать ссылки на страницы Вашего ресурса, что правильно, то просто не закрывайте их.

      Ответить
      • Юрий:

        Большое Спасибо, Виталий, за быстрый ответ.
        То есть изначальный вариант правильный, и в данном случае нет нужды здесь в применении jQuery AJAX..

        Ответить
  36. Луиза:

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

    Добрый день. Прочитала ваш комментарий, мне немного понятно теперь. Я уже почти оформила все на сайте, и уже разместила в шапке три партнерские ссылки, получается,пока их нельзя размещать или нужно просто закрыть ? А как же тогда интернет-магазины, у них с самого начала там есть реклама, наверное. У меня пока нет статей на сайте, но уже дня через три начну писать. Как тогда добавлять в статьи партнерские ссылки, вы не могли бы мне подсказать, как лучше ?

    Ответить
    • Виталий Кириллов:

      Луиза, любые внешние ссылки губительны для молодых сайтов, но если без них никак, то конечно их надо закрывать. Вы поймите, если у Вас посещаемость 30 человек в сутки, то на партнерках или рекламе вы ничего не заработаете. Прежде всего надо работать над посещаемостью и когда она достигнет 300-500 посетителей в сутки, только тогда можно думать о рекламе.

      Ответить
  37. Луиза:

    Спасибо за ответ

    Ответить
  38. Луиза:

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

    Ответить
    • Виталий Кириллов:

      Здравствуйте Луиза! Пишите статьи и вставляйте ссылки, просто скрывайте их с помощью AJAX, как показано в статье.

      Ответить
  39. Илья:

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

    Ответить
  40. ZeroXor:

    Google прекрасно умеет читать то, что загружается через AJAX, так что для него такой метод сокрытия ссылок не прокатит, увы. Насчет Яндекса — не знаю.

    Ответить
    • Виталий Кириллов:

      Читать то Гугл через AJAX умеет, да вот только ссылки он не индексирует, По крайней мере за последней год ни одна моя ссылка скрытая через AJAX так и не была проиндексирована Гуглом.

      Ответить
      • Евгений:

        Виталий, возможно, что всё-таки гугл учитывает ваши исходящие ссылки, так как имея Ссылок на сайт:
        доноров — 106, всего ссылок — 2347
        и Ссылок с сайта:
        акцепторов — 96, всего ссылок — 822
        из них ссылок с главной — 3
        у Вас Pr = 1, а мог бы быть 4! (не в обиду конечно)
        Может всё таки google их считает?

        Ответить
        • Виталий Кириллов:

          Евгений, я так понял, что речь идет про мой сайт, так вот ссылки в комментариях и ссылки с главной я закрыл совсем недавно, провожу эксперимент, а там уже можно будет точно сказать, индексирует Гугл эти ссылки или нет. На счет PR вы явно переборщили 🙂 4 для меня пока много.

          Ответить
          • Евгений:

            НА счет Pr: это не я переборщил, а сервис sbup.com 🙂 но, видимо после апгрейда гугловского должен быть Pr3! (искренне желаю!)
            Ссылки я смотре через xtool. А каким сервисом Вы пользуетесь, если не секрет?
            И до сих пор не могу понять какая у Вас посещаемость? ~19000?

            Ответить
            • Виталий Кириллов:

              Евгений, ссылки я смотрю на linkpad.

              Ответить
        • Виталий Кириллов:

          Кстати совсем недавно, всего ссылок было не 822 а 2144/

          Было:

          Ссылки

          Стало:

          Стало

          Ответить
  41. Владимир:

    Здравствуйте.
    Подскажите пожалуйста, как Вы подключили стиль CSS:
    span.external-reference {
    color: #5151FF; /* выбираем цвет ссылки */
    text-decoration: underline; /* устанавливаем подчеркивание */
    cursor: pointer; /* создаем курсор при наведении*/
    }

    Если после загрузки страницы скрипт преобразуется в нормальную ссылку:
    подпишитесь на обновления блога!

    Интересует как все же передать стили CSS ?
    Или таким образом просто создавать стили для всех тегов ?

    Ответить
    • Виталий Кириллов:

      Здравствуйте Владимир! Я маленько не понял, в чем проблема. Все стили прописываются для класса .external-reference.

      Ответить
      • Владимир:

        В том то и дело…. После загрузки страницы скрипт
        $('.external-reference').replaceWith (function (){return'<a href="'+$(this).data ('link')+'" title="'+$(this).text ()+'" rel="nofollow">'+$(this).html ()+'</a>';})

        преобразует анкор ссылки в обычную ссылку у которой данного стиля и нет .external-reference.
        Да не спорю в исходнике это <span class="external-reference" но на выходе обычная ссылка для которой данный класс не подключон.

        Ответить
        • Виталий Кириллов:

          Не знаю, все работает.

          Ответить
  42. Владимир:

    У Вас просто передаются стили от вашего тега «а».

    Ответить
    • Виталий Кириллов:

      Может быть, я уже не помню, в любом случаи спасибо за уточнение.

      Ответить
  43. Владимир:

    Здравствуйте Виталий Кириллов.
    Проводя очередной эксперимент по вашей методике….. В частности как скрыть изображение наткнулся вот с чем: Если использовать тот же скрипт для картинок, указав для тега «img» титл он выводит его адекватно. Но есть и вторая сторона медали!!!
    Открыв даже Ваше изображение «Девушка с цветком» через инспектор элементов, которое Вы спрятали…. Можно обратить внимание на саму ссылку в которой не валидно создается тот же титл. Для такого варианта больше подходит:

    $('.external-reference').replaceWith(function(){return''+$(this).html()+'';})
    
    Ответить
    • Владимир:

      Не выводит полный скрипт… Обрезка.
      В общем без использования (this).text для изображений, а только (this).html

      Ответить
  44. Андрей:

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

    Ответить
    • Виталий Кириллов:

      Здравствуйте! На других CMS работу скрипта я не проверял, но думаю, что все должно работать.

      Ответить
  45. Graf Avers:

    Заметил что у владельца блога похожим способом закрыты рубрики (правый сайдбар). Причем на главной рубрики то же сокрыты. Возможно я не прав но мнее кажется, что целесообразнее закрыть на всех старницах сквозняки рубрик, а на главной оставить как есть ссылками…

    Ответить
  46. papka:

    В исходном коде, как я понимаю, a href=»» быть не должно, но он есть

    Ответить
  47. Павел:

    Здравствуйте! Скажите пожалуйста, а как можно скрыть ссылки в комментариях? Заранее спасибо!

    Ответить
  48. АЛЕКС:

    Доброго времени суток многоуважаемый Автор .
    Подскажите пожалуйста как с помощью вашего метода реализовать
    следующую схему:
    <a href="http: //site.ru/" rel="nofollow">Название ссылки</a>
    не теряя свойств вашего варианта
    приведённого в статье
    При этом, при наведении курсора мыши на ссылку будет отображаться содержание «href», а переход будет осуществляться по адресу в «onclick».

    Ответить
  49. Игорь:

    А можно сделать вариант, что бы onclick="return !window.open(this.href)" можно было вставлять по желанию в код ссылки в редакторе. А то бывают случаи когда надо, что бы ссылки открывались в том же окне (внутренние переходы), а так же и нужны, что бы открывались в новом окне(внешние переходы).

    Ответить
    • Виталий Кириллов:

      Нет Игорь, я думаю не получится.

      Ответить
  50. Игорь:

    А не знаете почему так может быть: jQuery подключен с google через functions.php сквозные ссылки прячет на странице ссылки прячет, а в посте не работает. Подключаю ещё раз jQuery с google в heder.php (по исходному коду jQuery подключен 2 раза) ссылки в посте начинают работать и они спрятаны.

    Ответить
    • Виталий Кириллов:

      Не знаю.

      Ответить
  51. Андрей:

    Виталий, добрый вечер и спасибо за статью!

    У меня не осуществляется переход по ссылке из вашего блога:

    «Обязательно подпишитесь на обновления блога!

    Словосочетание «Подпишитесь на обновление блога» и есть анкор ссылки, можете нажать на строчку и убедиться.»

    При нажатии на строчку ничего не происходит.
    Закрыл на своей странице ссылку «Polar Grill» — тот же эффект.

    Может быть я не понял чего-то?

    Ответить
    • Андрей:

      Когда внес изменения в файл header.php, исчезли по всему сайту фоновые картинки.

      Ответить
    • Виталий Кириллов:

      Андрей, я тут у себя работал со стилями и много чего поменял, наверное поэтому строчка перестала работать как ссылка. Раньше все функционировало. Надо подправить статью.

      Ответить
  52. Max:

    Скрипт рабочий конечно, но теряется валидность для XHTML, data- применяется в HTML5, существуют несколько более простых решений, у Алаева были неплохие статьи по этому вопросу…

    Ответить
  53. Андрей:

    хорошая статья..подробная…но я все равно не пойму как и что . Вот у меня код и не очень понимаю как в него применить ваш способ..подскажите пожалуйста..спасибо

    Ответить
  54. Андрей:

    вот ещё одна ссылка кодом <a title="» как к ней приложить span чтобы работало?

    Ответить
    • Виталий Кириллов:

      Андрей, я так и не понял какой у Вас код и какая ссылка. В статье вроде все расписал.

      Ответить
  55. astrellas:

    Спасибо за интересный пост!! Поставила на Джумлу посмотрю как будет индексироваться. Хотя конечно страшновато, боюсь Яндекса))

    Ответить
    • Виталий Кириллов:

      Не надо боятся! Мой блог уже прошел все испытания)

      Ответить
  56. Михаил:

    Ну бред же. Чистый бред. Зачем людей обманывать то? Да и ты сам должен знать, что js не индексируется поисковиками никак. Все, что делается через js работает исключительно в браузере.

    Ответить
  57. Юлия:

    Виталий, скажите, а атрибут rel=»nofollow» уже не нужно добавлять к ссылке? Посмотрела у Вас в статье про битые ссылки добавлен еще этот атрибут.

    Ответить
    • Виталий Кириллов:

      Юлия, я не стал переделывать все ссылки с nofollow, просто наверное лень копаться в старых записях.

      Ответить
  58. Юлия:

    Понятно тогда почему так. Спасибо за ответ!

    Ответить
  59. Ксенья Юрьевна:

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

    Ответить
  60. Андрей:

    Спасибо за полезную и интересную статью!

    Ответить
  61. Aleks:

    Здравствуйте, очень замечательная статья. Подскажите ссылка, которая начинается не с http, а с https так же закрывается?

    Ответить
    • Виталий Кириллов:

      Должно по идее работать, но я не пробовал.

      Ответить
  62. Юлия:

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

    Ответить
    • Виталий Кириллов:

      Нет Юлия, плагин я не пробовал. Думаю вполне возможно, что плагин прогоняет все через фильтр, где убираются лишние эффекты, за что и может быть принят тег span. Лучше конечно сделать мобильную версию не используя плагины, я как раз сейчас над этим работаю, но надо знать css.

      Ответить
  63. Алексей:

    Подскажите как закрыть ссылки в сайтбарре боковой колонке?

    Ответить
  64. SergCasper:

    Это единственный на сегодняшний день способ))) Интересно, скоро ПС научатся ссылки в скриптах видеть? Тогда вообще труба — вариантов пока больше нет ))))

    Ответить
  65. Дмитрий:

    Код скрипта не работал. Пришлось гуглить. Есть решение:
    https://toster.ru/q/191721

    Вот такой код сразу работает:
    <script>(function($){
    $(document).ready(function(){
    $('.external-reference').replaceWith (function (){return'<a href="'+$(this).data('link')+'" title="'+$(this).text()+'">'+$(this).html()+'</a>';});
    });
    })(jQuery);</script>

    Ответить
    • Виталий Кириллов:

      Дмитрий, так это мой код, слямзеный из статьи «Сквозные ссылки». Даже переменные переименовать не потрудились. Правда для тегов я полностью функцию прописывать не стал, просто привел категории в пример.

      Ответить
      • Дмитрий:

        Что код ваш — никто не спорит, проблема в том, что без $(document).ready(function() скрипт не работал. Мне кажется стоит в этой статье дописать.

        Ответить
        • Виталий Кириллов:

          Спасибо Дмитрий! Я если честно, сразу не понял о чем Вы. Давайте я как раз в комментарии и приведу вариант обновленного скрипта.

          +function($){
            $(document).ready(function(){
              $('.external-reference').replaceWith (function (){return'<a href="'+$(this).data('link')+'" title="'+$(this).text()+'">'+$(this).html()+'</a>';});
            });
          }(jQuery);
          
          Ответить
          • Алексей:

            ДОбрый день
            Все сделал, как в статье, но при клике на ссылку ничего не происходит

            перед указал

            $('.external-reference').replaceWith (function($){
            $(document).ready(function(){
            $('.external-reference').replaceWith (function (){return'<a href="'+$(this).data('link')+'" title="'+$(this).text()+'" rel="nofollow">'+$(this).html()+'</a>';});
            });
            }(jQuery));

            код ссылки в html
            www.thefurnish.ru/shop/svet/svet-dlya-detskoy

            подключение jquery

            в консоли хрома
            Uncaught TypeError: Cannot read property ‘replaceWith’ of null(anonymous function) @ (index):654
            -(

            Хелп

            Ответить
            • Виталий Кириллов:

              Здравствуйте Алексей!
              Попробуйте такой скрипт:

              +function($){
                $(document).ready(function(){
                  $('.external-reference').replaceWith (function (){return''+$(this).html()+'';});
                });
              }(jQuery);
              
              Ответить
  66. Алексей:

    Подскажите как вставить для рубрик только onclick="return !window.open(this.href)"

    Ответить
    • Виталий Кириллов:

      Вставьте код прямо в ссылку, рядом с class="external-reference".

      Ответить
      • Алексей:

        рубрики выводятся через wp_list_categories Хотел чтобы они открывались в новом окне onclick="return !window.open(this.href)"
        class="external-reference" такого класса у меня нет а выше приведенная функция полностью вырубает сайт только белый экран

        Ответить
        • Виталий Кириллов:

          Алексей, вот тут все описано. В принципе ничего никуда вставлять не надо, скрипт сам все сделает.

          Ответить
          • Алексей:

            сделал так function mayak_hide_navigation_menu( $mayak_hide_menu ) {
            $pum = array ("<a", "/a>", "href", );
            $bum = array ('<a onclick="return !window.open(this.href)"', "/a>", "data-link");
            return str_replace($pum, $bum, $mayak_hide_menu);
            }
            add_filter( 'wp_list_categories', 'mayak_hide_navigation_menu' );
            А нет ли более простого варианта? к <ul><?php wp_list_categories();?> </ul> прикрутить onclick="return !window.open(this.href)"

            Ответить
            • Виталий Кириллов:

              Только через фильтр, по другому никак. Только вы href и data-link из кода уберите.

              Ответить
  67. homepink:

    скажите а ПС на данный момент точно не видят такие ссылки, закрытые через скрипт? А то часто вижу что люди пишут мол поисковики видят все, но может не учитывают их?

    Ответить
  68. Геннадий:

    Всё сделал,вроде получилось!Респект!!!доступно и понятно.СПС за статью.

    Ответить
  69. Ксенья Юрьевна:

    Виталий, в коде своего сайта я вижу библиотеку jQuery. Ее нужно еще раз подключать, или нет?

    Ответить
    • Виталий Кириллов:

      Нет, подключать второй раз не надо.

      Ответить
  70. Ксенья Юрьевна:

    Спасибо, Виталий за ответ, я подумала, что библиотека jQuery может быть в другой папке находится.

    Ответить
  71. Артем Михайлов:

    Виталий, доброе утро! Подскажите, а если надо, чтобы ссылки с картинками открывались в новом окне, а текстовые ссылки в том же — это можно как-то реализовать? Например сделать 2 класса external-reference, и добавить в footer.php 2 скрипта обработчика (один без ссылок в новом окне, другой, чтобы открывал в новом окне). Спасибо.

    Ответить
  72. Артем Михайлов:

    Как всегда написал Вам и сразу пришло решение;))) Сделал класс external-reference1 и в обработчике и в ссылке и все заработало))

    Ответить
  73. Жулиена:

    Виталий, подскажите, а можно сделать так, что бы ещё и кнопка в редакторе админки была для вставки ссылок?
    То есть, чтобы не прописывать код в режиме HTML, а в обычном режиме прописать ссылку, выделить и нажать на кнопку. И ссылка уже закрыта кодом автоматически.

    Ответить
    • Виталий Кириллов:

      Сделать то наверное можно, вод бы только понять как…

      Ответить
  74. Жулиена:

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

    Ответить
    • Виталий Кириллов:

      Давайте, попробуем.

      Ответить
  75. Жулиена:

    Отправила!

    Ответить
  76. Жулиена:

    Только не правильно почту указала в форме.

    Ответить
    • Виталий Кириллов:

      Напишите еще раз)

      Ответить
  77. Ксенья Юрьевна:

    Здравствуйте, Виталий. Вставила все ссылки куда нужно: в хедер, футер, и в стили. Обернула ссылки в баннере. После чего от баннера осталась только коричневая полоса. Хорошо, что в блокноте был сохранен прежний текст и я быстро все исправила. Однако мне хотелось ссылки закрыть, но не получилось. Что-то здесь не так.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Ксения Юрьевна! Закрывайте банеры с помощью второго варианта, который описан в статье сквозные ссылки.

      Ответить
  78. Ксенья Юрьевна:

    Спасибо, Виталий, попробую разобраться со вторым способом.

    Ответить
  79. Артем:

    Добрый день, Виталий. Подскажите, как грамотно решить вот такую задачу — картинки подгружаются с Яндекс.фотки, что бы место меньше занимать. Но должно складываться впечатление, что они лежат в корневой папке, то есть я прописываю только путь до картинки: То есть я достиг чего хотел, а именно что бы картинка не была ссылкой, а как будто лежит в корневой папке. Стоит ли мне ее закрывать от индексации и как лучше это сделать? Подскажите, пожалуйста.

    Ответить
  80. Влад:

    Виталий, подскажите, пожалуйста, как адаптировать приведенные Вами действия к шаблону joomla. В частности, куда вставлять скрипт для обработки запроса (тот что Вы вставляете в footer.php)?

    Ответить
    • Виталий Кириллов:

      Влад, обычно скрипт вставляется в футер, но можете вставить его в область head.

      Ответить
      • Влад:

        Виталий, дело в том, что, как я понял, два основные включения дополнительного кода — это 1) вставка в header.php подключения библиотек (здесь вроде бы понятно)
        2) вставка обрабатывающего скрипта в footer.php («Для этого в файле footer.php перед закрывающем тегом вставляем следующее:…»). Дело в том, что у меня в шаблоне в футере нет тегов . Тогда вставлять перед , или же перед общим закрывающем в самом конце общего кода? Или, как Вы ответили выше, в head?

        И еще вопрос, как понять, заработали ли все это? Что вес никуда не пропадает?

        Заранее благодарен!

        Ответить
        • Влад:

          Небольшая ремарка: Тогда вставлять перед /footer, или же перед общим закрывающим /body в самом конце общего кода? Или, как Вы ответили выше, в head?

          Ответить
          • Виталий Кириллов:

            Попробуйте перед закрывающим тегом body или можетt в head вставить.

            Ответить
  81. Danick:

    Здравствуйте.
    Так и не понят как сделать, что бы скрипт открывал ссылку в новой вкладке. Подскажите пожалуйста.

    Ответить
    • Виталий Кириллов:

      Здравствуйте! Вот готовый скрипт:

      <script>
      +function($){
        $(document).ready(function(){
          $('.external-reference').replaceWith (function (){return'<a onclick="return !window.open(this.href)"
       href="'+$(this).data('link')+'" title="'+$(this).text()+'" rel="nofollow">'+$(this).html()+'</a>';});
        });
      }(jQuery);
      </script>
      Ответить
  82. Татьяна:

    Виталий, здравствуйте! Возможно мой опыт по установке Ваших скриптов поможет устранить проблемы, возникающие у некоторых читателей Вашего блога. Я действовала строго по Вашим инструкциям: вставила скрипты в фанкшин, футер и стайл. Результат: нерабочие ссылки в сайтбаре и в исходном коде нет нужных изменений. Я открыла сайтбар и увидела, что в моей теме используется тег wp_list_cat, а не wp_list_categories. Я заменила тег в сайтбаре на wp_list_categories. После этого в исходном коде произошли нужные изменения, но в сайтбаре ссылки не работали.Тогда я ещё раз откопировала скрипт обработчик с Вашего сайта, вставила его в нотепад, а оттуда в футер. И все проблемы исчезли. Спасибо Вам большое, буду ждать результатов.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Татьяна! Функция wp_list_cat не входит в функционал WordPress и написана разработчиками Вашего шаблона. Такой часто встречается и Вы молодец, что во всем разобрались!

      Ответить
  83. Руслан:

    Пытался закрыть внутренние сквозные ссылки на своем сайте при помощи jQuery AJAX. Основу я брал из блога Алаича alaev.info. Но у меня были проблемы с работоспособностью ссылок, скрипты не работали. Использовал следующий код

    внешняя ссылка
    $(‘.hidden-link’).replaceWith (function (){return»+$(this).html ()+»;})

    В поиске решения своей проблемы попал на Ваш блог и нашел конструкцию, обрамляющую код основного скрипта, добавил в нее код скрипта от алаича и все заработала. Ваш код также полностью работоспособный. Спасибо!

    +function($){
    $(document).ready(function(){

    });
    }(jQuery);

    У меня вопрос: эта конструкция подключает jQuery?

    Ответить
    • Михаил:

      +function($){
      $(document).ready(function(){

      });
      }(jQuery);

      У меня вопрос: эта конструкция подключает jQuery?

      Это запускает выполнение тела функции после загрузки страницы.

      А у меня вопрос к Автору и всем — а где AJAX? Не увидел ничего связанного с этой технологией. Аякс позволяет не менять содержимое кода страницы, как мне кажется про это написано, технология позволяет получить данные с сервера и поместить их на странице без ее перезагрузки.

      И возникает вопрос — а как же скрывать ссылки правильно и эффективно?

      Ответить

Оставить комментарий

Внимание комментатор! Прежде чем вставить: HTML, JavaScript или PHP код в свой комментарий, преобразуй его в html сущность!

Subscribe without commenting

» Подписаться на комментарии по RSS