Google: почему rel=canonical может игнорироваться на сайтах, использующих JS
Сотрудник Google Джон Мюллер
Автор вопроса
«У меня проблемы с каноническими URL на сайте, и я считаю, что это связано с Angular JS, используемым в HTML. Для тысяч страниц на сайте Google игнорирует каноническую ссылку и выбирает собственный вариант. Проблема в том, что страница, которую Google выбирает, неправильная».
Мюллер ответил так:
«В случае канонических ссылок первый вопрос со стороны Google будет таким: “Эти URL для одинакового контента?”. Если контент разный, то почему Google должен думать иначе».
При наличии проблем ответ обычно попадает в одну из двух категорий:
- Эти URL возвращают преимущественно одинаковый контент;
- URL-структура настолько запутана, что Google не может эффективно проверить их все и должен угадывать.
Далее Мюллер коснулся непосредственно JavaScript:
«В случае JS-сайтов причина обычно находится на стороне контента. Например, если вы используете настройку типа SPA, где статический HTML преимущественно одинаковый, а чтобы увидеть уникальный контент, должен быть запущен JavaScript, то если этот JS не может быть выполнен должным образом, то контент в конечном итоге будет выглядеть одинаковым».
Есть несколько причин, почему JavaScript может не выполняться так, как следует. В их числе:
- «Капризный» код;
- Иногда ресурсы (JS-файлы) или ответы сервера (запросы API и т.п.) могут блокироваться robots.txt;
- Иногда JS просто требует слишком много времени для обработки.
Если код работает для Googlebot, что можно определить с помощью инструмента проверки оптимизации для мобильных устройств, тогда стоит оценить, не вызвана ли проблема скоростью обработки.
Но есть один нюанс – это отсутствие чёткого ориентира или жёсткой границы для проверки. Кроме того, страница редко загружается одинаково в ходе отдельных проверок.
Исходя из этого, Мюллер дал следующий совет:
«Мой способ – это посмотреть, сколько времени занимает проверка в инструменте оптимизации для мобильных устройств, а затем использовать webpagetest.org, чтобы узнать, сколько времени может занять загрузка критически важного/ уникального контента и как много ресурсов для этого требуется. Чем больше требуется ресурсов, тем больше времени уйдёт на загрузку критического контента и тем выше вероятность, что у Google возникнут проблемы с его индексацией».
В итоге Мюллер предположил, что Google может воспринимать обе страницы, приведённые автором вопроса, как имеющие одинаковый контент. Из этого следует, что поисковик не видит уникальный контент на каждой странице. Это может происходить потому, что загрузка уникального контента может требовать слишком большого количества запросов. Или же ответы возвращаются слишком долго. В результате Googlebot фокусируется на HTML, а не контенте, загружаемом с помощью JavaScript.
Решить эту проблему можно путём уменьшения зависимостей и задержки, отметил Мюллер.
Напомним, с лучшими SEO-практиками по каноникализации URL можно ознакомиться в статье.