2015-08-27 34 views
0

我在meanjs中有一個項目。MEAN-SEO不按預期方式工作

它html5mode禁止,所以我的網址是這樣的:

http://localhost:3000/#!/products

我想實現,以允許谷歌爬蟲看到在客戶端的JavaScript生成的內容AJAX snapshoots。

我安裝了一個叫做均值SEO模塊:

http://blog.meanjs.org/post/78474995741/mean-seo

現在,當我訪問以下網址:

http://localhost:3000/?_escaped_fragment_=

我重定向到:

http://localhost:3000/?_escaped_fragment_=/#!/

當我點擊「產品」或者我直接訪問,我重定向到:

http://localhost:3000/?_escaped_fragment_=/#!/products

閱讀這裏https://developers.google.com/webmasters/ajax-crawling/docs/getting-started詳細介紹了谷歌規範後,我需要的是得到的是沒有hashbangs東西,像下面這樣:

http://localhost:3000/?_escaped_fragment_=/products

我做錯了嗎? 親切的問候。

+0

看起來像一個路由問題是mean-seo正確安裝在服務器上,因爲將代碼片段添加到express.js中? '應用程序。使用(搜索引擎優化({ \t \t cacheClient: '盤',//也可以是 '的Redis' 但不能肯定是否需要 \t // \t redisURL: 'URL /端口',如果我們在實際使用Redis的 \t \t cacheDuration :2 * 60 * 60 * 24 * 1000,//以毫秒爲單位,所以我認爲目前設置爲2天 \t}));' – Leo

回答

0

爲什麼要關閉html5mode的具體原因?

以下是很多人遺漏的內容:搜索引擎(Google和Bing)現在可以處理基於AJAX的內容

他們的抓取工具現在可以理解推送狀態,所以如果你只需要打開上的html5mode,你就不需要任何特殊處理來讓你的SEO工作。您可以通過AJAX加載您的內容,您可以使用javascript等設置標題標籤和元標籤等,並且抓取工具將像理解您的服務器端一樣理解您的內容。不再需要爲SEO做html-snapshotting或escaped_fragment處理。

這已經在他們的開發人員博客上公佈了,但不幸的是,大多數文檔還沒有更新這些信息,所以很多人都不瞭解它。警告


一個字不過,Facebook並沒有處理pushstates,所以如果你想支持Facebook的履帶你仍然需要單獨處理的。

+0

只要確保您的robots.txt不會阻止抓取工具閱讀您的.js文件:) –