Handlebars.js和SEO

Maa*_*ten 16 javascript seo templates handlebars.js

我已经阅读了很多关于javascript模板和搜索引擎优化的讨论.尽管如此,我还没有找到令人满意的答案(无论是记录不当还是过时).

目前我正在研究handlebars.js作为客户端模板解决方案,因为我喜欢创建辅助函数的可能性.但是为搜索引擎编制索引呢?机器人是否使用丑陋的javascript伪变量索引生成的内容(按预期)或仅索引源?我知道有很多关于此事的线索,但我觉得没有人确切知道答案.

如果像谷歌这样的引擎不能正确地为这些模板编制索引,为什么还要为公共网站使用它?

在此上下文中的另一个问题:是否可以在服务器端呈现Handlebar.js模板,然后将它们呈现在客户端?显然要避免所有这些SEO讨论.

Ben*_*Ben 22

对于dom crunching客户端,大多数网络机器人(即谷歌和其他人)不会动态解释js并解析新呈现的内容以进行索引.相反,谷歌(现在是Bing)支持'Google Ajax抓取方案'(https://developers.google.com/webmasters/ajax-crawling/docs/getting-started) - 这基本上表明如果你想要js呈现dom内容要编入索引(即渲染ajax调用结果),您必须能够:

  1. 使用hashbangs #!(即http://www.mysite.com/#!my-state)和,通过url触发异步js渲染
  2. 能够在请求修改后提供您网站的预渲染dom快照.

如果使用像Backbone.js或Spine这样的客户端MVC框架 - 如果您希望将Web应用程序编入索引,则需要提供此服务.

通常这意味着你拦截了web bot发出的请求(在上面的链接中解释),并使用无头浏览器(即QT + capybara-webkit,HtmlUnit等)刮掉你的服务器端,然后将生成的dom传回到请求机器人.

我已经在https://github.com/benkitzelman/google-ajax-crawler中创建了一个宝石来执行ruby(现在接受拉取请求)

它使用capybara -webkit作为机架中间件(很快就是phantomjs)