Статьи

Как сделать Ajax-приложения Google-Crawlable

Аякс изменил Интернет. Microsoft впервые внедрила эти технологии в 1999 году, но после того, как Джесси Джеймс Гарретт разработал аббревиатуру в 2005 году , появился взрыв приложений Web 2.0.

Хотя это делает веб-приложения более привлекательными и отзывчивыми, контент на основе Ajax не может ( всегда ) индексироваться поисковыми системами. Сканеры не могут запускать функции обновления контента JavaScript. В крайних случаях все, что Google может индексировать, это:


<html>
	<head>
		<title>My Ajax-powered page</title>
		<script type="text/JavaScript" src="application.js"></script>
	</head>
	<body>
	</body>
</html>

Этого достаточно, чтобы SEO-эксперт потерял сознание.

Гугл в помощь?

Google разработал новую технику, позволяющую сканировать приложения Ajax . Это немного сложно, но вот краткое описание реализации.

1. Расскажите сканеру о ваших ссылках Ajax

Предположим, ваше приложение получает данные с помощью Ajax-вызова по этому адресу:

 
www.mysite.com/ajax.php#state

Вам нужно изменить этот URL и добавить восклицательный знак после хеша:

 
www.mysite.com/ajax.php#!state

Ссылки в вашем HTML будут отслеживаться, но вы должны добавить эти новые ссылки в свой файл сайта, если они обычно генерируются в коде JavaScript.

2. Обслуживание контента Ajax

Сканер Google переведет ваш URL Ajax и запросит следующую страницу:

 
www.mysite.com/ajax.php?_escaped_fragment_=state

Обратите внимание, что аргументы экранированы; например, «&» будет передано как «% 26». Поэтому вам нужно будет удалить и проанализировать строку. PHP- urldecode()

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

Это должно быть относительно просто, если ваши Ajax-запросы обычно возвращают HTML через процесс PHP или ASP.NET. Однако ситуация становится немного более сложной, если вы обычно возвращаете XML и JSON, которые анализируются JavaScript и вставляются в DOM. Google предлагает создать статические версии ваших страниц или использовать систему, такую ​​как HtmlUnit, для программного получения HTML-кода после выполнения JavaScript.

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

Это прогресс (Ive)?

Вопреки распространенному мнению, сайты, использующие Ajax, могут быть проиндексированы поисковыми системами… если вы применяете прогрессивные методы улучшения . Страницы, которые работают без JavaScript, будут проиндексированы Google и другими поисковыми системами. Затем вы можете применить немного магии Ajax, чтобы постепенно улучшать пользовательский интерфейс для тех, у кого включен JavaScript.

Например, предположим, что вы хотите пролистывать библиотеку SitePoint по десять книг одновременно. Будет создана стандартная HTML-страница запроса / ответа с навигационными ссылками; например:

library.php

  <HTML>
 <Голова>
 <title> Библиотека SitePoint </ title>
 </ HEAD>
 <Тело>
 <table id = "library">
 <? PHP
 // показать книги на соответствующей странице
 ?>
 </ Table>
 <UL>
	 <li> <a href="library.php?page=-1"> НАЗАД </a> </ li>
	 <li> <a href="library.php?page=1"> СЛЕДУЮЩАЯ </a> </ li>
 </ UL>
 </ Body>
 </ Html>

Страница может быть просканирована Google, и ссылки будут следовать. Пользователи без JavaScript также могут использовать систему. Теперь можно добавить прогрессивные улучшения JavaScript:

  1. проверить наличие таблицы с идентификатором «библиотека»
  2. добавить обработчики событий к ссылкам навигации и, после нажатия
  3. отмените стандартное событие навигации и начните вызов Ajax. Это позволит получить новые данные и обновить таблицу без полного обновления страницы.

Хотя я приветствую решение Google, оно похоже на сложную кувалду, чтобы сломать крошечный орех. Если вас смущают такие методы, как прогрессивное улучшение и Hijax, у вас наверняка возникнут проблемы с реализацией системы сканирования Google. Тем не менее, это может помочь тем, кто работает с монолитными Ajax-приложениями и не рассматривает SEO, пока не стало слишком поздно.