Handlebars.js и SEO - PullRequest
       32

Handlebars.js и SEO

16 голосов
/ 07 октября 2011

Я прочитал много дискуссий о шаблонизировании JavaScript и поисковой оптимизации. Тем не менее, я не нашел удовлетворительного ответа на вопрос (плохо документированный или устаревший).

В настоящее время я рассматриваю handlebars.js как шаблонное решение на стороне клиента, потому что мне нравится возможность создавать вспомогательные функции. Но как насчет индексации для поисковых систем? Индексирует ли бот сгенерированный контент (как задумано) или только источник с уродливыми псевдопеременными javascript? Я знаю, что по этому вопросу идет много дискуссий, но я чувствую, что никто точно не знает ответа.

Если такие движки, как Google, не будут индексировать эти шаблоны должным образом, зачем использовать это для общедоступных веб-сайтов?

Еще один вопрос в этом контексте: возможно ли рендерить шаблоны Handlebar.js на стороне сервера, а затем представлять их на стороне клиента? Очевидно, чтобы избежать всего этого обсуждения SEO.

Ответы [ 6 ]

22 голосов
/ 27 марта 2012

Что касается клиентской стороны, большинство веб-ботов (т. Е. Google и другие) не интерпретируют js на лету и не анализируют недавно отрендеренный контент для индексации.Вместо этого Google (и теперь Bing) поддерживает «Схему сканирования Ajax Google» (https://developers.google.com/webmasters/ajax-crawling/docs/getting-started)), которая в основном гласит, что если вы хотите, чтобы контент, отображаемый в формате js, был проиндексирован (т. Е. Отображается результат вызова ajax), вы должны иметь возможность:

  1. Запуск асинхронного рендеринга JS через URL с использованием hashbangs #! (то есть http://www.mysite.com/#!my-state) и
  2. Возможность показывать предварительно созданный снимок dom вашего сайта ПОСЛЕ jsмодификация по запросу.

Если вы используете клиентскую среду MVC, такую ​​как Backbone.js или Spine, вам понадобится предоставить эту услугу, если вы хотите, чтобы ваше веб-приложение было проиндексировано.

Обычноэто означает, что вы перехватываете запрос, сделанный веб-ботом (объясненный по ссылке выше), и очищаете свою сторону сервера, используя браузер без головы (например, QT + capybara-webkit , HtmlUnit и т. д.), затем доставьте созданный домен обратно запрашивающему боту.

Я запустил гем для этого в ruby ​​(теперь принимаю pull-запросы) в https://github.com/benkitzelman/google-ajax-crawler

Itделает это как стойку мидлПрограммное обеспечение с использованием capybara-webkit (и скоро phantomjs )

1 голос
/ 09 октября 2011

Я не знаю о Handlebar.js, но для моего понимания у SEO есть проблемы с CONTENT в JAVASCRIPT. Убедитесь, что ваш контент виден поисковой системе (для некоторых тестов используйте симулятор шпиона). Избегайте ловушек для шпионов, как правило, это путь. Надеюсь, это поможет вам.

0 голосов
/ 19 сентября 2012

См. Spiderable для временного решения. Метеоритный проект (который использует Handlebars.js) использует для целей SEO.

http://docs.meteor.com/#spiderable

0 голосов
/ 22 февраля 2012

Вы можете использовать Дистальные шаблоны , которые помещают шаблоны как часть HTML для SEO.

0 голосов
/ 14 октября 2011

Поисковые системы не запускают JavaScript, поэтому, если вы хотите, чтобы ваш контент был проиндексирован, вам нужно будет также отображать ваши шаблоны на сервере.Вы можете использовать рули в Node (JS на стороне сервера), чтобы визуализировать ваш шаблон там, когда запрос страницы исходит от паука.Это больше работы, но это возможно.Github, Google Plus и Twitter все делают что-то подобное.

0 голосов
/ 09 октября 2011

Индексирует ли бот сгенерированный контент (как предполагалось) или только источник с уродливыми псевдопеременными javascript?

Ни того, ни другого, поскольку индексаторы не запускают JavaScript и вы не используете шаблоны в качестве HTML-документов.

Создайте сайт, который работает без JavaScript, затем buildповерх него .

...