2013-03-07 68 views
0

我試圖根據這裏列出的指導原則設置我的網站(http://www.diablo3values.com):https://developers.google.com/webmasters/ajax-crawling/但是,似乎Google已經更新了他們的索引(因爲我看到了對元描述標籤),但ajax內容不會顯示在索引中。爲什麼我的ajax內容沒有被谷歌索引

我正在嘗試使用「處理沒有散列碎片的頁面」選項。

如果您查看以下之一:

http://www.diablo3values.com/?_escaped_fragment_=

http://www.diablo3values.com/about?_escaped_fragment_=

,你會看到正確的HTML快照與我的內容。 (這是我最關心的兩頁)。

任何想法?難道我做錯了什麼?你如何讓谷歌識別標籤。

回答

1

如果您的網址符合散列爆炸標準,Googlebot只知道抓取已轉義的片段。當用戶瀏覽您的網站,您的網址必須是:

http://www.diablo3values.com/ 
http://www.diablo3values.com/#!contact 
http://www.diablo3values.com/#!about 

Googlebot的實際需要看這些URL中的源代碼,以便它可以跟隨他們。然後,它知道要下載以下網址:

http://www.diablo3values.com/?_escaped_fragment=contact 
http://www.diablo3values.com/?_escaped_fragment=about 

在你的網站,你似乎是加載每次點擊一個新的頁面,然後加載通過AJAX每一頁的內容了。這不是我期望AJAX網站的工作方式。通常使用AJAX的目的是讓用戶永遠不必加載整個新頁面。當用戶點擊時,新的內容部分被加載並插入到頁面中。你服務導航一次,然後你只能提供內容的轉義片段。

+0

Stephen,謝謝你的採訪。我正在嘗試使用較新的HTML5 pushstate而不是hashbang標準(希望頁面不會隨每個鏈接重新下載)。我正在使用backbone.js路由器,如果瀏覽器不支持它,它應該回退到hashbang。谷歌的文檔讓我相信這仍然可以完成(看第三步https://developers.google.com/webmasters/ajax-crawling/docs/getting-started – Occam 2013-03-07 12:39:57

+0

說了一切,我認爲你幫了我發現我的錯誤: 我用的是:(http://www.diablo3values.com/about?_escaped_fragment_=) 不是:(http://www.diablo3values.com/about?_escaped_fragment=about) 你認爲可能是這樣嗎? – Occam 2013-03-07 12:40:30

+0

如果你使用push狀態,當請求url時,服務器必須返回完整的頁面到googlebot,當有hashbang url時,Googlebot只會獲取_escaped_fragment,你需要#include(服務器端)轉義片段進入第一頁面視圖的頁面文本,然後使用抓取部分轉義片段並使用pushstate進行點擊。 – 2013-03-07 13:21:31

7

我輸入這個作爲答案,因爲它有一點點時間才能成爲評論。

首先,您的鏈接似乎指向localhost:8080/about,而不是​​,這可能就是爲什麼谷歌沒有索引它的原因。

其次,這是我用pushState的URL和谷歌AJAX爬行經驗:

我的經驗是,阿賈克斯與pushState的提供的網址抓取不同的是由谷歌比hashbang的URL處理一點。由於谷歌不會知道你的url是pushstate url(因爲它看起來就像一個普通的url),所以你需要爲你所有的頁面添加<meta name="fragment" content="!">,而不僅僅是「root」頁面。谷歌似乎並不知道這些頁面是同一個應用程序的一部分,因此它將每個頁面視爲一個單獨的Ajax應用程序。因此,Google機器人將永遠不會在_escaped_fragment_之內創建導航結構,如_escaped_fragment_=/about,因爲它使用hashbang url(#!/about)。相反,它會要求/about?_escaped_fragment_=(你已經設置好了)。這適用於所有的「深層鏈接」。谷歌將始終要求/thelink?_escaped_fragment_=而不是/?_escaped_fragment_=/thelink

但正如最初所說,它不適用於您的原因可能是因爲您在_escaped_fragment_生成的html中有localhost:8080網址。

+0

您的答案必須在google文檔中 – 2013-05-11 04:27:18

相關問題