Технический 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) — отключить скрипты и прочитать отданный ответ — самая быстрая доступная имитация обхода.