用robots.txt跟爬蟲溝通
robots.txt 是什麼?跟搜尋引擎的爬蟲溝通的方式|天矽科技網頁設計
robots.txt是什麼?
robots.txt是放在網站根目錄下的文字檔案,它是用來跟搜尋引擎的爬蟲溝通的檔案,此檔案名稱應統一小寫,因系統中的URL是英文大小寫組成,較為敏感,為了與此區分或避免發生錯誤,robots.txt應為小寫。
使用robots.txt能告訴爬蟲,網站中哪些內容不必爬取、哪些內容可以爬取。
- 根目錄(Root Directory):
檔案系統的最上一級目錄,它是一個磁碟機的起首,沒有上一層。
以Windows作業系統舉例,打開「我的電腦」或「本機」,點擊本機磁碟 (C),這樣就進入了本機磁碟 (C)的根目錄,像這樣「C:\ABC\DEF\GHI」。
參考資料:
- 維基百科
- 路徑表示法
網站不想被收錄
robots.txt能告訴爬蟲「這個網站不必收錄」,不過自然搜尋(SEO)不是很重要嗎?為什麼要告訴爬蟲不必收錄這個網站?常見情況如下:
➤網站管理後台
網站後台掌管了編輯、新增、儲存與組織…等作業,還有網站開發時,設立的多媒體、購物車、特殊系統、會員系統、留言或是社群連結…等功能,這些都沒必要讓使用者從前台看到,因此不需要被爬蟲檢索並放上搜尋引擎。
➤特定資料夾內檔案
一樣和後台有關,我們希望被爬蟲檢索的檔案都是有內容與公開性的資訊,因此除了這些以外,後台使用的檔案沒有必要檢索。
➤測試網站
在架設網站時,為了與客戶一同檢測、討論或實際操作還沒上架的網站頁面,這時的網站還未正式完成,因為還在測試階段,不想要被搜尋引擎的爬蟲找到並檢索內容,此時就能用robots.txt來做排除。(建議搭配noindex來禁止Google搜尋建立索引)
robots.txt常見名詞
robots.txt的文件必須放在網站的根目錄裡面,像下方圖片。
網址位置:
http://你的網站網址.com/robots.txt
▲天矽科技的robots.txt畫面
上面有提到,robots.txt可以限制爬蟲要爬哪些網站,在了解怎麼限制它之前,我們可以先了解這三個最常見的名詞:User-Agent、Allow和Disallow。
- User-Agent:
是爬蟲的名稱,可以限制特定爬蟲,也可以不限制。 - Allow:
允許爬蟲爬取的資料夾及頁面。 - Disallow:
不允許爬蟲爬取的資料夾及頁面。
設定robots.txt控制爬蟲
現在,我們可以開始看看,要怎麼限制爬蟲?
允許所有爬蟲
這裡表示允許爬蟲爬取整個網站,如果沒有特別指定,爬蟲一樣會爬取整個網站,但我們還是可以指定並允許它。
User-agent: *
Disallow:
或
User-agent: *
Allow:/
允許特定爬蟲
這裡的name_spider要用真實名字代替,如Googlebot、Bingbot…等。
User-agent: name_spider
Allow:
攔截所有爬蟲
User-agent: *
Disallow: /
禁止所有爬蟲造訪特定目錄
User-agent: *
Disallow: /cgi-bin/
Disallow: /images/
Disallow: /tmp/
Disallow: /private/
禁止檢索特定目錄與其中內容
User-agent: *
Disallow: /calendar/
Disallow: /junk/
禁止壞爬蟲造訪特定目錄
這裡的Badbot要用真實名字代替。
User-agent: BadBot
Disallow: /private/
Badbot就是惡意機器人、壞爬蟲;據統計,2020年Bad Bot 佔所有網站流量的25.6%,壞壞的爬蟲對企業來說威脅極大,它能偽裝成人類進行互動,還有可能進一步執行各種惡意活動,如網路偷竊、交易詐欺、暴力破解登入、詐騙及垃圾郵件…等。看更多:2021最新Bad Bot報告揭露
禁止所有爬蟲造訪特定檔案類型
User-agent: *
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
禁止檢索特定圖片
此例為禁止檢索dogs.jpg圖片檔案。
User-agent: *
Disallow: /images/dogs.jpg
禁止檢索網站上的所有圖片
User-agent:*
Disallow: /
禁止檢索特定檔案類型
此例子為禁止.gif檔案。
User-agent: *
Disallow: /*.gif$
注意:
使用robots.txt禁止爬蟲進入及爬取的網站內容,仍有可能未經檢索、爬蟲到處亂跑,不小心將該網址編入索引,再加上,任何人都能查看的robots.txt的檔案,因此私人內容的位置就有可能因此曝光。
所以,若想要禁止存取私密的內容,不要只使用robots.txt,建議可加上適當的驗證機制。
資料來源:
➤ 維基百科
➤ Google建立 robots.txt 檔案
測試robots.txt檔案
要驗證自家網站有無robots.txt?直接在網站根目錄後面輸入robots.txt是最快的方式,像這樣:「https://www.你的網址.com/robots.txt」。
但如果不知道語法是否正確,我們也能利用Google提供的robots.txt的驗證頁 (下方工具)來檢測,如果頁面顯示0 errors就表示沒問題。
我們也可以在Google Search Console 中直接查看是否有錯誤的情況。
如果你想要用其他的檢測工具來測試也可以,如Bing Webmaster Tools。不過Google是目前最多使用者使用的搜尋引擎,因此大多都會以Google來解說。
延伸閱讀:
➤ Google Search Console是什麼?基本功能介紹篇