Pull to refresh

Как заставить AJAX индексироваться

Reading time 3 min
Views 16K
Мой вольный перевод вчерашнего анонса гугла о том, как сделать так, чтобы аякс индексировался.

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

AJAX сайты достаточно популярны среди пользователей, но поисковые системы, как правило, не могут получить доступ к контенту такого сайта. Согласно нашему последнему исследованию, около 70% всех сайтов, которые мы проверили, используют ту или иную форму JavaScript. Конечно, большинство JavaScript это не AJAX, но тем не менее, было бы хорошо, если бы поисковые машины могли индексировать AJAX. В таком случае, разработчики могли бы делать свои сайты более интересными и снабжать их большим количеством «фишечек», а поисковые системы, в свою очередь, индексировали такие сайты и отображали их в результатах поиска.


Цели, которые мы хотим достичь с помощью этого стандарта:

• Минимум изменений веб сайта.

• Пользователь и поисковая система получают один и тот же контент (нет клоакингу)

• Поисковая система посылает пользователя прямиком на страницу с AJAX (не на статичную копию)

• Владельцы сайта могут проверить, что их AJAX сайт представлен правильно и у поискового паука есть доступ ко всему контенту

Как мы представляем индексацию AJAX поисковыми системами:
• Немного меняем строение части URL для страницы с AJAX
Если страница с AJAX имеет одно и то же содержание каждый раз, когда запрашивается, то эти страницы могут оказываться в результатах поиска. Мы предлагаем вместо URL, например, example.com/page?query#state добавлять символ, который поможет выделить и понять URL страниц с аяксом: example.com/page?query#[СИМВОЛ]state. Основываясь на изучении существующих URL мы предлагаем использовать для этих целей "!" (восклицательный знак). Предлагаемый URL, который будет показан в результатах поиска будет выглядеть так: example.com/page?query#!state.

• Используется браузер, который не принимает заголовки для генерации HTML страницы с вашего web сервера.
Браузер, который не получает заголовки используется для доступа к AJAX странице и генерации HTML кода, основанном на конечном состоянии страницы в браузере. Браузером обрабатываются только специально обозначенные URL. Обрабатывая таким образом страницы на стороне сервера, владелец сайта может управлять сгенерированным HTML кодом и удостовериться, что весь JavaScript выполнился корректно. Примером подобного браузера может служить HtmlUnit, опенсорсный браузер для Ява программ без GUI.

• Убирая часть адреса, даем доступ к этим URL поисковым паукам.
Так как некоторые фрагменты адреса никогда не будут переданы серверу (т.к. никогда не будет выполнен запрос, добавляющий к адресу фрагмент), необходимо немного модифицировать URL, используемый для доступа к странице. Эта модификация, в свою очередь, сообщает серверу, который использует специальный браузер, что надо сгенерировать HTML код, а не отдавать страницу с JavaScript. Остальные URL — те, которые использует пользователь – будут обработаны нормально, без использования специального браузера. Мы предлагаем не использовать часть информации, а добавить ее как query параметр вместе со специальным символом. Используя предыдущий пример, URL будет выглядеть так: example.com/page?query&[СИМВОЛ]=state. Проанализировав сегодняшние URL в Интернете, мы предлагаем использовать в качестве шаблона "_escaped_fragment_". Предлагаемый по стандарту URL будет теперь выглядеть так: example.com/page?query&_escaped_fragment_=state.

• Показываем пользователю настоящий URL в результатах поиска
Имеет смысл направлять пользователей сразу на AJAX страницы, а не на статичные версии. И это можно сделать, показывая настоящий URL в результатах поиска (такой как example.com/page?query#!state из примера выше). Поисковая система может проверить, что текст, отдаваемый ей, является тем же самым или частью текста, отдаваемый пользователю.

image
(Диаграмма: Katharina Probst)

В итоге, мы начали с URL имеющего такое строение:
example.com/dictionary.html#AJAX, страница может быть доступна и поисковому пауку, и пользователю в виде:
example.com/dictionary.html#!AJAX которая будет проиндексирована как
example.com/dictionary.html?_escaped_fragment_=AJAX и которая будет показана пользователю как
example.com/dictionary.html#!AJAX

Предложение стандарта поступило и дорабатывается: Katharina Probst, Bruce Johnson, Arup Mukherjee, Erik van der Poel and Li Xiao, Google

оригинал: googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html
Tags:
Hubs:
+17
Comments 11
Comments Comments 11

Articles