Главная | Блоги | Блог Константин Бояндин

jQuery - JavaScript библиотека

Слишком много ссылок

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

Поисковые службы могут начать считать страницу «собранием ссылок» (в русском сегменте используют иной, куда менее приятный термин). Обрамить ссылки так, чтобы не производилось их индексирования? Вес страницы в глазах того же Google всё равно пострадает — в связи с методикой вычисления PR, которым делится страница. Владельцев ресурсов, на которые указывают такие ссылки, тоже порой задевает запрет индексирования.

Один из вариантов — разместить ссылки в текстовом виде. Но тогда будет неудобно по ним переходить: не у каждого в браузере установлен модуль, превращающий такой текст в полноценную ссылку.

Задачу можно решить при помощи JavaScript. WordPress, Drupal и некоторые другие популярные CMS используют JavaScript-библиотеку jQuery, и решение поставленной задачи становится крайне простым.

Шаг 1. Поместите все ссылки, подлежащие преобразованию, в виде следующей разметки:

<span class="makelink">http://example.com</span>

или

<span class="makelink">http://example.com Имя сайта</span>

Шаг 2. В самом конце заметки поместите следующий блок кода

<script type="text/javascript">
$('span.makelink').each(function(index) {
    var h = $(this).html(); var t = h;
    var spos = h.indexOf(' ');
    if (spos > 0) {
        t = h.substring(1 + spos, h.length);
        h = h.substring(0, spos);
    }
    $(this).html('<a href="'+h+'" target="external">'+t+'</a>');
});
</script>

(убедитесь, что разрешается вставка JavaScript-блока).

Всё. Сохраните и смотрите на результат. Пример такого трюка в действии см, например, на странице списка DoFollow блогов, F-R.

Пояснения и замечания

1. Вы можете использовать тег, отличный от span и класс, отличный от makelink, но тогда измените JavaScript-фрагмент соответственно.

2. Если через пробел после адреса ссылки идёт произвольный текст, именно он станет текстом анкора (рабочей ссылки). Если там только URL, он же и будет использован в качестве текста.

3. Если у вас не используется jQuery, установите, следуя инструкциям на сайте. Сокращённый вариант библиотеки занимает 70 килобайт, но этот файл статический и прекрасно кэшируется.

Адрес уведомления об обратной ссылке для этой записи:

http://boyandin.info/trackback/169

Комментарии

Настройки просмотра комментариев

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

Линко помоек страничных на

Линко помоек страничных на обычном сайте мало. Может проще эти страницы в мета тегах запретить индексацию ссылок, а комменты, группами выводить. Такой способ будет работать?

Аватар пользователя Константин Бояндин

Мета-теги аннулируют

Мета-теги аннулируют индексирование на всей странице. А речь о том, чтобы для посетителя ссылка была активной - не копировать её, а попросту нажать - а для поисковых роботов вовсе не была ссылкой.

При том, что не всегда нужно "обезвреживать" именно все ссылки.

Выводить комментарии постранично - да, это полезно в любом случае.

Аватар пользователя Игорь

Интересный трюк. А текстовые

Интересный трюк.

А текстовые ссылки точно не учитываются. По крайней мере в яндексвебмастере так написано.

Аватар пользователя Константин Бояндин

Официально - да, на рейтинги

Официально - да, на рейтинги и прочее не влияют. Но вот не учитываются ли полностью - вопросы открытый.

Аватар пользователя Ванек

Интересно придумал! Но лучше

Интересно придумал! Но лучше не устраивать "собрание ссылок". А эти ссылки ведь не будут индесироваться? Тогда зачем они нужны?
Аватар пользователя Константин Бояндин

1. Большая коллекция ссылок

1. Большая коллекция ссылок приведёт к обесцениванию страницы - выпадению из индекса. Так что в любом случае авторы сайтов не получат ссылочной массы.

2. Если бы пользы не было, сюда бы не заходило столько посетителей. заходят и -далее, в гости к упомянутым блогам. Вот вам и польза.

Аватар пользователя Гость

А почему реализация именно на

А почему реализация именно на jQuery, а не Mootools? :)

Аватар пользователя Константин Бояндин

Что-то вы однообразны, тов.

Что-то вы однообразны, тов. платный комментатор.

Но учту свою ошибку и по поводу предыдущего вашего комментария. Ничего личного.

Аватар пользователя Скептик

А если по другому

Мне кажется чтобы код был меньше, можно не вырезать http из названия, а вместо span сразу писать тег А, но без HREF (его потом подставлять)

Аватар пользователя Константин Бояндин

Атрибут href является

Атрибут href является обязательным - при переходе на строгое соответствие стандартам это само по себе породит немало ошибок.

Аватар пользователя Скептик

По стандартам href

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

Аватар пользователя Константин Бояндин

Тут мы с вами коренным

Тут мы с вами коренным образом расходимся во мнении. Я считаю, что будет.

Один только аргумент: всё идёт к тому, что стандартом разметки станет XHTML 2.0. А в существующих стандартах неверная разметка означает, что браузер, по умолчанию, ничего толком не покажет.

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

Если кто-то хочет прогибаться по ПС и корёжить рамзетку под них, его право. Я - не намерен.

Аватар пользователя Руслан

Ах вот оно...

Это делается главным образом для поисковиков? Таким способом заковыристым с ними побороться.

Аватар пользователя Константин Бояндин

А кто сказал, что

А кто сказал, что бороться?
Это делается в первую голову для того, чтобы страница не становилась свалкой ссылок.

Ведь не все ресурсы, которые перечисляешь, охота видеть полноценными ссылками.

Но некое "прогибание" под поисковики тоже можно узреть. если захотеть.

Аватар пользователя Михаил

Сложно

Слишком сложный способ чтоб его применять, мое имхо.

Аватар пользователя Константин Бояндин

Предложите равномощную

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

Аватар пользователя Сёма

Обязательно это делать с

Обязательно это делать с jquery?

Аватар пользователя Константин Бояндин

Разумеется, нет. Но,

Разумеется, нет.

Но, поскольку Drupal использует для динамических эффектов, включая AJAX, jQuery, логично именно его интерфейс и использовать.

Если нужно дополнение, как это сделать под другими JS-библиотеками, скажите.

Аватар пользователя Rulexec

jQuery

А почему реализация именно на jQuery, а не Mootools? :)
Аватар пользователя Константин Бояндин

Почему не MooTools,

Почему не MooTools, Script.aculo.us, Dojo... и сколько там ещё этих библиотек?

Ответ простой: потому что на CMS, которой я пользуюсь, используется jQuery.

Можно и для других библиотек написать фрагмент - тривиальная ведь вещица.

Аватар пользователя Мудрые высказывания

Зачем так сложно?

Зачем так усложнять, если есть *очень* простой способ? Ставите ссылку с добавлением rel="nofollow" — и все, проблема решена.

Аватар пользователя Константин Бояндин

Ответил вам в Disqus-реплике

Ответил вам в Disqus-реплике вашего комментария.

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

Содержание этого поля является приватным и не предназначено к показу. Если у вас есть аккаунт в Gravatar, связанный с этим e-mail адресом, то он будет использован для отображения аватара.
CAPTCHA
Мы хотим убедиться, что данные вводит человек, а не программа
  _             _   _  _     _       ____    _       _   _ 
| |__ ____ / | | || | | |__ | __ ) | | | | | |
| '_ \ |_ / | | | || |_ | '_ \ | _ \ | | | | | |
| | | | / / | | |__ _| | |_) | | |_) | | |___ | |_| |
|_| |_| /___| |_| |_| |_.__/ |____/ |_____| \___/
Введите код, изображенный в стиле ASCII-арт.

Блог в СИНДИКАТе | Проза жизни | ИНФОтека | де Мотиватор | Люди, имена и блоги
Creative Commons License
Если явным образом не выражено иначе, все работы на данном сайте доступны по лицензии
Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Перевод текста упомянутой выше лицензии на русский язык
© 2008-2012 Константин Бояндин

Статьи: Обзоры

Хостинг: Blue Light Host, Великобритания

Автор

Новосибирск, весна 2009
В Эфире    
infoworld