Не мешает ли Angular / Knockout / BackBone поисковым роботам?
Собственно решил добавить в арсенал Angular / Knockout / BackBone , но все они меня смущают {{ своими скобочками }}. Мешает ли это при SEO, ведь если meta decription не совпадает в должной мере с контентом, он считается невалидным.
Знаю, что можно делать две версии страницы:
* С зарендаренными элементами.
* С Angular.
Но тогда какой в этом смысл, если я и так могу все зарендарить на стороне сервера?
Используйте Node.JS + JsDom для рендера ангулярного приложения на сервере. https://github.com/saymedia/angularjs-server
Делайте стабы для компонент, которые гарантированно не участвуют в рендеринге контента, при запуске в режиме сервера.
Сохраняйте результат в кеш.
Поисковой выдаче мешают. Смысл в удобстве для пользователя.
Обычно либо SPA делаются там где в принципе поисковая индексация не предполагается, либо действительно рендеринг дублируется на стороне сервера.
HoHsi: значит вы меня не поняли.
Вам нужно сделать 2 версии приложения, грубо говоря, для тех кто понимает js и других, которые не понимают.
Вообще, никто не мешает совместить подход, пример - github.
на стороне сервера для поисковика пишется отдельный роутинг, на стороне клиента ссылки прописываются в формате например "localhost/developer/carbon/public/#!/catalog" (#!/catalog),
на стороне сервера на сделать обработку "_escaped_fragment_" с примесью "отображаемого" контента.. короче ещё много, у гугла есть в api про индексацию web приложений
Так это древний костыль который не нужен после введения history api (т.е. уже года три как). Смысл костыля только в том чтобы поисковик понимал, что URL в таком формате - это именно полноценный роут а не просто хэш. После history api хэш-навигация в SPA не нужна вообще, соответственно не нужен и этот костыль.
Алексей П о чём? Вы читаете комментарии прежде чем на них отвечать? Джаваскрипт даже в гугле до сих пор нормально не индексируется, это понятно всё. Но при чём тут вот этот костыль с /#!/ ? Он не про индексацию джаваскрипта, а про распознавание хэш-урлов. При этом контент по этим урлам предполагается рендерить, внимание, НА СЕРВЕРЕ.
Никто сейчас не мешает рендерить на сервере контент по тем хе url-ам, которые используются на фронтенде, т.к. на фронтенде после появления history api можно спокойно использовать нормальные url-ы, а не это убожество с хэшем.
HoHsi: ради пользователей конечно же. Скорость, удобство и т.д. Удобно вам будет пользоваться Вконтакте если каждая страница будет грузиться с нуля? Ну то есть вы же представляете как выглядит для пользователя рендеринг каждой страницы на сервере?
HoHsi: он рендерит всё на фронтенде ещё со времён когда для этого нужна была хэш-навигация. Да и как бы по-вашему там музыка иначе игралась при навигации?