2011-06-06 33 views
14

我使用jQuery從json請求中檢索數據庫中的內容。然後它將HTML中的通配符(如%title%)替換爲實際內容。這很好,這樣我就可以在數據庫中保留我的多語言文本,但Googlebot只能看到通配符,而不是實際的內容。我知道Googlebot會看到沒有javascript的頁面,但是有沒有辦法處理這個問題?謝謝!Googlebot沒有看到jquery生成的內容

回答

4

您應該在Google上給this document進行徹底的閱讀。

它討論瞭如何使Googlebot的索引:

  • 網頁,這取決於在URL變化#hashfragment值含量的變化。
  • 頁面內容在加載後立即發生變化,但本身缺少任何特殊的#hashfragment

總之,你看加入<meta name="fragment" content="!">如「第3步」中討論,並得到所有提供回所有的內容在一次回答關於服務器端特殊要求,你的客戶否則代碼將在頁面加載後生成。這些特殊請求實際上是URL中的?_escaped_fragment_=...的請求,向服務器指示它應該將所有最終演示文稿預先烘焙(我的話)爲Googlebot的單個響應。這就是說,既然你會爲這個特殊情況輸出填充內容的努力,你可能會更好的在你的一般情況下這樣做(避免需要處理Google的_escaped_fragment_請求),與也許仍然是在頁面加載後如果需要的話換出標記的方式(例如通過使用具有特定classid的跨度來識別它們)。

+0

我已經使用PHP檢索數據,所以對於翻譯,我現在刪除了jQuery,讓PHP做w ildcard填充。乾杯! – John 2011-06-07 12:54:35

0

Googlebot顯然不會渲染它下載的頁面。這可能與其他搜索漫遊器也使用相同的行爲。

你需要使用服務器端腳本或編譯解決方案(有很多選擇,包括PHP,ASP.NET等)。通過這種方式,您仍然可以保持動態和國際化功能,Googlebot可以按照您的預期方式看到您的頁面。或者至少爲基本頁面屬性(如Googlebot正在評估的標題)執行此操作,並將jQuery更新爲頁面中不重要的部分。 (說實話,使用jQuery替換頁面下載後的令牌可能不是最有效的方式,特別是當服務器端腳本如此簡單和自由時)。

2

谷歌似乎有在這個答案的時間接近完全或完全功能的JavaScript爬行機器人:

+0

謝謝! '在Google的網站站長工具中正確呈現':您的意思是可以查看GoogleBot的頁面呈現方式嗎?準確地使用哪個工具?其他評論:我的網站的主要內容加載1)谷歌地圖在頁面上呈現2)AJAX調用導入內容。你認爲這會起作用嗎,或者你認爲GoogleBot不會等待1)和2),並且會看到我的網站爲空? – Basj 2016-05-18 21:45:00

+0

我已經使用谷歌網站管理員工具,它會捕獲你的網站的樣子,並呈現給你。您必須創建一個帳戶並確認您擁有該網站。它應該等待地圖加載。一旦你有一個帳戶,你可以玩網站管理員工具。 – BatteryAcid 2016-05-18 22:28:55

相關問題