Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Способ закрытия внутренних ссылок на jQuery AJAX


Recommended Posts

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

 

  • Например в  блоке с новостями: ссылка дублируется аж 3 раза: ссылка на статью, ссылка с изображения, ссылка на кнопке подробнее.
  • Есть дублирующие ссылки в главном слайдере, дубли в миниатюрах каждого слайда,
  • Дубли в кнопках вида «далее», «подробнее» - даже во внутренних ссылках нельзя использовать не точные анкоры, анкор должен соответствовать теме URL , поэтому такие кнопки лучше завернуть в JS. 
  •  Категории товаров.  Принято считать, что сквозные элементы сайта, в частности меню, поисковиками не учитываются, либо учитываются очень слабо, т.к. присутствуют на каждой странице. Тем не менее имеют место быть различные варианты. Возьмем для примера 4 крупных интернет-магазина:  www.mvideo.ru, www.eldorado.ru и www.dns-shop.ru, www.tehnosila.ru. На сайте М.Видео абсолютно всё меню навигации с категориями и подкатегориями закрыто в тег noindex. Аналогичная картина на сайте Эльдорадо. Закрывать меню в noindex имеет смысл только чтобы не учитывать его текстовую составляющую, чтобы меню не попадало в сниппет на поисковой выдаче, чтобы не мешало определению релевантной страницы. Если запустит Краулер и посмотреть как он определить релевантные страницы, то можно увидеть что некоторые стр. определяются не верно.
  • Так же есть повторяющиеся ссылки в Footer , микроразметке, и т.д, и прочих элементах...

 

судя по отчету ScreaminFrog - google видит все  внутренние ссылки, воспринимает, и распределяет вес с учетом всех внутренних факторов. Ссылки нужно закрыть, но по умолчанию такого решения в Opencart не предлагается, поэтому ищем альтернативные способы, изучаем правила закрытия ссылок:

 

  1. Внутренние ссылки не должны содержать атрибута rel=”nofollow”. В противном случае вес со страницы будет утекать, то есть будет попросту испаряться.
  2. Атрибут rel=”nofollow” необходимо использовать в редких случаях случаях, когда ссылка ведет на неиндексируемую страницу.
  3. Ссылки всегда должны вести на индексируемые страницы сайта, иначе будет повторяться история, описанная в пункте №1 выше.
  4. Даже при формировании внутренних ссылок при перелинковке следует использовать уникальные анкоры.
  5. Внутренние ссылки всегда должны быть прямыми и идти строго на целевые страницы. Это значит, что переход по ссылке должен отдавать ответ 200 OK. Я не говорю о том, что битые ссылки недопустимы, это очевидно, а я говорю о том, что ссылки должны идти без промежуточных 301-редиректов (а если там еще и не 301, а 302-редирект, то совсем беда). Не редко, когда меняют структуру, либо по вине верстальщика

 

отследить на глаз многие мелочи трудно, и чтобы потом не удивляться - советую использовать краулер. (XENU или родной Screaming Frog)

 

Нашел следующие методы закрытия внешних и внутренних ссылок на jQuery AJAX:

(взяты со стороннего ресурса; там где проводили эксперимент пишут, что все способы  рабочие)

 

Вариант №1 —

<a href="#" class="link" data-link="http://goo.gl">ссылка</a>

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

<script>$('a.link').click(function(){window.open($(this).data("link"));return false;});</script>

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


Вариант №2 —

Код ссылки на странице:

<a href="#" class="link" rel="http://goo.gl">ссылка</a>

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

<script>$('a.link').click(function(){window.open($(this).attr("rel"));return false;});</script>

Вариант №3 —

Код ссылки на странице:

<span class="hidden-link" data-link="http://goo.gl">ссылка</span>

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

<script>$('.hidden-link').click(function(){window.open($(this).data('link'));return false;});</script>

как пишет автор данный вариант100% не вызовет никаких подозрений у поисковика, так как даже структурно в коде нет ссылки, а просто кусок текста (он же анкор) выделен спаном <span>, что довольно часто используется при разметке документов.

Однако и отображаться такая «ссылка» будет как обычный текст на странице. Придется пошаманить с css, чтобы имитировать ссылку. Например, добавить в свой css:

span.hidden-link {
	color: #00ff00; /*-цвет ссылки-*/
	text-decoration: underline; /*-подчеркивание-*/
	cursor: pointer; /*-указатель в виде пальца-*/
}

Вариант №4 — Еще один вариант скрытия ссылки

<span class="hidden-link" data-link="http://goo.gl">ссылка</span>

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

<script>$('.hidden-link').replaceWith(function(){return'<a href="'+$(this).data('link')+'">'+$(this).text()+'</a>';})</script>

Отличие этого способа от предыдущего в том, что js-скрипт меняет на странице html-код «якобы» ссылки на нормальную ссылку после полной загрузки документа. Поэтому никаких правок в css вносить не придется, а ссылка будет открываться как и обычная.
Способ так же прошел проверку экспериментом — ссылка не индексируется и не видится поисковыми роботами и, соответстенно, не учитывается.

 

Вариант №5 — Универсальный вариант скрытия любого контента, например, картинок

..... Предыдущий вариант не работает в том случае, если в анкоре ссылки стоит картинка. А такие варианты довольно часто встречаются: счётчики, информеры, партнёрские баннеры. Поэтому предлагаю использовать вместо метода .text () метод .html (), он будет более универсальным.

Код элемента, в данном случае ссылки, на странице, будет такой:

<span class="hidden-link" data-link="http://goo.gl">внешняя ссылка</span>

* — Чтобы закрыть картинку, в коде, указанном выше, необходимо заменить «внешняя ссылка» на код <img src="...">.

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

<script>$('.hidden-link').replaceWith(function(){return'<a href="'+$(this).data('link')+'">'+$(this).html()+'</a>';})</script>

Как вы понимаете, отличие данного способа от всех других в том, что в скрипт можно «спрятать» не только ссылку, но и картинку со ссылкой или еще что-нибудь. Все проверено — все работает :)

 

6.  Вариант №6 —  как пишут в коментариях самый лучший.

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

 

Интересно кто какие варианты использует и на что нужно обратить внимание еще.

 

 

Змінено користувачем Гість
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.