9月份,Google站長博客發表了一篇討論動態網址還是靜態網址的帖子,卻顛覆了這個說法。在這篇帖子裡,Google明確建議不要將動態URL靜態化,而是保留那種長長的,帶問號參數的動態URL。Google黑板報和中文網站管理員博客都做了翻譯和轉載,大家可以查看。
從留言和我看到的博客來看,有不少人還真覺得有道理,准備按照Google說的做了。
這是比較少見的,我十分不以為然的,Google給的SEO建議。
Google的帖子有幾個要點。
一是Google完全有能力抓取動態網址,多少個問號也不是問題。這一點基本靠譜。
第二,動態網址更有助於Google蜘蛛讀懂URL含義,並進行鑒別,因為網址中的參數有提示性。比如Google舉了這個例子:
www.example.com/article/bin/answer.foo?language=en&answer=3&sid=98971298178906&query=URL
URL裡的參數都有助於Google理解URL及網頁內容。比如language後面跟的參數是提示語言,answer後面跟的是文章編號,sid後面的肯定是session ID。其他常用的包括color後面跟的參數指的是顏色,size後面跟的參數是尺寸等。有了這些參數的幫助,Google更容易理解網頁。
而將網址靜態化後,這些參數的意義通常就變得不明顯了。比如這個URL:
www.example.com/shoes/red/7/12/men/index.html
就可能使Google不知道哪個是產品序列號,哪個是尺寸等。
第三,網址靜態化很容易弄錯,那就更得不償失了。比如通常動態網址的參數調換順序,所得到的頁面其實是相同的,比如這兩個網址很可能就是同一個頁面:
www.example.com/article/bin/answer.foo?language=en&answer=3
www.example.com/article/bin/answer.foo?answer=3&language=en
保留動態網址,Google還比較容易明白這是一樣的網頁。而經過靜態化後,這樣兩個網址Google就不容易判斷是不是同一個頁面,從而可能引起復制內容:
www.example.com/shoes/men/7/red/index.html
www.example.com/shoes/red/7/men/index.html
再一個容易搞錯的是session ID,也可能被靜態化進URL:
www.example.com/article/bin/answer.foo/en/3/98971298178906/URL
這樣網站將產生大量URL不同,但其實內容相同的頁面。
所以,Google建議不要靜態化URL。
但是我還是建議要靜態化。原因是:
首先,Google給的建議是從Google自己出發,而沒有考慮其他搜索引擎。Google抓取動態網址沒問題,並不意味著雅虎,百度,微軟等等就都沒問題。尤其是中文網站,Google不是老大。
第二,Google所說靜態化的壞處,是基於靜態化做得不正確的假設上。問題是要做靜態化就得做正確,假設會做錯是沒有什麼道理的。有幾個人會靜態化網址時還把session ID放進去呢?
第三,Google的建議是典型的有利於自己,而不利於用戶。帶有問號參數的URL可能有助於Google讀懂內容,但是顯然非常不利於用戶在一撇之下理解網站結構及大致內容。看看這兩個網址哪個更清晰,更容易讀懂,更有可能被點擊呢?
www.example.com/product/bin/answer.foo?language=en&productID=3&sid=98971298178906&cat=6198&&query=URL
www.example.com/product/men/shoes/index.html
顯然是第二個。
而且長的動態網址,也不利於記憶,不利於在郵件、社會化網站等地方抄給別人。
總之,雖然Google這麼明確的建議保留動態網址,我還是建議大家正相反,盡量將URL靜態化。