8 (912) 825 50 07

Работаем без выходных

Как Googlebot индексирует Javascript

Вы все еще думаете, что Google не может проанализировать JavaScript? Подумайте еще раз. Адам Одетт поделился результатами тестов, проведенных его коллегами из Merkle | RKG для того, чтобы узнать, как будут сканироваться и индексироваться различные функции JavaScript.

Как Googlebot индексирует Javascript

  1. Мы провели серию тестов, которые подтвердили способность Google к индексированию JavaScript. Мы также доказали, что Google способен рендерить всю страницу и читать DOM, таким образом, индексируя динамический контент.
  2. SEO сигналы в DOM (названия страниц, мета-описания, теги, мета теги роботов и т.д.) «уважаются» Google-ботом. Динамический контент, добавляемый в DOM, также сканируется и индексируется. Помимо этого, в некоторых случаях, DOM сигналы могут быть в приоритете, по сравнению с противоречивыми инструкциями исходного кода HTML. Это требует дополнительной доработки, для чего потребуется проведение еще нескольких тестов.

Введение: Обработка Javascript и индексирование DOM в Google

Уже к 2008 году Google успешно сканировал Javascript, но в ограниченном режиме.

Сегодня очевидно, что Google определяет, какие типы JavaScript необходимо сканировать и индексировать, но также достигнуты значительные успехи в рендеринге веб-страниц в целом (особенно за последние 12-18 месяцев).

Наша SEO команда в Merkle хотела лучше понять, какие типы событий JavaScript способен сканировать и индексировать Googlebot. Нам удалось получить весьма полезные результаты, подтверждающие, что Google не  только обрабатывает различные типы событий JavaScript, но также индексирует динамический контент. Каким образом? Google считывает DOM.

Что такое DOM?

Далеко не все сеошники  имеют полное понимание о том, что такое объектная модель документа (Document Object Model), или  DOM.

Объектная модель документа

По сути, DOM – это приложение программного интерфейса (API), которое используется в веб-браузерах для разметки и структурирования данных, таких как HTML и XML. Это интерфейс, позволяющий транслировать структурированные документы.

Кроме того, DOM определяет, насколько эта структура доступна и управляема. Поскольку DOM не привязан к отдельным языкам программирования, он чаще всего используется в веб-приложениях на JavaScript и для работы с динамическим контентом.

Другими словами, DOM – это своеобразный «мост», соединяющий веб-страницы и языки программирования. Как это происходит: анализируются данные HTML, выполняется JavaScript, результат отображается в DOM. Содержание веб-страницы – это не только исходный код, это DOM. Это делает его весьма важным.

Объектная модель документа

Мы были поражены, когда обнаружили способность Google считывать DOM и интерпретировать сигналы и динамический контент (текст страницы, теги заголовков, мета-аннотации (например, rel=canonical), тайтл-теги).

Тесты и их результаты

Мы провели ряд тестов, чтобы изучить, как будут сканироваться и индексироваться различные функции JavaScript при изолированном поведении Googlebot. Элементы управления были созданы таким образом, чтобы URL воспринимался в изоляции. Далее мы подробно рассмотрим некоторые, особенно интересные, результаты тестов. Они разделяются на 5 категорий:

  • Перенаправление JavaScript;
  • Ссылки JavaScript;
  • Динамический контент;
  • Динамические метаданные и элементы страницы;
  • Важный пример с rel=“nofollow”.

Перенаправление JavaScript

Сначала мы проверили общие перенаправления JavaScript, чтобы определить различные варианты отображения URL. Избранный нами метод, это функция window.location . Мы провели два теста. В первом тесте мы применяли эту функцию  к абсолютному URL адресу, а во втором – к относительному URL.

Результат: Google быстро последовал за перенаправлениями. С позиции индексации, они были интерпретированы, как редирект 301: конечное состояние URL заменило перенаправленные URL в индексе Google.

В следующем тесте мы использовали авторитетную страницу и выполнили переадресацию JavaScript на новую страницу сайта с идентичным содержанием. Оригинальный URL появился на первой странице популярных запросов Google.

Результат: Как и ожидалось, Google последовал за перенаправлением и оригинальная страница выпала из индекса. Новый URL-адрес был моментально проиндексирован и занял ту же позицию, по тем же запросам. Это удивило нас и показало, что перенаправление JavaScript с позиции ранжирования ведет себя так же, как и редирект 301.

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

«Использование JavaScript для перенаправления пользователей вполне законная практика. Например, если вы перенаправляете пользователей на внутреннюю страницу, после того, как они вошли в систему, для этого можно использовать JavaScript.

Чтобы выбрать оптимальным метод перенаправления, который будет соответствовать нашим требованиям, нужно учитывать вашу цель. Не стоит забывать, что перенаправление 301 лучше всего для продвижения сайта, но вы можете использовать перенаправление JavaScript, если вы не имеете доступ к серверу сайта.»

Ссылки JavaScript

Мы протестировали несколько разных типов ссылок JavaScript, которые были написаны в разных кодах.

Мы протестировали ссылки из выпадающего меню. Раньше поисковики не могли следовать таким ссылкам последовательно. Наш тест должен был определить, чем будет сопровождаться событие onchange.

Важно! Это специфический тип точки выполнения. Мы делаем запрос взаимодействия, чтобы изменить что-нибудь, это не принудительное действие, как при перенаправлении JavaScript до этого.

Результат: ссылки просканированы и последовательны.

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

  • Функциями вне href Attribute-Value Pair (AVP), но с тегом a;
  • Функциями внутри href AVP (“javascript:window.location“);
  • Функциями вне тега a, но прописанные внутри href AVP (“javascript:openlink()”).

Результат: все ссылки были последовательно просканированы.

Наш следующий тест был нужен для дальнейшего изучения обработчиков событий, на подобии onchange  из предыдущего теста. В частности мы рассматривали идею движения мыши, как обработчика событий, а после – скрытие URL с переменными, которые исполняются только тогда, когда обработчик событий активен (в этом случае: onmousedown  и onmouseout).

Результат: все ссылки были проиндексированы.

Связанные ссылки: мы знали, что Google может обрабатывать JavaScript, но хотели убедиться, что бот считывает изменения в коде. В этом тесте мы связали строку символов, которые создали URL, как только он был построен.

Результат: ссылки были проиндексированы.

Динамический контент

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

Эти тесты разработаны для проверки динамического текста в двух разных ситуациях.

  • Тестирование способности поисковой системы считывать динамический текст, если текст в HTML-коде страницы.
  • Тестирование способности поисковой системы считывать динамический текст, если он вне HTML-кода, во внешнем файле JavaScript.

Результат:  в двух этих случаях текст сканируется и индексируется. Кроме того, страница ранжируется благодаря контенту.

Более того, мы протестировали глобальный навигатор клиента, который написан в JavaScript, где все ссылки размещены с функцией document.writeIn. Мы убедились, что они были проиндексированы поисковиком. Это объясняет, каким образом, сайты, построенные с использованием AngularJS framework и HTML5 API (pushState), могут индексироваться Google и ранжироваться так же, как и статические HTML-страницы. Поэтому очень важно не блокировать Googlebot’у доступ к внешним файлам и активам JavaScript и понятно, почему Google уходит от рекомендаций по поддержке Ajax для SEO. Кому нужны эти HTML снимки, когда вы можете просто рендерить всю страницу?

Наши тесты показывают одинаковые результаты, вне зависимости от типа контента. Например, изображения просканированы и проиндексированы после загрузки в DOM. Мы создали тест, посредством которого был сгенерирован data-vocabulary.org со структурированной разметкой для breadcrumbs и помещен в DOM. Результат? Успешные breadcrumbs и хорошие результаты в поисковой выдаче Google.

К слову, сейчас Google рекомендует разметки JSON-LD

Динамические метаданные и элементы страницы

Мы поместили в DOM разные тэги, которые важны для SEO:

  • Элементы тайтла;
  • Мета описания;
  • Мета роботы;
  • Канонические тэги.

Результат: во всех случаях тэги сканируются отлично, так же, как HTML элементы в исходном коде.

Еще один интересный тест поможет нам определить, какой сигнал важнее. Если есть противоречивые сигналы, какой из них победит? Что случится, если присутствует noindex,nofollow  в исходном коде и noindex,follow  в DOM? Это будет частью нашего будущего тестирования. Тем не менее, наши тесты показали, что Google может игнорировать тэг в исходном коде, отдавая предпочтение тэгу в DOM.

Важный пример с rel=”nofollow”

Один из примеров оказался очень познавательным. Мы хотели проверить реакцию Google на атрибуты nofollow, размещенные в исходном коде и в DOM. Мы также создали управление без nofollow.

Важный пример с rel=”nofollow”

Атрибут nofollow в исходнике работал, как ожидалось (бот за ссылкой не последовал). Но в DOM это не сработало (бот последовал за ссылкой и страница была проиндексирована). Но почему? Потому что модификация элемента a href  в DOM сработала слишком поздно. Google уже просканировал ссылку и структурировал данные URL до того, как их выполнила функция JavaScript, которая добавляет тэг rel=“nofollow” .

Тем не менее, если весь элемент a href  с атрибутом nofollow помещен в DOM, то nofollow будет виден одновременно, как ссылка, поэтому будет считываться.

Выводы

Раньше рекомендации по SEO были сосредоточены вокруг использования контента с «простым текстом», когда это возможно. Динамический контент, AJAX и ссылки JavaScript были вредны для оптимизации в большинстве поисковиков. Очевидно, это больше не проблема для Google. Ссылки Javascript работают так же, как простые ссылки HTML. Стоит признать, что мы точно не знаем, как построены алгоритмы.

  • Перенаправления Javascript работают так же, как и перенаправления 301.
  • Динамический контент и мета-сигналы ведут себя аналогично, как в исходном коде HTML, или включаются после того, как исходник HTML проиндексирован с JavaScript в DOM.
  • Google полноценно рендерит страницу, видит DOM, а не только исходный код.

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

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

Оригинал статьи: http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157

Дата публикации: 11.05.2015 // 1 324 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Оставьте заявку и мы с вами свяжемся

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

Работа на результат – наш конёк. Ваш бизнес приобретёт конкурентные преимущества вместе с профессионалами PostBrigada!

PostBrigada.ru - разработка и сопровождение