Нужно ли закрывать ссылки? Как они вредят?
PageRank [digits.ru] является одним из алгоритмов ранжирования Яндекса и Google: чем больше ссылок ведёт на страницу, тем она более авторитетна, так как ссылка есть не что иное, как рекомендация посмотреть другой документ.
Каждой проиндексированной странице поисковая система присваивает некое значение PageRank, сокращенно PR.
- PR страницы увеличится, если на неё поставить ссылку.
- PR страницы не уменьшится, если на ней разместить ссылку, также как не пропадёт уважение к врачу оттого, что тот посоветует другого хорошего доктора.
- Чем больше PR страницы, тем больший вес она передаст по ссылке другой странице.
- Чем больше на странице ссылок, тем меньший вес она передаст по ссылке другой странице.
Для того, чтобы PR оставался внутри сайта:
- количество внутренних ссылок должно быть больше количества внешних, особенно на страницах, на которые часто ссылаются другие ресурсы,
- на страницах, на которые ведут сквозные ссылки, (Главная, «О компании», «Автор», «Реклама», «Вакансии», «Контакты», «Политики конфиденциальности» и т. п.) вовсе должны отсутствовать внешние ссылки.
Зачем нужно закрытие исходящих внешних ссылок?
- Чтобы достичь максимально возможного значения PageRank страниц сайта.
- Чтобы избежать ухудшения позиций в выдаче из-за размещения ссылок на ненадёжные сайты.
Зачем нужно закрытие внутренних ссылок?
- Чтобы добиться необходимой частоты сканирования поисковыми роботами желаемых страниц сайта (подробнее про краулинговый бюджет [googleblog.com]).
Все ли ссылки нужно закрывать?
Нет, если они тщательно подобраны и полезны для посетителей, так как ссылки
- указывают на то, что автор хорошо разбирается в вопросе, его слова имеют подтверждение,
- могут дополнить статью и пользователю не будет нужды отправляться в Яндекс или Google, чтобы найти исчерпывающую информацию.
На shpargalkablog.ru
в статьях нет ни одной закрытой.
Атрибут rel="nofollow"
Атрибут rel="nofollow"
[whatwg.org] пишется в HTML-код ссылки,
- размещенной в блоках, где без одобрения автора посетители самостоятельно добавляют записи (комментарии, отзывы, гостевые книги, профили, сообщения на форумах и т. п.), для сокращения СПАМа [google.com],
- размещённой в обмен на предоставление товаров, услуг или денежного вознаграждения в статье, отзыве, объявлении, баннере и т. п. [google.com],
- размещенной в тексте гостевого поста [youtube.com],
- ведущей на свою (только для крупных проектов в целях экономии краулингового бюджета) или другого сайта страницу вне индекса поисковиков (RSS, версия для печати, закрытые паролем «Вход», «Регистрация», «Корзина» и т. п.),
- ведущей на сайт разработчика виджета или проекта в целом [youtube.com],
- ведущей на ресурс, о котором сообщается в негативном ключе и продвижению которого не хочется способствовать [google.com].
По ссылкам с rel="nofollow"
поисковый робот, как правило, не переходит, не передает ни PageRank, ни анкор, но вес на неё расходуется [mattcutts.com]. Во внутренней перелинковке сайта лучше вовсе не использовать внутренние nofollow
-ссылки — даже пустая страница с меню вносит вклад в общий PR сайта.
Пример HTML-кода между <body>
и </body>
<a href="http://shpargalkablog.ru/2010/08/skrytie-vneshnih-ssylok.html" rel="nofollow">анкор</a>
Как проверить
Значение nofollow
мета-тега robots
или HTTP-заголовка X-Robots-Tag
Вместо того, чтобы всем ссылкам страницы, в том числе внутренним, указывать атрибут rel="nofollow"
, можно значение nofollow
один раз задать meta-тегу роботс или HTTP-заголовку X-Robots-Tag
[google.com].
Пример HTML-кода между <head>
и </head>
<meta name="robots" content="nofollow"/>
Как проверить
Посмотреть HTML-код документа.
Пример .htaccess
Header set X-Robots-Tag "nofollow"
Пример PHP
header('X-Robots-Tag: nofollow');
Как проверить
Посмотреть ответ HTTP заголовка сервера.
JavaScript
Гугл прекрасно распознаёт динамическую загрузку с помощью Ajax, не говоря об остальном. Самая надёжная защита от индексирования части сайта — аутентифицировать пользователей до разрешения просматривать ими дополнительный контент.
Можно попробовать:
- запретить индексировать файл JS со скриптом Ajax, что поисковыми системами не рекомендуется делать [google.com],
- подгружать на страницу вспомогательные блоки, улучшающие пользовательский опыт, но не являющиеся обязательными, («Поделиться» с кнопками социальных сетей, код в случае блокировки рекламы в браузере и т. п.) после совершения посетителями какого-либо действия (прокрутка страницы, нажатие на кнопку, движение курсора мышки и т. п.), что полезно делать в первую очередь для увеличения скорости загрузки документа.
Пример JS последнего случая
Создать файл add.php
<?php
if (isset ($_POST['add'])) {
echo '<a href="#" rel="nofollow">анкор</a>';
} else {
http_response_code(404);
exit();
}
Расположить скрытый элемент на странице сайта
<div id="add"></div>
<script>
function add() {
if (document.readyState == "complete" && window.XMLHttpRequest) { // если документ полностью загружен
var http = new XMLHttpRequest();
http.open("POST", "http://сайт.ru/add.php");
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
document.getElementById("add").innerHTML = http.responseText;
}
}
http.timeout = 60000; // прервать запрос через 1 минуту
http.send("add=1");
window.removeEventListener("scroll", add);
}
}
window.addEventListener("scroll", add); // когда документ прокручивается
</script>
Как проверить
Создать файл add.php
<?php
if (isset ($_POST['add'])) {
echo '<a href="#" rel="nofollow">анкор</a>';
} else {
http_response_code(404);
exit();
}
Расположить скрытый элемент на странице сайта
<div id="add"></div>
<script>
function add() {
if (document.readyState == "complete" && window.XMLHttpRequest) { // если документ полностью загружен
var http = new XMLHttpRequest();
http.open("POST", "http://сайт.ru/add.php");
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
document.getElementById("add").innerHTML = http.responseText;
}
}
http.timeout = 60000; // прервать запрос через 1 минуту
http.send("add=1");
window.removeEventListener("scroll", add);
}
}
window.addEventListener("scroll", add); // когда документ прокручивается
</script>
Как проверить
<?php if (isset ($_POST['add'])) { echo '<a href="#" rel="nofollow">анкор</a>'; } else { http_response_code(404); exit(); }
Расположить скрытый элемент на странице сайта
<div id="add"></div>
<script>
function add() {
if (document.readyState == "complete" && window.XMLHttpRequest) { // если документ полностью загружен
var http = new XMLHttpRequest();
http.open("POST", "http://сайт.ru/add.php");
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
document.getElementById("add").innerHTML = http.responseText;
}
}
http.timeout = 60000; // прервать запрос через 1 минуту
http.send("add=1");
window.removeEventListener("scroll", add);
}
}
window.addEventListener("scroll", add); // когда документ прокручивается
</script>
Как проверить
<div id="add"></div> <script> function add() { if (document.readyState == "complete" && window.XMLHttpRequest) { // если документ полностью загружен var http = new XMLHttpRequest(); http.open("POST", "http://сайт.ru/add.php"); http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); http.onreadystatechange = function() { if (http.readyState == 4 && http.status == 200) { document.getElementById("add").innerHTML = http.responseText; } } http.timeout = 60000; // прервать запрос через 1 минуту http.send("add=1"); window.removeEventListener("scroll", add); } } window.addEventListener("scroll", add); // когда документ прокручивается </script>
Как проверить
Запрос в Google
"анкор" site:http://сайт.ru/страница.html
Редирект
Последовательность действий:
- со страницы А ссылка установлена на другую внутреннюю страницу сайта Б,
- страница Б закрыта от индексации и на ней настроен редирект, который перемещает на конечный адрес.
С точки зрения удержания веса способ бесполезный:
- страница Б его не передаёт следующей внутренней странице,
- 301, 302, 307 редиректы передают PR странице, на которую они ведут [twitter.com].
Имеет место быть для скрытия данных, например, Яндекс шифрует текст запроса в поле referer
[yandex.ru].