[英]Handlebars.js and SEO
我已經閱讀了很多關於javascript模板和搜索引擎優化的討論。 盡管如此,我還沒有找到令人滿意的答案(無論是記錄不當還是過時)。
目前我正在研究handlebars.js作為客戶端模板解決方案,因為我喜歡創建輔助函數的可能性。 但是為搜索引擎編制索引呢? 機器人是否使用丑陋的javascript偽變量索引生成的內容(按預期)或僅索引源? 我知道有很多關於此事的線索,但我覺得沒有人確切知道答案。
如果像谷歌這樣的引擎不能正確地為這些模板編制索引,為什么還要為公共網站使用它?
在此上下文中的另一個問題:是否可以在服務器端呈現Handlebar.js模板,然后將它們呈現在客戶端? 顯然要避免所有這些SEO討論。
對於dom crunching客戶端,大多數網絡機器人(即谷歌和其他人)不會動態解釋js並解析新呈現的內容以進行索引。 相反,Google(現在是Bing)支持“Google Ajax抓取方案”( https://developers.google.com/webmasters/ajax-crawling/docs/getting-started ) - 這基本上表明如果你想要js呈現dom內容要編入索引(即渲染ajax調用結果),您必須能夠:
#!
通過url觸發異步js渲染#!
(即http://www.mysite.com/#!my-state
),和 如果使用像Backbone.js或Spine這樣的客戶端MVC框架 - 如果您希望將Web應用程序編入索引,則需要提供此服務。
通常這意味着你攔截了web bot發出的請求(在上面的鏈接中解釋),並使用無頭瀏覽器(即QT + capybara-webkit , HtmlUnit等)刮掉你的服務器端,然后將生成的dom發回到請求機器人。
我已經在https://github.com/benkitzelman/google-ajax-crawler中創建了一個寶石來執行ruby(現在接受拉取請求)
它使用capybara -webkit作為機架中間件(很快就是phantomjs )
我不知道Handlebar.js,但是對於我的理解,SEO在JAVASCRIPT中的內容有一些問題。 確保您的內容對搜索引擎可見(使用spyder模擬器進行某些測試)。 一般來說,避免使用spyder陷阱。 希望它可以幫到你。
搜索引擎不運行JavaScript,因此如果您希望將內容編入索引,則還需要在服務器上呈現模板。 當頁面請求來自蜘蛛時,您可以使用Node(服務器端JS)中的把手在那里呈現模板。 這是更多的工作,但它是可能的。 Github,google plus和twitter都做了類似的事情。
有關臨時解決方案,請參閱Spiderable Meteor項目(使用Handlebars.js)用於搜索引擎優化目的。
您可以使用遠程模板將模板作為SEO的一部分放置。
機器人是否使用丑陋的javascript偽變量索引生成的內容(按預期)或僅索引源?
也不是,因為索引器機器人不運行JavaScript而您不將模板作為HTML文檔提供。
構建一個無需JavaScript的網站,然后構建它 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.