Организация продаж с сайта: оптимизация сайтов, реклама в интернете, продвижение сайтов Карта сайта
Наш рабочий день еще не начался, но вы можете оставить нам сообщение +7 (495) 585 50 25
Добавить в избранноеНас добавили 1927 человек

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

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

Мы подготовили перевод его статьи о результатах серии тестов, важных для современных оптимизаторов.

Коротко о результатах:

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

2. SEO-сигналы в DOM (заголовки страниц, метаописания, метатеги и т.д.) поощряются. Динамический контент в DOM также сканируется и индексируется.Более того, в некоторых случаях DOM-сигналы могут даже взять верх над противоречивыми инструкциями в исходном коде HTML.

 

Мы обнаружили, что Google не только обрабатывает различные типы событий JavaScript, но и индексирует динамически генерируемый контент. Как? Google читает DOM.

Что такое DOM?

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

что такое DOM

Что происходит, когда браузер запрашивает веб-страницу, и как в этом участвует DOM

Таблица: Когда браузер запрашивает веб-страницу:

1. Начальное соединение и браузер запрашивают веб-страницу.
2. Сервер отправляет HTML-страницу браузеру.
3. Браузер анализирует HTML-документ и формирует DOM.
4. Браузер отправляет запрос на дополнительные ресурсы.
5. Сервер(а) отправляют ресурсы обратно браузеру.
6. Браузер отображает страницу.

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

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

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

Как JavaScript работает с интерфейсом DOM

Как JavaScript работает с интерфейсом DOM

 

Серия тестов, которые были проведены, и их результаты

Мы создали серию тестов, чтобы изучить, как разные функции JavaScript будут сканироваться и индексироваться, если изолировать Googlebot. Система управления была создана так, чтобы убедиться, что действия по отношению к URL будут понятны и в этом случае.

Давайте рассмотрим несколько наиболее интересных результатов детально:

Серия тестов, которые были проведены, и их результаты

Пример одной страницы, используемой для тестирования способностей робота Googlebot в понимании JavaScript

1. Переадресация в JavaScript

Мы тестировали распространенные JavaScript-редиректы, меняя отображение страницы, используя для этого функцию window.location. Провели два теста: в тесте А использовался абсолютный атрибут URL в window.location, в тесте B — относительный.

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

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

Результат: как и ожидалось, Google последовал переадресации и оригинальная страница выпала из индекса. Новая страница была проиндексирована и незамедлительно появилась в выдаче на тех же позициях по одинаковым запросам. Похоже, это указывает на то, что с позиции ранжирования JavaScript редирект может (иногда) вести себя так же, как и постоянный 301 редирект.

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

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

 

2. Ссылки в JavaScript

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

Один из примеров — выпадающее меню с ссылками. Обычно поисковые системы не переходили по этим ссылкам последовательно. Наш эксперимент должен был определить, будет ли переход по событию OnChange (событие при выборе опции из выпадающего списка). Важно отметить, что это специфический тип выполнения: мы просим выполнить действие, чтобы изменить что-то, а не принуждаем, как при переадресации JavaScript.

Ссылки в JavaScript

Пример выпадающего окна с выбором языка в Google для рабочей страницы

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

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

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

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

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

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

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

 

3. Динамически добавляемый контент

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

Эти тесты были разработаны с целью проверить динамически добавляемый текст в двух ситуациях:

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

2. Тестирования возможности поисковой системы учитывать динамически добавляемый текст, когда он находится вне HTML-кода страницы (во внешнем файле JavaScript).

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

Также мы протестировали глобальную навигацию клиента, которая была разработана на JavaScript, со всеми ссылками в функции document.writeIn, и убедились, что они полностью индексируются. Следует отметить, что именно этот тип функциональности в Google объясняет, как сайты, построенные с использованием AngularJS framework и HTML5 (рushState), могут быть отображены и проиндексированы Google, ранжируясь так же хорошо, как и обычные статические HTML-страницы.

Вот почему важно не блокировать для Googlebot доступ к внешним файлам и средствам JavaScript.

Вероятно, поэтому Google уходит от поддержки принципов Ajax для SEO. Кто нуждается в HTML-снимках, если вы можете просто отобразить всю страницу?

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

Отметим, что Google в настоящее время рекомендует разметку JSON-LD для некоторой структурированной информации.

 

4. Динамически добавляемые метаданные и элементы страницы

Мы динамически добавили в DOM различные теги, которые имеют критичное значение для SEO:

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

 

5. Важный пример с тегом rel=”nofollow”

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

JavaScript и тег rel=”nofollow”

Наш тест по сравнению исходного кода и генерации аннотации в DOM

Nofollow в исходном коде работал так, как и ожидалось (ссылка не индексировалась). Nofollow в DOM не сработал (был переход по ссылке, и страница проиндексировалась).

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

 

Выводы

Исторически рекомендации оптимизаторов вращались вокруг использования «простого текста» везде, где это возможно. Динамически генерируемый контент, Ajax и JavaScript ссылки вредили оптимизации под основные поисковые системы. Очевидно: это больше не касается Google. JavaScript-ссылки работают так же, как и простые HTML-ссылки (касательно их веса — мы не знаем, что происходит внутри алгоритма).

1. Переадресация в JavaScript трактуется так же, как и простой 301 редирект.

2. Динамически добавляемый контент, и даже такие метасигналы, как rel canonical annotations, трактуются, как и HTML код, или запускаются после того, как исходный HTML проиндексирован с JavaScript в DOM.

3. Теперь Google полностью отображает страницу и видит DOM, а не просто исходный код (помните, что нужно давать доступ роботу Googlebot к внешним файлам и средствам JavaScript).

Оригинал статьи — http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157.
13.05.2015 |  Автор: Алина Дрига

 

X

Вопрос или заказ?

Звоните +7 (495) 585 50 25
Пишите