AngularJS / AJAX сканеры приложений и поисковых систем
У меня есть веб-приложение, в котором интенсивно используется AngularJS / AJAX, и я бы хотел, чтобы его могли просматривать Google и другие поисковые системы. Насколько я понимаю, мне нужно сделать что-то особенное, чтобы это работало, как описано здесь: https://developers.google.com/webmasters/ajax-crawling
К сожалению, это выглядит довольно неприятно, и я бы не стал вводить хеш-теги. Что я хотел бы сделать, так это предоставить статическую страницу роботу Googlebot (на основе User-Agent), либо напрямую, либо отправив ему перенаправление 302. Таким образом, веб-приложение может быть таким же, и весь обходной путь робота Googlebot красиво изолируется, пока он больше не нужен.
Меня беспокоит то, что Google может ошибочно предположить, что я пытаюсь обмануть робота Google, в то время как моя цель - помочь ему. Что вы, ребята, думаете об этом подходе, и что бы вы порекомендовали?
4 ответа
По состоянию на май 2014 года GoogleBot теперь выполняет JavaScript. Проверьте WebmasterTools, чтобы увидеть, как Google видит ваш сайт.
http://googlewebmastercentral.blogspot.no/2014/05/understanding-web-pages-better.html
Изменить: Обратите внимание, что это не означает, что другие сканеры (Bing, Facebook и т. Д.) Будут выполнять Javascript. Возможно, вам все равно придется предпринять дополнительные шаги, чтобы эти сканеры могли видеть ваш сайт.
Посмотрите на эти ссылки, и это даст вам хорошее направление:
Настройте собственную службу Prerender с помощью открытого исходного кода Prerender.io:
https://prerender.io/
Используйте другой существующий сервис, такой как BromBone, Seo.js или SEO4AJAX:
http://www.brombone.com/ http://getseojs.com/ http://www.seo4ajax.com/
Создайте свой собственный сервис для рендеринга и предоставления снимков для поисковых систем. Прочтите эту статью. Это даст вам общую картину:
http://scotch.io/tutorials/javascript/angularjs-seo-with-prerender-io
Недавно я натолкнулся на этот отличный пост от yearofmoo, в котором подробно объясняется, как сделать ваше приложение Angular оптимизированным для SEO. В сущности, когда боты увидят URI с хеш-тегом, они узнают, что это страница с ajaxed, и попытаются достичь того же URI, заменив '#!' в вашем URI с помощью "?_escaped_fragment_=". Этот альтернативный uri инструктирует ботов, что они должны ожидать, чтобы найти окончательную статическую версию страницы, к которой они обращались.
Конечно, чтобы достичь этого, вам нужно ввести хеш-теги в свой Uris. Я не понимаю, почему вы пытаетесь избежать их. Разве в gmail не используются хеш-теги?
Да, к сожалению, если вы хотите быть проиндексированы - вы должны придерживаться схемы:(Если вы запускаете приложение ruby - есть жемчужина, которая реализует схему сканирования для любого стоечного приложения....
gem install google_ajax_crawler
описание того, как его использовать, можно найти по адресу http://thecodeabode.blogspot.com.au/2013/03/backbonejs-and-seo-google-ajax-crawling.html, исходный код по адресу https://github.com/benkitzelman/google-ajax-crawler