Суть метода заключается в том, чтобы скрыть ссылки в коде страницы и в тоже время оставить их работающими. Это нужно чтобы такие ссылки не забирали «вес» со страниц. Например «Главная», «Новости» и т.д.
Реализация
1. В файле scripts.js
function base64_decode( data ) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
do {
h1 = b64.indexOf(data.charAt(i++));
h2 = b64.indexOf(data.charAt(i++));
h3 = b64.indexOf(data.charAt(i++));
h4 = b64.indexOf(data.charAt(i++));
bits = h1<<18 | h2<<12 | h3<<6 | h4;
o1 = bits>>16 & 0xff;
o2 = bits>>8 & 0xff;
o3 = bits & 0xff;
if (h3 == 64) enc += String.fromCharCode(o1);
else if (h4 == 64) enc += String.fromCharCode(o1, o2);
else enc += String.fromCharCode(o1, o2, o3);
} while (i < data.length);
return enc;
}
function replaceHLink() {
$('.hlink').each(function() {
$(this).removeClass('hlink').addClass('olink');
var arr = $.map(this.attributes, function (attribute) {
if (attribute.name != 'data-href') {
return attribute.name + '="' + attribute.value + '"';
}
});
$(this).replaceWith('<a ' + arr.join(' ') + ' href="'
+ base64_decode($(this).data("href")) + '">' + $(this).html() + '</a>');
});
};
$(function(){
replaceHLink();
});
2. Подключить файл scripts.js в <head>
страницы.
3. В robots.txt закрыть индексирование файла scripts.js, добавив строку:
4. В коде страницы, ссылки, которые нужно спрятать переделываются в тег <span>
или другой удобный, а адрес ссылки кодируются в base64 и помещается в атрибут data-href
:
Было:
Стало:
Было:
Стало:
При загрузке страницы в браузере, теги с классом .hlink
заменятся на ссылки с классом .olink
.
Еще у ссылок нужно добавить атрибут rel="nofollow"
и обвернуть ссылки в <noindex>...</noindex>
.