А также о возможном решении
На конференции Google I/O, которая состоялась на прошлой неделе, сотрудники поиска рассказали о проблемах, связанных со сканированием и индексированием JavaScript.
Согласно Google, поисковый робот обрабатывает страницы, на которых активно используется JavaScript, в два этапа: первичное сканирование, а затем, несколько дней спустя, полный рендеринг. Однако с этим двухэтапным подходом связаны определённые проблемы, которые могут привести к тому, что в некоторых случаях Google может пропустить критически важные данные.
В частности, на втором этапе индексирования Googlebot не проверяет такие вещи, как атрибуты rel=canonical и метатеги. В результате, если они не были обработаны на первом этапе индексирования, в итоге они могут полностью отсутствовать и негативно влиять на индексацию и ранжирование.
Например, если сайт является PWA, созданным на основе модели одностраничного приложения, то есть вероятность, что все URL имеют некий базовый шаблон ресурсов, которые затем заполняются контентом через AJAX или Fetch-запросы. В данном случае, если сайт полагается на рендеринг на стороне клиента, при первичной обработке канонические теги выявлены не будут. А поскольку во время второго этапа индексирования Googlebot не проверяет канонические теги вообще, то в итоге они будут полностью отсутствовать.
Кроме того, если пользователь запрашивает URL, который не существует, а JS-сайт пытается вернуть страницу с ошибкой 404, то это также будет пропущено.
Сотрудник поиска Джон Мюллер подтвердил эту информацию в Twitter:
https://twitter.com/JohnMu/status/994713207913639939
Во время совместной сессии с Томом Гринуэем он также подчеркнул, что на самом деле это не второстепенные, а важные проблемы.
«Важно отметить, что это не мелкие, а реальные проблемы, которые могут повлиять на индексируемость сайта. Метаданные, канонические теги, HTTP-коды, которые я упомянул в начале этой беседы – всё это реально важно для того, как поисковые краулеры понимают контент на ваших страницах».
Мюллер также рассказал, что у сайта Google I/O также были эти проблемы, которые привели к тому, что Google пришлось поменять подход к рендерингу этой страницы, чтобы она корректно сканировалась и индексировалась.
Позже Джон Мюллер отметил, что во избежание такого рода проблем сайты могут использовать динамический рендеринг, при котором они показывают полную версию Googlebot и другим краулерам, а обычную, JavaScript-версию, пользователям.
«У нас есть ещё один вариант, который мы хотели бы представить – это динамический рендеринг. По сути, динамический рендеринг – это принцип отправки обычного контента, с рендерингом на стороне клиента, пользователям и полной версии, с рендерингом на стороне сервера, поисковым системам и другим краулерам».
На вопрос, может ли такой подход расцениваться как клоакинг, Мюллер заявил, что нет, поскольку и пользователи, и Googlebot будут видеть один и тот же контент, но он будет по-разному предоставляться, чтобы Googlebot мог корректно его индексировать на первом этапе.