Технический 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 в индексе на неопределённый срок, тогда как настоящий статус «не найдено» убирает его. Запросите страницу с отключёнными скриптами и прочитайте, что действительно отдаётся, — именно это состояние робот видит первым.