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

    Мой вольный перевод вчерашнего анонса гугла о том, как сделать так, чтобы аякс индексировался.

    Команда гугла спешит представить вам новый подход который позволит индексировать сайты, сделанные с помощью 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

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 11

      +2
      Вот это интересно!
      Думаю, после того, как технология разовьется, то она понизит уровень глубокого веба.
        0
        лучшее — враг хорошего )))
          +1
          Может пусть поисковики попарятся, а мы будем продолжать в том же духе — то есть в вольном? Или нам надо работать на гугл. Он же бабки будет на этом зашибать. Хотя это довольно спорный вопрос. Но я думаю поисковику реально выполнить некий скрипт и посмотреть контент, но конечно ссылку на него выдать трудновато будет.
            0
            Очень спорный вопрос)
            Мы и работаем на качества своих сайтов, только вот никому не нужно будет это качество, если его никто не сможет найти. Так что гугл, конечно, зашибает на этом деньги, но и сайтовладельцам предоставляет зашибать за счет трафика.
            А клиентский скрипт робот выполнить не может — таков основополагающий принцип поисковой системы — важна информация, а не красивые навороты. Сколько бы времени требовалось на выполнение всяких выпадающих/выползающих и других увеселительных элементов и мы б ругались в этом случае, что поисковая база медленно обновляется.
              0
              Ну я поэтому и сказал, что спорный вопрос, потому что индексация такого контента взаимовыгодное дело.
              А вот клиентский скрипт выполнить поисковику — да раз плюнуть — это что касается гугла и т.п. по масштабу.
            0
            Хорошая идея :)
              0
              Если я ничего не путаю предлагается стандартизовать обращение паука как _escaped_fragment_=state.
              Если так то это скажи клоакингу ДА!!!

              Если пауку сложно отработать AJAX, то как он убедиться в идентичности контента?
              Если он может отрабатывать запросы, то зачем весь этот огород?
                0
                Вебразработчик показывает роботу, что на странице есть аякс знаком "!" — остальное делает сервер и робот — разработчик может только посмотреть что там наделал сервер и браузер, но поменять не может. Паук принимает информацию от сервера и браузера, индексирует текст и отдает пользователю снова страницу с "!"
                  0
                  Обрабатывая таким образом страницы на стороне сервера, владелец сайта может управлять сгенерированным HTML кодом и удостовериться, что весь Javascript выполнился корректно.
                  На сервере стоит нечто. Кто помешает это снести и поставить другое или просто пропатчить?
                    0
                    Скорее пропатчить. Но, надо думать, что гугл не все карты раскрыл и что-нибудь придумает против клоакинга — тем более это входит в одну из задач.
                    Ну а вебразработчики придумают как обходить — вечное противостояние людей и машин :)
                0
                Глупость какая-то, извините… зачем такие сложности?

                Я сделал всё очень просто:

                Так как роботы не исполняют js, то они видя только обычные страницы:

                tanyao.ru/ru/work/scarfs2/

                Сайт при этом работает без js в нормальном режиме, без проблем.

                Если же js есть, то включаются ajax-удобства для быстроты и чтобы картинки оставались на своём месте:

                tanyao.ru/ru/#/ru/work/scarfs2/

                При этом, если данный url передадут другому человеку, то он увидит именно то, что нужно.

                Спасибо, критику жду (-:

                зы. В общем, на сайте все ссылки работают по ajax-каналу, включая переключение языка (-:

                Only users with full accounts can post comments. Log in, please.