2012年2月25日 星期六

用Robots.txt來和搜尋機器人打交道

喜歡亂逛的機器人

幾天前的:「主機商客戶資料外洩事件」似乎沒有後續的消息,不過可以確定的是Google在第二天一早就把整個快取網頁中的相關資料都清除了,這個事件反應了兩個不容忽視的事實:

  1. Googlebot是一個很厲害的東西,只要你一不小心就有可能被它挖到不該公開的資料。
  2. 由於網管人員的一個小疏失,就可能造成公司的重大損失。
所以只要你有網站,不管是用什麼程式架設的,你就應該好好地管一下Googlebot在你家的行動,它雖然很厲害但是也是很聽話的,只要你好好跟它溝通一下,就不會對你的網站造成危害。

什麼是Googlebot

Google機器人(Googlebot)有好幾種名稱,有人叫它「爬蟲(Crawler)」,也有人叫它「蜘蛛(Spider)」,不過它既不是機器人,也不是爬蟲,更不是蜘蛛,而是Google用來檢索你的網頁的一種「程式」,這個程式會主動到你的網站,然後分析你的網站資料並且將資料傳回到Google的搜尋資料庫中,當有人在Google的搜尋引擎輸入「關鍵字」搜尋時,就是從Googlebot所取回的資料中找出最適合的顯示在搜尋結果頁面(SERP),所以就你的網站一定要善待它,萬一它把你的網站列為「拒絕往來戶」那可是一件最糟的事。
為了要討好Googlebot,你的部落格最好像高登之前教大家的:「向Google提交Sitemap」的方法提交一份網站地圖如Googlebot作參考,這樣子它才會樂於到你家逛逛。
但是這一隻「怪獸」很喜歡在你家到處亂逛,所以為了要限制Googlebot的行動,Google貼心地提出了「Robots.txt」這樣子的解決方案,讓Googlebot在你家真的就會乖乖聽話,而不再到處惹禍!

Robots.txt的用途

Robots.txt是一個提供給搜尋引擎機器人Bot參考的檔案,這個檔案要放在網站的「根目錄」,一般設定好了就很少動它。你可以在你的電腦編輯這個檔案再上傳到網站就可以了,裡面主要是記載網站檢索的容許和限制項目。
這個協定雖然是Google訂的,但是其他搜尋引擎也大都遵循這一個模式,當然你也可以不設Robots.txt讓搜尋引擎自己找(如果沒有什麼不能見人的資料的話)。
我們就來看一下怎麼設這個Robots.txt檔案。

Robots.txt語法

Robots.txt裡面可以有幾個指令可以用:
  • User-agent:指定檢索程式的種類。
  • Allow:允許檢索的項目。
  • Disallow:禁止檢索的項目。
  • $:從後面往前的萬用字元,用來指定檔案類型用的。
  • *:從前面往後的萬用字元,用來指定目錄或檔名用的。
  • Sitemap:用來指定Sitemap的名稱。
我們來看一下最常見的Robots.txt設定像這樣:
User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Disallow: /trackback
Disallow: /feed
Disallow: /comments
Disallow: /category
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Allow: /wp-content/uploads
第一行的User-agent是指定對所有的Bot程式都有效
接下來的一連串Disallow就是禁止檢索的目錄,那為為什麼要禁止檢索這些目錄呢?有二個目的:
  1. 這些目錄裡在跟你網站內容無關的東西,或是有隱私的資料不希望被檢索,前面所提到的主機商案例應該就是網管人員沒有設該管理後台目錄的禁止檢索。
  2. 為了避免相同的網頁被重覆檢索,例如「分類文章」和「彙整文章」等。
最後面的Allow則是允許檢索該目錄,如果有Disallow掉的目錄下面有要允許檢索的就要加Allow來設除外條件。

什麼網站可以設Robots.txt

如果你是放在BSP的話那就免了吧!所有的BSP(包括Blogger)都不讓你上傳檔案,所以就只能看該BSP的網管,因此最好的作法是不要放任何不能曝光的資料在網站上才是上上之策。
如果是自架的網站那就一定可以設Robots.txt,至於怎麼設就請你自己找一下資料了,如果你是用WordPress架站的話,上面的設定值應該就夠用了。
如果覺得還不夠的話,請看一下別人的建議,不過提醒你每一個網站都要針對自己的狀況來設,像我的網站是用WordPress的預設網址結構,就不能有禁止「?」的檢索設定,這樣子所有的文章都檢索不到了!

沒有留言:

張貼留言