Устранение неполадок кода JavaScript, связанных с поиском

Из этого руководства вы узнаете, как найти и устранить проблемы кода JavaScript, из-за которых ваша страница или отдельные материалы на ней могут не показываться в результатах поиска Google. Робот Googlebot способен выполнять код JavaScript, но с оговорками. При создании страниц и приложений вам нужно учитывать особенности обработки контента с таким кодом поисковыми роботами.

Googlebot работает таким образом, чтобы его основная деятельность – сканирование страниц – не мешала посетителям сайта. Googlebot и сервис обработки веб-страниц (Web Rendering Service, WRS), который является компонентом этого робота, постоянно анализируют и обнаруживают ресурсы, не относящиеся к основному контенту веб-страниц, и по возможности игнорируют их. Например, отчеты, сообщения об ошибках и другие подобные запросы не требуются для извлечения основного контента и не используются нашими инструментами.

Если вам кажется, что из-за каких-либо проблем кода JavaScript ваша страница или отдельные материалы на ней могут не показываться в результатах поиска Google, выполните описанные ниже действия.

  1. Чтобы выяснить, как Google сканирует и обрабатывает тот или иной URL, используйте проверку оптимизации для мобильных устройств или инструмент проверки URL в Search Console. Чтобы подробнее узнать о загруженных ресурсах, данных и исключениях консоли JavaScript, обработанных моделях DOM и т. д., нажмите на ссылку "Дополнительная информация" на карточке со сведениями о странице.

    Вы также можете найти и проверить ошибки кода JavaScript, с которыми сталкиваются пользователи и робот Googlebot на вашем сайте. Это поможет вам определить, какие проблемы влияют на обработку контента.

  2. Предотвратите появление ложных ошибок 404. Это может быть особенно сложно сделать, если у вас одностраничное приложение. Избежать индексирования страниц ошибок позволяют следующие два способа (можно использовать один из них или оба):
    • Переадресация на URL, при переходе по которому от сервера приходит код статуса 404.

      Показать пример

      fetch(`https://api.kitten.club/cats/${id}`)
       .then(res => res.json())
       .then((cat) => {
         if (!cat.exists) {
           // redirect to page that gives a 404
           window.location.href = '/not-found';
         }
       });
    • Добавление метатега robots с директивой noindex или включение этой директивы в существующий метатег robots.

      Показать пример

      fetch(`https://api.kitten.club/cats/${id}`)
       .then(res => res.json())
       .then((cat) => {
         if (!cat.exists) {
           const metaRobots = document.createElement('meta');
           metaRobots.name = 'robots';
           metaRobots.content = 'noindex';
           document.head.appendChild(metaRobots);
         }
       });
  3. Робот Googlebot будет отклонять запросы разрешений пользователей.
  4. Не используйте URL фрагментов, чтобы загружать разные материалы.
  5. Учтите, что обработка контента не зависит от сохраняемости данных.
  6. Чтобы при добавлении роботом Googlebot вашего контента в кеш Google не возникало неполадок, используйте цифровые отпечатки контента.
  7. Убедитесь, что в вашем приложении используется проверка поддержки функций для всех нужных API, и при необходимости добавьте резервный процесс или полифил.
  8. Убедитесь в том, что отрисовка ваших веб-компонентов выполняется корректно. Используйте для этого проверку оптимизации для мобильных или инструмент проверки URL.
  9. Когда вы устраните все проблемы из списка, снова протестируйте свою страницу. Выполните проверку оптимизации для мобильных устройств или используйте инструмент проверки URL в Search Console.

    Если неполадка устранена, появится зеленый флажок и сведения об ошибках исчезнут. Если устранить ошибки не удалось, опубликуйте сообщение на специальном форуме.