AJAX и JavaScript

JavaScript позволяет использовать на web-сайте много динамических функций, большинство из которых очень мало мешает работе пауков. Исключением является тот случай, когда страница делает вызов JavaScript (чтобы попасть на другую страницу или чтобы извлечь контент, который пауки не видят внутри HTML). Несмотря на то, что такие случаи относительно редки, все же лучше знать о том, как роботы просматривают и индексируют. И контент, и ссылки должны быть доступны в необработанной HTML-странице (во избежание проблем).

Асинхронный JavaScript и XML (AJAX) создают похожие проблемы, особенно при доставке контента, который поисковые движки не могут просмотреть. Поскольку AJAX для извлечения данных без обновления страницы или изменения URL использует вызовы баз данных, то содержащийся за такими технологиями контент часто полностью скрыт от поисковых движков (рис. 6.13).

Рис. 6.13. Проблема при использовании AJAX

При использовании AJAX вы можете рассмотреть возможность реализации альтернативной системы просмотра, которой смогут воспользоваться поисковые движки. Приложения AJAX настолько дружественны к пользователю и так привлекательны, что для многих издателей отказаться от них было бы слишком непрактично. Создание каталога ссылок и страниц, которые смогут просматривать поисковые движки, будет гораздо более удачным решением.

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

Более новые версии AJAX используют разделитель #, который работает как строка запроса к приложению AJAX. Это позволяет делать ссылки непосредственно на страницы приложения. Однако и сам знак # (который используется для закладок в HTML) и все, что следует за ним, игнорируется поисковыми движками.

Так происходит в основном потому, что web-браузеры используют то, что находится после #, для перехода к якорю внутри страницы, а это делается локально в браузере. Иначе говоря, браузер не посылает полный URL, поэтому информация о параметрах (т. е. текст после #) не передается обратно на сервер.

Поэтому не используйте возможность делать ссылки внутри приложения AJAX как решение проблемы показа поисковым движкам страниц, находящихся внутри приложения. Все показанные таким образом страницы будут видны как имеющие один и тот же URL (тот, который предшествует знаку #). Убедитесь в том, что вы создаете разные web-страницы, имеющие уникальные URL (для удобства поисковых движков).