Обнаружили на страницах сайта множество ссылок дублирующих друг друга, эти ссылки располагаются в разных блоках, виджетах и разделах сайта.
Например в блоке с новостями: ссылка дублируется аж 3 раза: ссылка на статью, ссылка с изображения, ссылка на кнопке подробнее.
Есть дублирующие ссылки в главном слайдере, дубли в миниатюрах каждого слайда,
Дубли в кнопках вида «далее», «подробнее» - даже во внутренних ссылках нельзя использовать не точные анкоры, анкор должен соответствовать теме URL , поэтому такие кнопки лучше завернуть в JS.
Категории товаров. Принято считать, что сквозные элементы сайта, в частности меню, поисковиками не учитываются, либо учитываются очень слабо, т.к. присутствуют на каждой странице. Тем не менее имеют место быть различные варианты. Возьмем для примера 4 крупных интернет-магазина: www.mvideo.ru, www.eldorado.ru и www.dns-shop.ru, www.tehnosila.ru. На сайте М.Видео абсолютно всё меню навигации с категориями и подкатегориями закрыто в тег noindex. Аналогичная картина на сайте Эльдорадо. Закрывать меню в noindex имеет смысл только чтобы не учитывать его текстовую составляющую, чтобы меню не попадало в сниппет на поисковой выдаче, чтобы не мешало определению релевантной страницы. Если запустит Краулер и посмотреть как он определить релевантные страницы, то можно увидеть что некоторые стр. определяются не верно.
Так же есть повторяющиеся ссылки в Footer , микроразметке, и т.д, и прочих элементах...
судя по отчету ScreaminFrog - google видит все внутренние ссылки, воспринимает, и распределяет вес с учетом всех внутренних факторов. Ссылки нужно закрыть, но по умолчанию такого решения в Opencart не предлагается, поэтому ищем альтернативные способы, изучаем правила закрытия ссылок:
Внутренние ссылки не должны содержать атрибута rel=”nofollow”. В противном случае вес со страницы будет утекать, то есть будет попросту испаряться.
Атрибут rel=”nofollow” необходимо использовать в редких случаях случаях, когда ссылка ведет на неиндексируемую страницу.
Ссылки всегда должны вести на индексируемые страницы сайта, иначе будет повторяться история, описанная в пункте №1 выше.
Даже при формировании внутренних ссылок при перелинковке следует использовать уникальные анкоры.
Внутренние ссылки всегда должны быть прямыми и идти строго на целевые страницы. Это значит, что переход по ссылке должен отдавать ответ 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>';})
Интересно кто какие варианты использует и на что нужно обратить внимание еще.