Индексирование AJAX-сайтов

Ответить
Аватара пользователя
Distructor
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009
AJAX, Ajax (от англ. Asynchronous Javascript and XML — «асинхронный JavaScript и XML») — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся быстрее и удобнее.

Но из-за того, что содержимое страниц формируется динамически браузером на стороне пользователя, у поисковиков пока все еще возникают проблемы с индексированием таких сайтов. Для обхода этих проблем Goolge и Яндекс предлагают веб-мастеру определенным образом помечать страницы ajax-сайтов, чтобы они могли явно запросить у сервера html-версию этих страниц.

По сути все сводится к двум действиям:

1 - помечаем ссылки/страницы особым образом
  • - если на сайте используются url с хеш-фрагментами, то после знака хеша в урл нужно добавить восклицательный знак например

    Код: Выделить всё

    http://example.com/#page1  =>  http://example.com/#!page1
    - если в адресе страницы отсутствует хеш-фрагмент (например если это главная страница), то страницу можно пометить с помощью специального meta-тега

    Код: Выделить всё

    <meta name="fragment" content="!">
2 - дорабатываем серверную часть
  • поисковик обнаружив помеченную указанным способом страницы попытается загрузить html версию страницы, которую нужно проиндексировать путем замены в url символов "#!" на "?_escaped_fragment_=".
    например

    Код: Выделить всё

    http://example.com/#!page1  =>  http://example.com/?_escaped_fragment_=page1
    для страниц помеченных meta-тегом

    Код: Выделить всё

    http://example.com/ =>  http://example.com/?_escaped_fragment_=
    Подразумевается, что поисковику будет отдана html-страница в том виде, в котором они видна пользователю после всех JavaScript-овых обработок. Для формирования таких страниц Google предлагает несколько вариантов:
    1. Если большой объем содержания формируется с помощью JavaScript, для получения снимка HTML лучше воспользоваться хедлесс-браузером, например HtmlUnit. Либо можно воспользоваться другим инструментом вроде crawljax или watij.com.
    2. Если большая часть содержания формируется с помощью серверной технологии вроде PHP или ASP.NET, то можно воспользоваться существующим кодом, заменив фрагменты веб-страницы, связанные с JavaScript, статическим или серверным кодом HTML.
    3. Можно создать автономную статическую версию страницы. Например, многие приложения отрисовывают содержание из базы данных, которое затем визуализируется браузером. Вместо этого можно создать отдельную HTML-страницу для каждого URL AJAX.
Ссылки, содержащие "#!", также можно использовать в карте сайта.
В HTML-версии документа мета-тег размещать не следует: в этом случае страница не будет проиндексирована.
Ссылка в результатах поиска будет выводиться ссылка с "#!", которая направит пользователя на AJAX-версию страницы.

Подробнее можно почитать по ссылкам
https://help.yandex.ru/webmaster/robot- ... dexing.xml
https://support.google.com/webmasters/a ... 4992?hl=ru
https://support.google.com/webmasters/a ... 4993?hl=ru
https://developers.google.com/webmaster ... tion?hl=ru

Ответить