Ajax и SEO

john.brown

просто кулибин
Ajax и SEO

Вот случился прожект, где заказчик хочет, чтобы все грузилось аяксом. Т.е. сама страница вообще не перегружалась. И возник вопрос, как сделать сие дружественным к СЕО? Пока что есть полторы идеи - размещать на странице нормальные ссылки, по которым мог бы ходить робот, скрыв их от пользователя. Если на страницу приходют по такой ссылке, то:
а) выдавать страницу с яваяскрипт редиректом на аякс версию - типа, браузер перейдет по редиректу, а робот останется и проиндексирует нормальную страницу
б) в скрипте анализировать USER_AGENT, и если обнаружен браузер, то выдавать страницу под аякс, иначе нормальную хтмл.

Может быть есть более приличные варианты решения вопроса? Ну и по сушествующим что можете сказать?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Делать стандартные ссылки с евентом на клик.
Поисковик пойдет по урлу - обычный юзер получит данные аяксом.
 

john.brown

просто кулибин
Mr_Max
Как реализовать ссылки как раз понятно :) Вопрос больше в том, как раздавать контент пришедшим по этим ссылкам. Ибо с СЕО пользователь придет на хтмл страницу. А надо ему подсунуть аяксовскую...

Хмм, хотя, может быть и не надо делать разницу... пришел он по ссылке http://srver.com/index.php/cat_id/3/bla-bla-bla, и выдать по любому страницу с аякс мордой, токмо с требуемым контентом. А дальше, типа, грузит все через аякс, а на конце урла добавляем якорь... Адресная строка странная будет... Вобщем, хз, что то туплю я... :(
 

mity

Новичок
Некоторые поисковики, могут неадекватно реагировать на то, что страницы отдаваемые им (для их USER_AGENT или для их диапазонов IP) будут отличаться от страниц отдаваемых пользователям.
Но на начальном этапе, конечно, всё будет хорошо.
 

A1x

Новичок
можно смотреть по заголовку который передает аякс
X-Requested-With: XMLHttpRequest

если его нет - значит это заход по обычной ссылке - отдаем всю страницу
если есть - отдаем ответ для аякса
 

AmdY

Пью пиво
Команда форума
используй мастер темплэйт, для ajax не будет футера и хедера
при загрузке на онлод ставь проверку и анализируй location.hash
 

john.brown

просто кулибин
pilot911
К сожалению, не в этом случае ;)

Но, в обшем и целом, какое то понимание, как это реализовать с малой кровью, появилось :)
 

Духовность™

Продвинутый новичок
К сожалению, не в этом случае
а в чем проблема? Почему ваши менеджеры не могут это сделать? Лично я не вижу ни одной разумной причины, что бы писать сайт на аяксе, кроме как факта наличия неразумной "хотелки" у клиента.

Как мне в избранное добавить страничку веб-сайта на аякс? А ПС как быть? Клиент наверняка веб-сайт хочет для реализации бизнес-планов? М.б. попробовать объяснить клиенту, что может возникнуть масса проблем, хотя бы из-за отключенного JS? Не говоря о том, что хз как ПС будут себя вести с таким веб-сайтом.

Аякс как технология должна быть исключительно вспомогательным механизмом. И всё. Это надо принять как аксиому и не поддаваться на желания клиентов. Уверен, в 99% случаев такие требования ничем не обоснованы. Какой-нибудь недоучка стал менеджером и ему захотелось в ТЗ сайта упомянуть модное слово. А об этого предназначении этого модного слова естественно он не задумался.
 

AmdY

Пью пиво
Команда форума
triumvirat
а не глупо ли делать это из-за пяти сточек лишнего javascript, сейчас найду.

-~{}~ 17.05.10 17:05:

PHP:
if (document.location.hash) {
        $A($('tree_box').getElementsByTagName('a')).each(
            function(e) { 
                if ( e.href == URI_FULL+document.location.hash.sub('#', '')) ajaxLoad(e.href);
            } 
        );
    }
 

pilot911

Новичок
Автор оригинала: AmdY
triumvirat
а не глупо ли делать это из-за пяти сточек лишнего javascript, сейчас найду.

-~{}~ 17.05.10 17:05:

PHP:
if (document.location.hash) {
        $A($('tree_box').getElementsByTagName('a')).each(
            function(e) { 
                if ( e.href == URI_FULL+document.location.hash.sub('#', '')) ajaxLoad(e.href);
            } 
        );
    }
написать-то можно, что угодно, нужно ли, вот что главное

это во-первых, во-вторых, такие странные задания у клиентов возникают после обработки ребятами из Битрикса, которые с целью уменьшения нагрузки на сервер из-за своей кривой архитектуры грузят часть контента через ajax (криво, history не работает и тп)
 

john.brown

просто кулибин
Ну вобщем тема не о том, как заказчика переубедить, да и с битриксом он точно ни каких дел не имел :) Ребята худдожники, хотят перформанс из этого дела сделать, чтоб не как у всех было... Хорошо, от флэша отговорили :)
 

fixxxer

К.О.
Партнер клуба
Вполне можно все ссылки продублировать через anchor и прямыми ссылками для no-js.

И хистори прекрасно делается (хинт: anchor это еще и scroll к диву ;)) - хотя конечно для особенных браузеров может понадобиться проверка по таймеру
 

john.brown

просто кулибин
fixxxer
не мог бы пояснить, что имел ввиду этим - "для особенных браузеров может понадобиться проверка по таймеру"? Не совсем понял...
 

pilot911

Новичок
Автор оригинала: john.brown
fixxxer
не мог бы пояснить, что имел ввиду этим - "для особенных браузеров может понадобиться проверка по таймеру"? Не совсем понял...
используй вот эту библиотеку http://www.benalman.com/code/projects/jquery-bbq/docs/files/jquery-ba-bbq-js.html

тут есть все, что нужно для работы с hash

примеры - то, что тебе нужно - http://www.benalman.com/code/projects/jquery-bbq/docs/files/jquery-ba-bbq-js.html#Examples
 
Сверху