Технический SEO

Что это такое

Технический SEO — набор условий, без которых страницу вообще не обойдут, не проиндексируют и не покажут ищущему. Робот должен суметь до неё добраться, получить разрешение её оставить, найти у неё ровно один адрес — и прочитать содержимое, не запуская скрипт.

Почему это важно

Странице, которую индекс никогда не видел, качество содержимого не помогает. Отказывают такие страницы тихо: оставленный со стенда noindex, канонический тег, который указывает на чужой хост, страница-список, содержимое которой отрисовывается только после клиентского запроса, две URL с одной статьёй. Каждый из этих случаев убирает страницу из поиска, и нигде не появляется ошибка. Однако робот читает разметку, поэтому такая работа почти целиком совпадает с написанием корректного HTML и ускорением страниц, — вот почему она относится к фронтенду, а не к отдельной специальности.

Ключевые идеи

Сначала обход, потом индексация, потом ранжирование

Ступеней три, и они отдельные: обходом управляет robots.txt, индексацией — директива noindex, а ранжирование включается только после обеих. Страница бывает обойдена, но исключена из индекса; бывает индексируема, но так и не найдена. Если страница пропала, проверяйте ступени по порядку, а не предполагайте сразу проблему с ранжированием.

<meta name="robots" content="noindex" />
<link rel="canonical" href="<единственный канонический адрес этой статьи>" />

Один канонический адрес на документ

Одна и та же страница бывает доступна по нескольким URL: с косой чертой на конце и без, с параметрами отслеживания, на обоих вариантах хоста, — и тогда свои сигналы она делит между дубликатами. Где можете, перенаправляйте варианты; где не можете — объявите предпочтительный адрес канонической ссылкой.

Содержимое должно присутствовать в HTML

Отрисовывать скрипты робот умеет, но отрисовка — это второй проход с ограниченным бюджетом. Содержимое, существующее только после запроса, может попасть в индекс поздно, непоследовательно или вовсе не попасть. Надёжный ответ — отрисовать на сервере тот текст, который важен. То, что действительно доступно только вошедшему пользователю, и так не индексируется.

При переносе URL делайте перенаправление, а не 404, и берите правильный статус

Постоянный перенос должен отдавать постоянное перенаправление, чтобы за ним последовали сигналы; временный — временное. Если на отсутствующую страницу отвечать 200, получается мягкий 404, и мёртвая страница надолго застревает в индексе. Удаление содержимого должно возвращать настоящий код состояния.

Расскажите роботу, что существует

Карта сайта перечисляет канонические адреса и быстрее всего приводит к обнаружению нового набора страниц. Она же и самопроверка: если страницы есть на сайте, но отсутствуют в карте, или наоборот, обычно это указывает на ошибку в маршрутизации или канонизации.

Проверяйте так, как это сделал бы робот

Запросите страницу с отключёнными скриптами и прочитайте, что там есть, а затем проверьте по отдельности код состояния, канонический адрес, директиву robots и отрисованное содержимое: страница, которая правильно выглядит в браузере, может провалить любую из этих проверок.

Практика

Проверьте одну страницу по трём ступеням

Возьмите живую страницу и зафиксируйте её код состояния, блокирует ли её robots.txt, есть ли на ней директива noindex, куда указывает канонический адрес, и присутствует ли основное содержимое без JavaScript.

Готово, когда: вы можете сказать по каждой ступени, проходит ли её страница, и нашли хотя бы одну вещь, которую стоит исправить.

Сделайте страницу, отрисовываемую JavaScript, индексируемой

Найдите страницу, содержимое которой запрашивается после загрузки, и отрисуйте на сервере ту часть, которая должна индексироваться; вместо этого можно добавить статический запасной вариант.

Готово, когда: основное содержимое видно с отключёнными скриптами, а карта сайта по-прежнему перечисляет тот же канонический URL.

Частые ошибки

  • Оставленный noindex со стенда в продакшене — весь сайт исчезает из поиска, и нигде не сообщается об ошибке; исправить: сделайте директиву зависящей от окружения и проверяйте продакшен после каждого развёртывания.
  • Канонизация всех страниц на главную — отдельные страницы отбрасываются как дубликаты; исправить: каждая страница канонизирует саму себя.
  • Ответ 200 для отсутствующей страницы — мягкий 404 держит мёртвые URL в индексе; исправить: возвращайте правильный код состояния.
  • Отрисовка всего содержимого скриптом — проход отрисовки роботом может быть отложен или неполон; исправить: отрисуйте на сервере содержимое, которое должно индексироваться.
  • Игнорирование карты сайта после запуска — новые страницы обнаруживаются гораздо дольше; исправить: генерируйте карту сайта из маршрутов и отправляйте её.

Что читать дальше

  • Язык гипертекстовой разметки (HTML) (02-frontend/03-html) — семантика, которую читает робот, ровно так же, как браузер и скринридер.
  • Контент и структурированные данные (02-frontend/08-seo/02-content-and-structured-data) — что положить на страницу, когда её уже можно найти.
  • Инструменты разработчика в браузере (02-frontend/27-browser-devtools) — отключить скрипты и прочитать отданный ответ — самая быстрая доступная имитация обхода.