Для обычной задачи «не учитывать эту ссылку как стандартную SEO-ссылку» сейчас следует использовать rel="nofollow", а AJAX или JavaScript специально для сокрытия ссылки от поисковиков использовать не стоит.
Главное — разделить три разные задачи: закрыть саму ссылку, запретить обход целевого URL и запретить индексацию целевой страницы. Для них используются разные механизмы.
Как закрыть отдельную ссылку
Базовый вариант:
Google рассматривает nofollow не как абсолютный запрет, а как сигнал. Обычно такая ссылка не используется как обычная рекомендация другой страницы, но поисковик оставляет за собой возможность учитывать полученную информацию.
Яндекс также поддерживает rel="nofollow". В документации Яндекса значения rel прямо описываются как рекомендация роботу игнорировать ссылку.
Поэтому nofollow — правильный технический способ пометить ссылку, но не абсолютная гарантия того, что поисковик никогда не увидит URL.
Для отдельных типов ссылок есть более точные значения:
для рекламы, платных размещений и партнерских ссылок;
для форумов, комментариев и другого пользовательского контента.
При необходимости значения можно сочетать:
Если нужно закрыть все ссылки на странице
Можно использовать:
Это относится ко всем ссылкам страницы, поэтому для одной конкретной ссылки такой способ обычно не нужен.
nofollow на уровне страницы также не означает, что поисковик никогда не обнаружит целевые URL. Они могут быть найдены через другие страницы, Sitemap или внешние сайты.
AJAX и JavaScript не являются надежным способом закрытия ссылок
Старая схема «выведем ссылку через JavaScript, и робот ее не увидит» сейчас ненадежна.
Google умеет рендерить JavaScript. Более того, Google прямо указывает, что ссылка, динамически добавленная JavaScript, остается доступной для обхода, если после выполнения скрипта получается нормальный HTML:
То есть конструкция вида:
container.innerHTML = 'Ссылка';не закрывает ссылку от Google.
Яндекс также исполняет JavaScript при обработке страниц и отдельно поддерживает рендеринг JavaScript и AJAX-сайтов.
AJAX здесь вообще ничего принципиально не меняет. Если после загрузки данных появляется обычный , рассчитывать на то, что поисковый робот его не обнаружит, нельзя.
А если вообще убрать href?
Например:
Перейти
или:
Для поисковых роботов это уже не нормальная HTML-ссылка.
Google прямо указывает, что надежно обходит прежде всего элементы с корректным href. URL из onclick, routerLink и подобных конструкций он может не извлечь, хотя в некоторых случаях все равно пытается их распознавать.
Поэтому такой способ действительно может снизить вероятность обнаружения перехода именно как ссылки, но использовать его как гарантированный SEO-механизм нельзя.
URL может быть найден:
- в JavaScript-коде;
- после рендеринга страницы;
- на другой странице сайта;
- во внешней ссылке;
- в Sitemap;
- через другие источники поискового робота.
Кроме того, превращение обычных ссылок в JavaScript-обработчики ухудшает семантику HTML, доступность сайта и работу некоторых браузерных функций.
Обфускация URL, Base64, AJAX-запросы и другие усложнения дают ту же проблему: это попытка спрятать ссылку от конкретного способа парсинга, а не официальный механизм управления поисковым роботом.
Если нужно закрыть не ссылку, а страницу
Тогда nofollow вообще не решает задачу.
Если страница не должна попадать в поиск, используется:
или HTTP-заголовок:
X-Robots-Tag: noindex
При этом поисковый робот должен иметь возможность открыть страницу и увидеть noindex.
Закрывать такую страницу одновременно через robots.txt и noindex обычно неправильно: если робот не может загрузить URL из-за robots.txt, он может не увидеть noindex.
Если нужно именно запретить обход URL внутри собственного сайта, можно использовать Disallow в robots.txt:
User-agent: * Disallow: /private-page/
Но robots.txt управляет обходом, а не является гарантией отсутствия URL в индексе.
Для действительно закрытых данных нужен уже не SEO-механизм, а серверное ограничение доступа: авторизация, 401/403 и другие соответствующие ограничения.
Что выбирать
Если задача — поставить внешнюю ссылку, но не передавать ей обычный ссылочный сигнал, используйте rel="nofollow". Для рекламы лучше rel="sponsored", для пользовательских ссылок — rel="ugc".
Если задача — убрать страницу из поиска, ставьте noindex на самой странице.
Если задача — запретить роботу загружать определенный внутренний URL, используйте robots.txt, понимая отличие обхода от индексации.
Если задача — сделать ссылку видимой пользователям, но полностью невидимой поисковикам, надежного универсального механизма для этого нет. Реализация перехода только через JavaScript без href может уменьшить обнаруживаемость ссылки, но это уже обход стандартного механизма ссылок, а не гарантированный запрет.
Поэтому закрывать ссылки одновременно через AJAX и JavaScript смысла обычно нет. Для нормальной SEO-задачи используется rel, а JS-сокрытие имеет смысл только тогда, когда требуется именно нестандартная логика интерфейса, а не управление передачей ссылочных сигналов.
Отдельно не стоит использовать внутренний nofollow как точный инструмент перераспределения ссылочного веса. У Google nofollow является сигналом, а не жесткой директивой, поэтому рассчитывать с его помощью предсказуемую схему «здесь вес перекрыли и отправили на другие ссылки» нельзя.