實戰設計robots.txt與標籤
文/ 黃天賜 (記者) 2006-02-23
搜尋引擎的網路蜘蛛看似無孔不入,但它其實也是知所進退,有它的運作禮貌。設定適當的robots.txt與,對於網站和搜尋引擎溝通相當大的幫助
網路蜘蛛並非不分青紅皂白一網打盡,只要適當規劃robots.txt與<META>標籤,企業網站就能安心與搜尋引擎和解共生。
搜尋引擎的網路蜘蛛看似無孔不入,但它其實也是知所進退,有它的運作禮貌。當網路蜘蛛到達網站的第一個動作,便是找尋並讀取robots.txt檔,並依照網站設定的限制再向下搜尋內容。讀取網頁時,位於網頁<HEAD></HEAD>之間的<META>標籤如果設有robot屬性,它也會依照指示來行動。因此,設定適當的robots.txt與<META>,對於網站和搜尋引擎溝通相當大的幫助。
建立告知禁止存取範圍的robots.txt
和網路蜘蛛溝通的辨法,是建立一個名為robots.txt的文字檔,內容陳述哪些目錄、檔案不希望被存取,再將這個檔案放置到網頁伺服器上。
robots.txt的內容由兩個部份組成,分別是user-agent與disallow。前者定義這個網站規則對哪些網路蜘蛛程式發揮作用,後者則是定義哪些目錄或檔案不想被搜尋。限制所有網路蜘蛛存取,並含及所有內容的robots.txt的寫法如下:
robots.txt撰寫範例1
# 全部限制存取的robots.txt
user-agent: *
disallow: /
第1行是註解欄,用#字符號標示,可以讓管理者加註。第2行則用*號表示對所有搜尋引擎的網路蜘蛛通用,第3行則告知程式「”/”」代表的根目錄以下的內容都不允許有存取動作,換言之,搜尋引擎便會忽略整個網站。
不過這種「大隱於市」的做法,通常不是企業所需,畢竟建置網站的目的是在與廣大的網路接用者增加接觸機會,禁絕所有網站內容和網路蜘蛛擷取,形同關上大門拒絕往來。就企業而言,設定目錄與資料類型管控,才能達到最佳效益。
robots.txt撰寫範例2
user-agent: *
disallow: /cig-bin
disallow:/members/data
disallow:/*.pdf$
在範例2中,第1行宣告下面的規則適用於所有網路蜘蛛,而第2行則是禁止存取cgi-bin目錄中的資訊,第3行告知members目錄底下的data目錄不希望被擷取,但members目錄底下如有其他目錄存在則不受影響。第4行宣告所有PDF格式的檔案禁止擷取,必須注意的是附檔名後面要加上「$」符號。如此就可以避免資料遭不當下載,被搜尋引擎作頁面庫存而被公開。禁止檔案格式的方式也可以限定在特定的目錄,以增加使用上的彈性。
另外,user-agent也可以針對個別的搜尋引擎作限定,舉例來說,可以用「user-agent:Googlebot」來阻絕Google的網路蜘蛛。
robots.txt撰寫範例3
user-agent: Googlebot-image
disallow:/*.jpg$
user-agent: *
disallow: /cig-bin
disallow:/members/data
disallow:/*.pdf$
範例3中,第1行是Google搜尋圖片的網路蜘蛛名稱,和第2行結合的結果是禁止Google搜尋圖片去抓取網站中所有jpg格式的圖片,而第3行以下則是套用範例2的限制,讓其他搜尋引擎不能存取cgi-bin、member/data和PDF格式的檔案。
robots.txt彈性而簡單的設定,讓網站管理者在內容控管上增加許多自主性,也避免了被搜尋引擎庫存網站敏感資訊的風險。不過如果有需要針對個別頁面做設定的需求,利用HTML的<META>語法,會比robots.txt要來得適用。
使用<META>標記宣告禁止索引與連結
除了可以使用robots.txt的方式來調整之外,另一種方式是以HTML的<META>標記語法做設定,告知網路蜘蛛不要產生網頁的索引及庫存。
<META>語法範例一
<HTML>
<HEAD>
<META NAME="robots" CONTENT="noindex,nofollow">
<TITLE>...</TITLE>
</HEAD>
<BODY>...
將上述<META>起始的語法放置在網頁<HEAD> 區段中,這個頁面就不會搜尋到,NAME的部份使用「robots」即可阻擋所有的網路蜘蛛,也可以指定特定名稱,例如Googlebot或Yahoo!Slurp,就可阻擋特定網站蜘蛛。CONTENT可指定noindex、nofollow等兩個屬性,noindex意指不可對本頁進行索引動作,nofollow指的是否可使用本頁的超連結再延伸出去擷取搜尋。
另外,Google提供更細項的調整設定,可以移除片段內容和快取網頁,片段內容是指出現在Google搜尋結果的網頁標題下的文字摘錄,通常描述網頁的內容。如要移除這段文字,則可以利用下方語法移除:
<META>語法範例二
<META NAME="Googlebot" CONTENT="nosnippet">
必須注意的是,移除片段內容同時也會移除快取的網頁。至於移除快取的網頁則是讓Google不會顯示快取的連結:
<META>語法範例三
<META NAME="Googlebot" CONTENT="noarchive">
若也想讓其他的搜尋引擎找不到,則將name指定的部份改成robots即可。而這個部份只能移除網頁快取的連結,但不會影響索引及片段內容。只要善加利用robots.txt與<META>語法,就可讓網站資訊安全更加穩固。文⊙黃天賜