Технический SEO — Примеры
Пример 1 — Директива noindex, уехавшая в продакшен
Пока сайт строился, шаблон добавил директиву robots, а также каноническую ссылку, которая направляет каждую страницу на главную. Сайт работает, а поисковый трафик не приходит. Разберите каждый тег, затем исправьте оба.
<head>
<meta name="robots" content="noindex" />
<link rel="canonical" href="/" />
</head>
Решение
<head>
<meta name="robots" content="index, follow" />
<link rel="canonical" href="<единственный адрес этой статьи>" />
</head>
Директива — ступень индексации: noindex убирает страницу из поиска, не порождая ошибки нигде, — вот почему он так часто переживает до продакшена. Сделайте директиву зависящей от окружения и проверяйте живой сайт после каждого развёртывания, а не доверяйте сборке. Каноническая ссылка страдает противоположным дефектом: когда каждая страница указывает на главную, робот считает, что все они — её дубликаты, и потому отдельные страницы отбрасываются, а не индексируются. Если у страницы несколько адресов — варианты хоста, косая черта на конце, параметры отслеживания, — варианты стоит перенаправлять, где это возможно, а где нет, канонизировать на собственный предпочтительный адрес.
Пример 2 — Содержимое, существующее только после запуска скрипта
Список товаров запрашивается и отрисовывается на клиенте, а товар, которого нет, возвращает тот же успешный статус, что и реальная страница. Список попадает в индекс поздно и непоследовательно, а мёртвые URL остаются в индексе. Объясните, какие две ступени провалены, затем исправьте обе.
<ul id="products"></ul>
<script>
fetch("/api/products").then((r) => r.json()).then(render);
</script>
Решение
<ul id="products">
<li><a href="/products/desk-lamp">Настольная лампа</a></li>
<li><a href="/products/oak-stool">Дубовый табурет</a></li>
</ul>
<!-- отсутствующий товар теперь возвращает статус «не найдено», а не успех -->
Робот умеет отрисовывать скрипты, однако отрисовка — второй проход со своим бюджетом. Поэтому содержимое, которое появляется только после запроса, может индексироваться поздно, частично или вовсе нет; отрисовка на сервере текста, который должен индексироваться, убирает зависимость от этого прохода. Второй дефект — мягкий 404: возврат успешного статуса для отсутствующей страницы оставляет мёртвый URL в индексе на неопределённый срок, тогда как настоящий статус «не найдено» убирает его. Запросите страницу с отключёнными скриптами и прочитайте, что действительно отдаётся, — именно это состояние робот видит первым.