2010-11-16 13 views
0

我有一個ajax重的網站。我更新地址欄中的散列值,以便存儲上網歷史記錄 - 因此前進和後退按鈕仍然有效。例如,一個典型的使用情況是:阿賈克斯歷史對於SEO的作品

  • site.com/directory#sports/1
  • site.com/directory#sports/2
  • site.com/directory#sports/3
  • site.com/directory#movies/1
  • site.com/directory#movies/2

我相信這些哈希值是通過搜索引擎抓取忽略。散列之前具有相同路徑的所有鏈接都被同化。這對於搜索引擎優化來說是不好的,因爲一個特定的頁面不能編入索引。例如,我無法在Google上搜索「site.com sports」,並希望找到指向site.com/directory#sports/1的鏈接。那麼,我怎麼既保留Ajax的歷史,並有良好的搜索引擎優化?據我所知,哈希必須用來在ajax期間不重新加載頁面。

  • site.com/directory/sports/1
  • site.com/directory/sports/2

回答

1

搜索引擎通常需要一種方法來找到這些鏈接,而不使用ajax。如果您提供了一種方式來抓取複製您的ajax頁面的鏈接(site.com/directory#movies/2),那麼搜索引擎可以提取您的數據。

您可以通過創建帶有指向這些頁面的鏈接的導航頁面,或者爲您的站點創建一個sitemap.xml來解釋如何訪問這些頁面。

只要確保您的網站呈現的是site.com/directory#movies/2應直接點擊的位置,而不僅僅是site.com/directory。

+0

這真的沒有做到這一點的最好辦法。 – stefanw 2010-11-16 20:15:16

+0

如果您希望它可以在所有搜索引擎中工作,而不僅僅是Google,那麼您應該讓您的網站可以抓取。通過Ajax使您的網站可以被抓取是一種新技術,我不建議依靠它。 – wajiw 2010-11-16 20:22:13

+0

如何在不使用客戶端JavaScript的情況下呈現依賴於URL片段的內容?服務器從未看到片段! – stefanw 2010-11-17 10:50:16

0

如果你想關心搜索引擎優化和可訪問性,比你應該使用真正的URL作爲鏈接,並通過註冊事件監聽器(如onclick)添加AJAX功能。

通過這種方式,谷歌將通過鏈接看到內容,並禁用JS的人也是如此。 其他用戶將對動態內容和AJAX有完整的體驗。

又讀Google's AJAX recommendations