JavaScript

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

Однако Google подтвердила, что она попытается выполнять JavaScript для доступа к такому контенту (Webmaster Central Blog, Updating Our Technical Webmaster Guidelines, 27 октября 2014, bit.ly/webmaster_guidelines). Возможности Google по доступу к JavaScript будут улучшены со временем, поэтому можете ожидать, что движение в этом направлении продолжится (Adam Audette, We Tested How Googlebot Crawls Javascript And Here’s What We Learned, Search Engine Land, 8 мая 2015, searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157). Пример тому — комментарии Facebook Comments. Это система, которая позволяет издателям собирать комментарии пользователей сайта. Комментарии Facebook Comments на странице веб-сайта TechCrunch (bit.ly/zuckerberg_spks_chinese). Если вы посмотрите исходный код этой страницы, то не увидите в HTML-коде текста этих комментариев. Так происходит потому, что комментарии хранятся на сервере Facebook и динамически извлекаются веб-сервером во время отображения страницы. Это — пример такого контента, который ранее не индексировался поисковыми движками. И если вы станете использовать JavaScript подобным образом, то пока непонятно, что с ним смогут сделать Google или Bing. Система Facebook Comments используется очень широко, поэтому поисковые движки научились читать ее контент. Однако в марте 2012 г. этот контент еще не индексировался Google.

Тем не менее, с того времени многое изменилось. В июне 2015 г. Google стала индексировать этот контент, и вы можете проверить это (и убедиться, что ваш собственный контент индексируется), выполнив поиск в Google по уникальной строке запроса, содержащей текст с Facebook Comments, заключенный в кавычки, — чтобы Google выполнила поиск тех слов в точном порядке. Например, поиск в Google по одному из комментариев: «»As an ethnic Chinese, learning Mandarin and struggling, I’m extremely impressed»» — вернет URL-адрес techcrunch.com/2014/10/23/zuckerberg-speaks-chinese-internet-soils-itself в качестве результата.

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

AJAX

AJAX создает похожие проблемы, особенно при доставке контента, который поисковые движки не могут просмотреть. Поскольку AJAX для извлечения данных без обновления страницы или изменения URL-адреса использует вызовы баз данных, то содержащийся за такими технологиями контент часто полностью скрыт от поисковых движков. Так, ранее в 2015 г. Google заявила, что она может попытаться обойти также и AJAX-страницы (Barry Schwartz, Google May Discontinue Its AJAX Crawlable Guidelines, Search Engine Land, 5 марта 2015, bit.ly/ajax_crawlable_guidelines), что было подтверждено в июне 2015 г. в статье-интервью Эрика Энжа, в которой сотрудник Google Гэрри Иллайс (Garry Illyes) сказал: «Если у вас есть только один URL-адрес и человек должен щелкнуть мышью, чтобы увидеть разные порядки сортировки или фильтры того же самого контента, то обычно мы видим содержание по умолчанию» (Eric Enge, Eliminate Duplicate Content in Faceted Navigation with Ajax/JSON/JQuery, Moz Blogs, 11 июня 2015, moz.com/blog/using-ajax-json-jquery-to-implement-faceted-navigation).

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

Когда вы будете строить эти вторичные структуры из ссылок и страниц, не забудьте предоставить к ним доступ и пользователям. Внутри самого приложения AJAX дайте посетителям возможность сделать «прямую ссылку на эту страницу» и свяжите этот URL-адрес с тем адресом, который вы предоставляете паукам поисковых движков (в вашей структуре ссылок). Приложения AJAX не только имеют непросматриваемый пауками контент, но зачастую не получают также и точных ссылок от пользователей (поскольку URL-адрес не меняется).

Более новые версии AJAX используют разделитель #, который работает как строка запроса к приложению AJAX. Это позволяет делать ссылки непосредственно на страницы приложения. Однако и сам знак # (который используется для комментариев в HTML), и все, что следует за ним, игнорируется поисковыми движками. Так происходит в основном потому, что веб-браузеры используют то, что находится после символа #, для перехода к якорю внутри страницы, а это делается локально в браузере. Иначе говоря, браузер не посылает полный URL-адрес, поэтому информация о параметрах (т. е. текст после символа #) не передается обратно на сервер.

Google указала метод для того, чтобы сделать подобные страницы AJAX видимыми для поисковых движков еще в 2009 г. (bit.ly/make_ajax_crawlable). За этим последовали рекомендации, сделанные на сайте Google Developers (bit.ly/ajax_apps_crawlable). Вы можете получить дополнительную информацию по адресу bit.ly/ajax_crawling.

Предлагаемое Google решение требует внесения некоторых незначительных изменений в форматирование URL-адреса, чтобы паук мог распознать, когда URL-адрес можно считать статическим, который всегда возвращает один и тот же контент. В этом случае паук Google прочитает страницу и обработает ее как любую другую статическую страницу (проиндексирует и проранжирует), и благодаря этому предоставит ей возможность занять то же место, что и страница, закодированная в простом HTML.

Другие типы одностраничных фреймворков вроде Angular.js, Backbone.js или Ember.js могут иметь те же проблемы.

Понравилась статья? Поделиться с друзьями: