Комментарии 15
Такое решение вполне имеет право на сущестование, но существует более универсальный способ в виде рендеринга целевых страниц с помощью PhantomJS и отдачи роботам результирующего HTML. Результат рендеринга, конечно, хорошо бы закешировать.
prerender.io решает эти проблемы(самому в деле, правда, никак не до ведётся испробовать). Автор, кстати, хабровчинин.
Как я говорил выше, решения со сторонними пакетами не всегда возможны.
Есть ещё интересные варианты. Многие (а может даже почти все) поисковики знают, что людям нужна ajax-навигация. И поэтому в целом есть некоторое соглашение (простите меня, может даже спецификация есть нужная, я не вдавался в подробности) о том, что поисковик, видя
Если вы ленивый (или у вас другие причины, как у меня), и не хотите генерировать статичный контент, и, кроме того, вам вообще никак не испытать прелести Phantom JS (например вас жестоко заперли на шаред хостинге), то можно поюзать вот эту штуку ajaxsnapshots.com (не сочтите за рекламу, сам только недавно нашёл). Обычно хотя бы .htaccess вам доступен и его как раз оказывается достаточно.
P.S. Ой, оказывается выше уже написали про аналогичный Prerender. Ну да ладно, пусть полежит тут альтернативный вариант.
#!fragment
в урле, пытается постучать на сервер по тому же адресу, но с заменой фрагментной части на ?_escaped_fragment_=fragment
(Google, Yandex, Bing). И вам просто по этому адресу надо располагать статичный контент страницы. Если вы ленивый (или у вас другие причины, как у меня), и не хотите генерировать статичный контент, и, кроме того, вам вообще никак не испытать прелести Phantom JS (например вас жестоко заперли на шаред хостинге), то можно поюзать вот эту штуку ajaxsnapshots.com (не сочтите за рекламу, сам только недавно нашёл). Обычно хотя бы .htaccess вам доступен и его как раз оказывается достаточно.
P.S. Ой, оказывается выше уже написали про аналогичный Prerender. Ну да ладно, пусть полежит тут альтернативный вариант.
Потому что роботы не исполняют JavaScript.
С 2011 года исполняют и яндекс и гугл. Если поискать, можно найти кучу экспериментов по этому поводу. Это если в общем говорить, а не об angular именно, где действительно с этим много проблем. Небольшой пруф.
Там не так всё хорошо, но, тем не менее javascript исполняется и страницы рендерятся. Этим занимается специальный умный бот, который ходит очень редко и не на все сайты.
Вот здесь яндекс неоднократно описывал как они это делают и зачем им это нужно помимо обычной индексации. В частности там много механизмов и метрик для борьбы со спамом (чтобы люди не подделывали навигацию, добавляли скрытый контент и т.д.).
Как раз в 2010-2011 году был бум злоупотребления javascript, когда seo оптимизаторы создавали разную навигацию для поисковиков и людей переправляя внутренние веса от ссылок на определённые страницы.
Я этот вопрос плотно изучал, поэтому если что, то могу подсказать.
Ах да, забыл спросить, вы там боролись с facebook и twitter за «SEO-friendly», какое отношение их роботы к SEO имеют? :)
Вот в случае с Angular все получается достаточно печально в плане поисковиков либо мне так «везло» и ни разу их специальный умный бот ко мне не заходил.
И, да, это не совсем SEO, но тоже оптимизация, ближе к SMO, но не совсем оно, спасибо.
И, да, это не совсем SEO, но тоже оптимизация, ближе к SMO, но не совсем оно, спасибо.
Этому автору бессмысленно задавать вопросы по содержанию «его» постов. Он не знает ответа. Поскольку просто пересказывает своими словами чужие статьи, добавляя немного отсебятины. В данном случае это www.michaelbromley.co.uk/blog/171/enable-rich-social-sharing-in-your-angularjs-app и там про сео как раз ничего нет.
Кстати, я в сео не специалист, но слышал, что поисковики нервно реагируют, если отдаётся разный контент роботу с обычным юзер-агентом и роботу, маскирующемуся под браузер. Если это так, то решение с редиректом принесет больше вреда, чем пользы. Хотелось бы послушать мнение специалиста.
Кстати, я в сео не специалист, но слышал, что поисковики нервно реагируют, если отдаётся разный контент роботу с обычным юзер-агентом и роботу, маскирующемуся под браузер. Если это так, то решение с редиректом принесет больше вреда, чем пользы. Хотелось бы послушать мнение специалиста.
В данном контексте ни слова не было про оптимизацию под поисковые системы, это во-первых. Во-вторых, «я в сео не специалист, но слышал», нет, никто нервно не реагирует, если делать все по-человечески. В данном случае мы просто подменяем искомый контент для робота и про само существование редиректа никто ничего не знает. И контент в случае с уже отрендеренными страницами будет идентичный тому, что будет видеть пользователь.
Реакция будет зависеть от других факторов, и в некоторых случаях это будет учитываться. Это они раньше плохо относились, лет 8 назад, а сейчас с этим всё сложно.
На сайте контент может меняться в зависимости от вашего местонахождения, браузера, реферера в абсолютно безобидных целях и тут сложно грань найти.
На сайте контент может меняться в зависимости от вашего местонахождения, браузера, реферера в абсолютно безобидных целях и тут сложно грань найти.
Использование HTML5 History API, переходы по ссылкам без перезагрузки страницы и прочее, и прочее остается лишь для веб-приложений.Это в вашем понимании оно так. Тут все зависит от требований и возможностей разработчика.
Почему так происходит?Скорее потому что разработчики сайтов не задумываются об этом заранее. Не думаю что уместно тут винить JavaScript, себя нужно винить что пишется все это не обдумав.
Потому что роботы не исполняют JavaScript.
А где продолжение?
Коллеги. Статья очень старая. Но вопрос остается актуальным. Хотелось бы узнать мнение профессионалов насчет изменений в 2015. Например depricating ajax crowling от google. Если сайт новый и на ангуларе, как заставить его видеть страницы полностью формируемые фронэндом?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Делаем Angular.js сайт доступным для роботов. Часть 1