Почему Google “не видит” контент вашего сайта и как это исправить?

Статья в первую очередь написана под зарубежный и русскоязычный Google, но в некоторой степени подходит и для Яндекса.

Цель данной статьи:
1. Рассказать о причинах недоступности контента для Google.
2. Разобраться как определить какой контент недоступен для Google.
3. Определить корректно ли рендерится контент страниц вашего сайта.

Это особенно важно при продвижении сайтов вида Single Page Application (SPA), Progressive Web Application (PWA) на современных фреймворках использующих JS: React, Angular, Vue и других. Не менее важно для сайтов, подгружающих контент при помощи скриптов.

SEO специалист, продвигаю сайты с 2009 года, работаю с западными рынками с 2019 года. Пишу статьи. Развиваю канал о зарубежном SEO https://t.me/goburzhseo
Работал в Кокос, Rush Agency и других топовых агентствах. В SEO с 2005 года, основная специализация - крупные и высоконагруженные сайты, техническое SEO.

Google “видит” контент страниц иначе нежели мы

Видимый нами контент на странице сайта и контент, которые получают поисковые системы, может не совпадать. Различия начинаются от отсутствия некоторых блоков до получения Google’ом страницы без контента.

Например, в браузере вы серфите сайт с тысячами страниц, а Googlebot при обходе этого сайта получает только пустую главную страницу и несколько страниц вроде “О компании” и “Контакты”. Будет ли такой сайт успешно продвигаться в поиске?

Для того, чтобы разобраться как и почему это происходит сначала вспомним как сайты попадают в Google Поиск.

Как упрощенно работает Google Поиск

Максимально упрощенно работу Google по добавлению страниц сайта в поисковую выдачу можно свести к шести функциям:

  1. Обнаружение страниц с контентом, доступных для обхода.
  2. Скачивание.
  3. Обработка HTML кода / Рендеринг JS -> Обработка отрисованного HTML.
  4. Индексация.
  5. Ранжирование.
  6. Показ поисковой выдаче.

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

Сканирование, обработка, отрисовка и индексирование страниц в Google
Сканирование, обработка, отрисовка и индексирование страниц в Google

На первых трех этапах как раз возможны проблемы из-за которых Google может “не увидеть” контент вашего сайта частично или полностью. Рассмотрим наиболее частые причины.

Почему контент, да и страницы целиком могут быть недоступны для Google?

Контент странице может быть недоступен для Google по разным причинам, в том числе он может быть неверно интерпретирован:

  1. Сайт является SPA, PWA или подобным.
  2. Использование JS для подгрузки части контента страницы.
  3. Часть контента отображается при помощи CSS.
  4. Нарушение правил HTML разметки.
  5. Запрет обхода JS файлов в robots.txt.
  6. Запрет обхода HTML страниц в robots.txt.
  7. Запрет индексации контента в meta robots или X-robots-tag.
  8. Проблемы с DNS и доступностью сервера, на котором расположен сайт.

Неоптимизированные сайты на современных фреймворках и отдача контента через JS - самая частая проблема. Также вебмастера и SEO специалисты иногда случайно закрывают CSS и скрипты в robots.txt, в результате Google не может полноценно построить макет страницы.

Нарушение правил HTML разметки обычно не ведет к критическим проблемам, если только это не нарушение разметки ссылок. Проблемы с DNS и сервером лежат за пределами ответственности SEO специалистов, но о них обязательно нужно сигнализировать админам, если они обнаруживаются.

Что такое SPA, PWA сайты и в каких случаях контент может подгружаться через JS?

Single Page Application (SPA) - одностраничные сайты, состоящие из одной HTML страницы. При этом смена контента на странице происходит за счет его подгрузки через JS скрипт, страница при этом полностью не перезагружается, т.е. на сервер не отправляется новый HTTP запрос.

Progressive Web Application (PWA) - сайты, созданные по технологии, которая позволяет как просматривать их через браузер, так и использовать в качестве мобильного приложения, например, для iOS или Android.

Сайты могут использовать JS для подгрузки важного для SEO контента. Вот частые примеры такой подгрузки:

  • Бесконечный скролл товаров.
  • Блоки спецпредложений.
  • Текстовые блоки в карточке товара.
  • Отзывы и комментарии.
  • Блоки похожих товаров или статей.
  • Меню сайта.

Да в общем-то любой контент может подгружаться при помощи JS, а также могут осуществляться редиректы, подмена url в строке браузера и многое другое.

Почему сайты на современных фреймворках и подгрузка контента через JS - плохо для SEO?

Правильные SPA и PWA - быстры и удобны для пользователя. Подгрузка контента при помощи JS также эффективно решает ряд задач. Тем не менее у SEO проблемы возникают из-за того, что JS код выполняется после получения HTML-кода документа.

Осуществляемые JS изменения в DOM могут быть просто недоступны для поискового бота и в скаченной версии страницы не будет хватать каких-то важных для SEO элементов.

Как быстро определить, что контент подгружается при помощи JS?

Вы можете поставить в Google Chrome расширение Quick Javascript Switcher, отключить скрипты и перезагрузить страницу. Например, на aviasales.ru блоки со спецпредложениями подгружаются через скрипты и отсутствуют в статическом html.

Вот так выглядит блок в браузере по умолчанию
Вот так выглядит блок в браузере по умолчанию
Так выглядит этот же блок с отключенными скриптами<br />
Так выглядит этот же блок с отключенными скриптами
А вот код, получаемый от сервера - текста заголовка блока в нем нет
А вот код, получаемый от сервера - текста заголовка блока в нем нет

Но ведь Google может индексировать сайты на JavaScript!?

По официальным данным Google (и Яндекс) уже давно индексируют контент, отдающийся при помощи JavaScript. Однако на практике это не решает многие SEO проблемы и часто блокирует рост органического трафика.

Поэтому в любом случае рекомендуется следовать утверждению: “Поисковые системы не умеют корректно рендерить и индексировать сайты на скриптах”.

Да, и не соглашайтесь на уговоры разработчиков якобы времена, когда JS создавал проблемы для SEO, уже давно прошли 🙂.

Проблемы рендеринга и индексации SPA / PWA и подобных сайтов в Google

Впрочем, наверняка пытливому SEO специалисту будет недостаточно совета выше. Тогда привожу перечень проблем индексации и рендеринга подобных сайтов на стороне Google, которые встречаются в SEO:

  1. Не индексируются вообще. Но это касается только совершенно не SEO-friendly SPA.
  2. Медленная индексация страниц. Обилие JS существенно замедляет индексацию страниц, т.к. алгоритмам Google требуется не просто обработать HTML код, но и осуществить ресурсоемкий рендеринг JS. В результате скорость индексации таких сайтов в десятки и сотни раз менее, чем у тех, кто отдает контент в статическом HTML.
  3. Если страницы слишком “тяжелые” и код долго грузится при первом заходе на сайт, то Google не сможет скачать все необходимые скрипты и файлы. В результате будет отрендерена только часть страницы.
  4. Проблема с полнотой индексации сайта. Загнать и удержать в индексе даже 10-20% от всей массы страниц - уже хорошо, а вот достичь индексации в 70-80% скорее всего уже будет невозможным.
  5. Дубли контента и Soft 404 ошибки. Из-за сбоев сервера, проблем с отдачей контента, часть блоков на страницах в различное время могут не рендерится на стороне Google. В итоге при пиковой нагрузке Google легко может получить несколько тысяч пустых или одинаковых страниц.
  6. Рост страниц со статусом “Страница просканирована, но не проиндексирована” как раз по причине 4. Такие страницы надолго помечаются Google как условно “малополезные” и загнать их в основной индекс потом будет крайне сложно.
  7. Проблема с отдачей 404 кода по несуществующим url и 301 кода в случае редиректа. Страница может визуально сообщать о 404 ошибке или редиректить на другую при помощи JS, но Гугл боту будет отдаваться первоначальный url с кодом ответа 200.
  8. Сложность с отслеживанием ошибок рендеринга на стороне Google. Ведь визуально на сайте все может быть в порядке, а Google будет получать страницы без части контента.

Как определить, корректно ли рендерится сайт на JS в Google?

Быстрый способ: набрать в строке Chrome перед “url” оператор “cache:” и выбрать текстовую версию. В данный момент способ работает, но со временем Google может убрать сохраненную копию страницы из доступа, кроме того, не у всех страниц есть такая копия.

Почему Google “не видит” контент вашего сайта и как это исправить?

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

Полный способ: используем Google Search Console, указываем url и нажимаем “Test Live url”, либо используем https://search.google.com/test/rich-results. Кстати, второй вариант даже лучше, т.к. вы можете изучить отрендеренную Google страницу и для мобильных устройств и для десктопов.

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

Итак, изучаем полученные результаты:

1. Сначала смотрим нет ли предупреждений и ошибок на самой странице анализатора. В нашем случае их нет.

Почему Google “не видит” контент вашего сайта и как это исправить?

2. Далее нажимаем на превью и смотрим не заблокированы ли случайно важные для рендеринга данной страницы ресурсы в robots.txt (скрипты, картинки и css). “Other error” игнорируем. В нашем примере все ОК.

Почему Google “не видит” контент вашего сайта и как это исправить?

3. Смотрим скриншот рендера страницы сайта. Иногда он бывает корявым, но не из-за проблем с рендерингом, а из-за того, что сервис не загрузил в реальном времени какие-то ресурсы - это нормально. На что надо обратить внимание, так это на нарушение mobile-friendly и на отсутствие важных для SEO блоков.

Почему Google “не видит” контент вашего сайта и как это исправить?

4. Копируем HTML код, вставляем его в текстовый редактор (так удобнее), например, Notepad++ или AkelPad

Что смотрим в отрендеренном HTML коде?

Здесь проверяем корректность, а также наличие SEO контента в:

  • Мета-теги и title
  • Canonical
  • Meta robots
  • Hreflang
  • Меню и футер сайта с гиперссылками
  • Прочие блоки навигации, в том числе пагинация, хлебные крошки и переключатель языков
  • Заголовки H1-H3
  • Наличие текста в полном объеме
  • В карточке товара: характеристики, описание, цена, наличие товара и теги картинок
  • В каталоге: витрина с товаром с названиями, ценой и тегами картинок

Все блоки на месте и их контент соответствует тому, что отображается на странице сайта? Отлично, поздравляю, ваша страница корректно отдается Googlebot!

Если же нет, то создайте задачу укажите, что “необходимо наличие блока N и M в статичном html-коде” и не забудьте указать как проверять корректность рендеринга.

Если в коде нет ни одного важного для SEO элемента, то будет нужно уже ТЗ на Server Side Rendering - технология, которая позволяет JS-сайтам отдавать поисковым ботам статичные страницы.

Пути решения проблемы с индексацией сайтов на современных фреймворках в Google

Несмотря на множество проблем и рисков для SEO даже SPA и PWA сайты можно продвигать. Об адаптации к Google JS сайтов написан целый раздел помощи. Однако , если у вас на сайте более 50-100 страниц, то намного надежнее настроить SSR и его варианты или хотя бы использовать пререндер. Если же у вас тысячи и десятки тысяч страниц, то без этих решений эффективное SEO просто невозможно.

Подробнее про рендеринг контента, виды SSR и пререндер в данной статье к сожалению раскрыть не получится. Здесь нужна отдельная статья и если вам она нужна, то напишите пожалуйста об этом в комментариях.

Чек-лист для того, чтобы контент и страницы сайта были доступны для Google

1. В статичном HTML коде, который отдается поисковым системам, должны быть следующие элементы:

  • Навигация по сайту (меню, футер), блоки перелинковки, хлебные крошки, пагинация, переключатель языков.
  • Заголовок страницы H1, основной текст страницы, FAQ.
  • Текстовые блоки.
  • Название товара, цена, описание и характеристики.
  • Витрина с товарами.
  • Желательно и комментарии с отзывами к товарам или услугам.

2. Бесконечный скролл (товаров или статей) обязательно дублируем полноценной пагинацией.

3. Lazy loading картинок, если он используется, должен быть настроен для второго и последующих экранов. Не настраивайте его для первого экрана, от этого ухудшается пользовательский опыт и CWV.

4. Гиперссылки должны быть оформлены как <a href="https://example.com">, другие варианты недопустимы (в ряде случаев Google все равно найдет ссылку, но не стоит полагаться на случай):

  • <a routerLink="products/category"> - не используем
  • <span href="https://example.com"> - не используем
  • <a onclick="goto('https://example.com')"> - не используем

5. Важные для страницы картинки (картинки в статье или фото товара) размещаем в теге и указывает соответствующим им alt.

6. Принудительно открываем в robots.txt скрипты и css.

Allow: /*.css
Allow: /*.js

Дополнительно можно еще и принудительно открыть весь сайт для бота сборщика картинок:

User-agent: Googlebot-Image
Disallow:

7. Следим за корректностью meta robots и x-robots-tag на полезных страницах. Их либо не должно быть, либо значение используем “index, follow”.

  • Структурные элементы <header>, <nav>, <article>, <section>, <footer>, <main>
  • Заголовки контента оформляем в теги <H1>…<H3>. Меню и прочие элементы можно оформить при помощи CSS, но не с использованием <H1>…<H3>.

9. Мониторим проблемы с доступностью сервера при помощи трекера позиций, панелей вебмастеров, а также Uptimebot.

10. Для сайтов на JS фреймворках, у которых настроен SSR, и сайтов, у которых часть полезного контента отдается на JS, каждый месяц проверяем корректность рендеринга всех важных блоков страницы и наличие в них оптимизированного контента.

Заключение

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

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

1212
3 комментария

Кстати, вот тут неточность "6. Принудительно открываем в robots.txt скрипты и css.

Allow: /*.css
Allow: /*.js
"
Надо указывать максимально длинный путь, чтобы снизить вероятность случайно закрыть эти файлы, например:
Allow: /bitrix/templates/*.js

1
Ответить

В кои то веки реально экспертный контент на ВС. Спасибо!

1
Ответить

Спасибо, буду продолжать в том же духе

Ответить