簡體   English   中英

Handlebars.js和SEO

[英]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調用結果),您必須能夠:

  1. 使用hashbangs #!通過url觸發異步js渲染#! (即http://www.mysite.com/#!my-state ),和
  2. 能夠在請求修改后提供您網站的預渲染dom快照。

如果使用像Backbone.js或Spine這樣的客戶端MVC框架 - 如果您希望將Web應用程序編入索引,則需要提供此服務。

通常這意味着你攔截了web bot發出的請求(在上面的鏈接中解釋),並使用無頭瀏覽器(即QT + capybara-webkitHtmlUnit等)刮掉你的服務器端,然后將生成的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)用於搜索引擎優化目的。

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

您可以使用遠程模板將模板作為SEO的一部分放置。

機器人是否使用丑陋的javascript偽變量索引生成的內容(按預期)或僅索引源?

也不是,因為索引器機器人不運行JavaScript而您不將模板作為HTML文檔提供。

構建一個無需JavaScript的網站,然后構建它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM