摘要:動態網站豐富了網站的功能,但是對於搜索引擎來說,情況就不同了,動態頁面是在用戶“輸入內容”或者進行“選擇”時動態生成的,但是搜索引擎的“搜索機器人”無法“輸入”和“選擇”。另外,搜索引擎要避免“搜索機器人陷阱(spider traps)”的腳本錯誤。
一、動態網站的出現和優勢
最早互聯網出現時,站點內容都是以HTML靜態頁面形式存放在服務器上,訪問者瀏覽到的頁面都是這些實際存在的靜態頁面。隨著技術的發展,特別是數據庫和腳本技術PERL、ASP、PHP和JSP的發展,越來越多的站點都開始採取動態的頁面發布手段。比如,我們在GOOGLE.COM上搜索一個內容,得到的搜索結果頁面文件"本身"在GOOGLE服務器上並不存在,而是通過程序在我們輸入搜索內容時調用後台數據庫實時生成的,也就是說,這些結果頁面是動態的。
靜態頁面的站點只涉及文件的傳輸問題,而動態站點則復雜得多,用戶和站點之間出現大量的交互,網站不再僅僅是內容的發布,而是成為了一種"應用(Application)" ,是軟件業向互聯網上的擴張,從軟件的角度看,動態站點是邏輯應用層和數據層的分離,數據庫負責站點數據的存儲管理,而ASP、PHP、JSP等負責處理站點的邏輯應用。這樣做的好處除了增加很多交互功能外,更重要的是站點的維護、更新和升級都方便了許多。可以說,沒有動態網站技術,目前互聯網上的這些超大型站點就不可能出現。
二、搜索引擎抓取動態網站頁面時面臨的問題
從用戶的角度看,動態網站非常不錯,豐富了站點的功能,但是對於搜索引擎來說,情況就不同了。 (關於搜索引擎和分類目錄的區別,以及搜索引擎的工作原理,請"了解搜索引擎")
根本的問題在於"輸入"和"選擇",動態頁面是在用戶"輸入內容"或者進行"選擇"時動態生成的,但是搜索引擎的"搜索機器人"無法"輸入"和"選擇"。比如我們要在噹噹書店站點查看馮英健的《網絡營銷基礎與實踐》一書,介紹頁面是動態生成的,URL地址是:www.dangdang.com/product_detail/product_detail.asp?product_id=493698 這裡在"? "後面的product_id參數值需要我們輸入的,"搜索機器人"可以通過鏈接找到www.dangdang.com/product_detail/product_detail.asp頁面,但是它無法輸入"?"後面的product_id參數值,從而無法抓取這個頁面文件。
另外,對於通過鏈接達到這種帶"?"的頁面,技術上搜索引擎可以抓取,但是一般情況下搜索引擎選擇不去抓取,這是為了避免一種叫"搜索機器人陷阱(spider traps )"的腳本錯誤,這種錯誤會讓搜索機器人進行無限循環的抓取,無法退出而浪費時間。
三、動態網站的搜索引擎策略
動態網站要被搜索引擎抓取,可以採用內容髮布系統軟件將動態站點轉化成靜態頁面,這種辦法對於頁面發布後變動少的站點比較合適,比如一些新聞類的站點(如新浪的新聞中心: news.sina.com.cn/)。
一般的動態網站可以通過下面的辦法讓搜索引擎抓取:首先,我們要讓動態頁面的URL地址中沒有"?",讓動態頁面看上去象"靜態頁面"。看看下面這個頁面www.amazon.com/exec/obidos/tg/detail/-/043935806X/,這明顯是一個動態頁面,但是URL地址看上去卻像"靜態頁面"。針對不同的動態技術可以採用下面技術實現:
•對於採用ASP技術的動態頁面Exception Digital公司提供一種工具叫著XQASP(www.xde.net/products/product_xqasp.htm)可以將"?"替換為"/"。
•對於採用ColdFusion技術的站點,需要重新配置服務器上的ColdFusion,用"/"代替"?"將參數傳輸到URL,更詳細的信息請見coldfusion.com/站點。
•對於使用Apache服務器的站點,可以使用rewrite模塊將帶參數的URL地址轉換成搜索引擎支持的形式,該模塊mod_rewrite在Apache服務器中不是缺省安裝的,詳細的信息請見httpd. apache.org/docs/mod/mod_rewrite.html。
對於其他的動態技術也能找到對應的方法改變URL的形式。
然後,要創建一些靜態頁面指向這些動態頁面(以改變過的URL鏈接)。前面說過,搜索引擎機器人並不會自己"輸入"參數,所以要讓上面這些動態頁面被搜索引擎抓取,我們還需要告訴機器人這些頁面的地址(也就是參數)。我們可以創建一些靜態的頁面,一般在網絡營銷中稱? "gateway page"(入口頁面),這些頁面上有大量指向這些動態頁面的鏈接。
將這些入口頁面的地址提交到搜索引擎,這些頁面和鏈接的動態頁面(改變過URL形式)就能都被搜索引擎抓取了。
四、搜索引擎對動態網站支持的改進
在我們調整動態站點適應搜索引擎的同時,搜索引擎也在發展。到目前為止,絕大多數的搜索引擎還不支持動態頁面的抓取,但是GOOGLE、HOTBOT等和國內的百度開始嘗試抓取動態網站頁面(包括? "?"的頁面),這就是我們現在在這些搜索引擎進行搜索時,結果中出現動態鏈接的原因。
這些搜索引擎抓取動態頁面時,為了避免"搜索機器人陷阱",都只抓取從靜態頁面(至少"看上去"是靜態的頁面)鏈接到的動態頁面,而從動態頁面鏈接出的動態頁面都不再抓取。
所以一個動態站點如果只針對上面這些搜索引擎,可以在上面小節介紹方法的基礎上簡化:只用創建一些入口頁面,鏈接很多動態頁面,然後將這些入口頁面遞交到這些搜索引擎就可以了。
對於直接使用動態的URL地址,請注意:
•文件URL中不要有Session Id,同時不要用ID作為參數名稱(特別是對於GOOGLE);
•參數越少越好,盡量不要超過2個;
•能在URL中不用參數盡量不要用,一些參數轉移到其他地方,這樣可以增加動態頁面被抓取的深度和數目。 (編選:麻吉小站)
文章定位: