2009-07-23 96 views
6

我一直認爲AJAX驅動的內容對搜索引擎是不可見的。AJAX網站是否可以被搜索引擎抓取?

http://www.trustedsource.org/query/terra.cl

...如果:

例如,在這個網站中,主內容經由AJAX請求由瀏覽器加載的(即插入到通過XMLHttpRequest的DOM含量)您查看本頁面的網址爲Javascript disabled,主要內容區域爲空白。

但是,谷歌的緩存顯示了AJAX負荷後的全部內容:

http://74.125.155.132/search?q=cache:JqcT6EVDHBoJ:www.trustedsource.org/query/terra.cl+http://www.trustedsource.org/query/terra.cl&cd=1&hl=en&ct=clnk&gl=us

所以,很顯然,搜索引擎做的AJAX加載的內容編制索引。

問題:

  • 這是在搜索引擎中的新功能?網站上的大多數 帖子都表示你的 必須發佈重複的靜態HTML內容 以供搜索引擎找到 他們。
  • 是否有任何技巧可以獲得 由搜索引擎(除了創建 重複的靜態HTML內容)被搜索引擎檢索到的內容。
  • 如果從 單獨的子域加載,AJAX驅動的內容是否會被索引爲 ? 單獨的域如何?
+2

「...如果您在禁用Javascript的情況下查看此頁面,則主要內容區域爲空白。」不,它不是。實際上,它看起來非常混亂。 – NickFitz 2009-07-23 09:23:07

+0

你使用什麼瀏覽器?當我在禁用JavaScript的Firefox中訪問第一個鏈接時,我看到「terra.cl'的信息,然後是空白框。查看html源代碼我看到一個ID = query-content的空DIV,其中的AJAX內容將去。 – frankadelic 2009-07-23 13:31:36

回答

0

通常可以看到搜索引擎爬行程序可以立即加載的內容(比如在初始頁面加載之後使用次要HTTP請求)。但是,如果您的內容超出此範圍,則會在用戶操作後通過ajax加載,例如,點擊一個標籤或按鈕等,將不會被看到或索引。只有當它們具有「真正的」錨鏈接時,纔會看到或索引這些鏈接。

+1

Alex,你能否提供證據證明谷歌會在頁面加載時運行AJAX請求的頁面上運行AJAX請求? – Josh 2009-07-31 02:25:23

+1

@Josh,不,因爲這不是真的。 :) – bzlm 2012-01-18 20:05:49

1

AJAX驅動不被搜索引擎抓取(或者至少不是谷歌)。

你可以在谷歌緩存中看到頁面的原因是因爲在緩存中有整個頁面,包括.js文件。所以當你看到這個頁面時,你的瀏覽器使用google緩存的.js文件。

我認爲除了使用靜態的.html之外,沒有任何技巧可以讓它通過搜索引擎進行爬取。

編輯在四月27日2010:谷歌發佈了一種make AJAX crawlable

Google webmaster toolkit可能的幫助。

+2

我不認爲這是真的。如果我查看JavaScript禁用的Google緩存鏈接,我仍然會看到AJAX驅動的內容。 如果我查看源代碼,該內容就在html中。 – frankadelic 2009-07-23 17:28:27

1

搜索引擎可以運行索引Ajax內容所需的JavaScript,但這將是困難的和計算上的昂貴—我不知道有任何實際的操作。

寫得很好的網站,如果使用Ajax,根據progressive enhancement的原則使用它。任何關鍵功能仍然可用,無需運行JavaScript。

另一方面,使用JavaScript重新創建框架(並且不使用漸進式增強功能)的網站將面臨框架的所有常見問題,但會遇到搜索引擎不可見的交易孤立頁面。

+0

適合漸進式增強。 – 2009-07-23 06:42:16

1

我有NoScript安裝和活​​動。這兩個鏈接顯示相同的內容(+/-谷歌標題欄)。因此,Google緩存僅顯示靜態內容。

1

如果您使用的是類似jQuery選項卡的內容,即使您鏈接到同一目錄中的HTML文件,也會在沒有JavaScript的情況下很好地退化爲正常,並且這些選項卡變得像實際頁面一樣。這是醜陋的,但它的工作原理。你也可以設計這些版本的風格。