Аякс изменил Интернет. 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:
- проверить наличие таблицы с идентификатором «библиотека»
- добавить обработчики событий к ссылкам навигации и, после нажатия
- отмените стандартное событие навигации и начните вызов Ajax. Это позволит получить новые данные и обновить таблицу без полного обновления страницы.
Хотя я приветствую решение Google, оно похоже на сложную кувалду, чтобы сломать крошечный орех. Если вас смущают такие методы, как прогрессивное улучшение и Hijax, у вас наверняка возникнут проблемы с реализацией системы сканирования Google. Тем не менее, это может помочь тем, кто работает с монолитными Ajax-приложениями и не рассматривает SEO, пока не стало слишком поздно.