robots.txt 檔案是管理搜尋引擎爬蟲與網站互動的關鍵元件,它具有以下幾個主要功能:
1) 指導爬蟲行為 robots.txt 檔案主要指示網路爬蟲(例如來自 Google 等搜尋引擎的爬蟲)可以存取和索引網站的哪些部分,透過適用於不同爬蟲的「User-agent」指令,和哪些 URL 不應被抓取的「Disallow」規則,來實現爬蟲的規範。
2) 降低伺服器負載 透過限制爬蟲可以存取的網站區域,robots.txt 檔案有助於管理伺服器負載,這對於大型網站或頁面眾多的網站尤其重要,因為不受限制的抓取可能會使伺服器不堪重負,從而導致效能問題。
3) 防止索引膨脹 使用 robots.txt 可以阻止搜尋引擎索引低價值或重複內容,這些內容會使搜尋結果變得雜亂,並降低網站索引頁面的整體品質,這不利於保持乾淨且相關的搜尋排名。
我以本網站的robots.txt為例子加以解釋,若你到https://redmadmedia.online/robots.txt,你會看到以下這段:
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /accounts/
Disallow: /static/admin/
Disallow: /media/
Crawl-delay: 1
解䆁: User-agent: * — 適用於所有爬蟲 Allow: / — 允許爬取網站根目錄(整個網站) Disallow — 禁止爬取以下目錄: /admin/ — 後台管理頁面 /accounts/ — 帳戶相關頁面 /static/admin/ — 後台靜態資源 /media/ — 媒體檔案資料夾 Crawl-delay: 1 — 每次爬取間隔 1 秒,避免伺服器負擔過重。
另一段是:
# Block bad bots
User-agent: MJ12bot
Disallow: /
User-agent: AhrefsBot
Disallow: /
這兩個是 SEO 分析工具的爬蟲,我選擇完全封鎖它們,因為它們爬取頻率太高,亦不想被這些工具分析。
跟著以下一段是針對 Semrush 的爬蟲設定 10 秒的爬取間隔,比一般爬蟲慢十倍:
User-agent: SemrushBot
Crawl-delay: 10
最後告訴搜尋引擎網站地圖(Sitemap)的位置,方便爬蟲發現網站所有頁面:
Sitemap: https://redmadmedia.online/sitemap.xml
要注意的是,雖然 robots.txt 可以阻止爬蟲進入某些頁面,但它並不能提供安全保障,該檔案是公開可存取的,這意味著不應透過它洩露敏感資訊。為了真正確保安全,應採用其他方法,例如密碼保護或使用元標籤來阻止索引。
再者,大多數信譽良好的爬蟲都會遵守 robots.txt 中設定的指令,但並非所有爬蟲都會遵守這些規則。因此,不建議僅依賴此文件來保護隱私或安全。
此外,即使某個頁面在 robots.txt 檔案中被禁止抓取,如果其他網站連結到該頁面,它仍然可能被索引。
總的來說,robots.txt 檔案是網站管理員控制爬蟲存取、優化伺服器效能以及有效管理網站內容索引的重要工具。但是,在使用 robots.txt 檔案時,應充分了解其局限性,而不應將其作為保護敏感資訊的唯一手段。