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