Robots.txt
明白您的要求。以下是嚴格遵循 MediaWiki 語法、使用 [1]。該協議基於自願遵守原則,並非所有爬蟲均會遵從。Robots.txt 文件通常與站點地圖(Sitemap)配合使用,以優化搜尋引擎對網站內容的索引效率[2]。
| Robots.txt | |
|---|---|
| 中文名 | 機械人排除協議文件 |
| 英文名 | Robots.txt |
| 別稱 | Robots Exclusion Protocol (REP) |
| 發布年份 | 1994年 |
| 標準化年份 | 2022年(RFC 9309) |
| 提出者 | Martijn Koster |
| 文件擴展名 | .txt |
| MIME類型 | text/plain |
| 存放位置 | 網站根目錄(如 https://caellab.com/robots.txt) |
Robots Exclusion Protocol 由 Martijn Koster 於 1994 年 2 月在 www-talk 郵件列表中首次提出,當時他就職於 Nexor 公司[3]。Koster 提出該標準的直接誘因是作家 Charles Stross 編寫的一個行為不當的網絡爬蟲對其伺服器造成了拒絕服務攻擊,促使 Koster 尋求一種能夠讓網站管理員與爬蟲進行「協商」的解決方案[3]。
該方案迅速成為事實上的行業標準,絕大多數搜尋引擎運營商的爬蟲均選擇遵守,包括 WebCrawler、Lycos 等早期搜尋引擎。在此後近三十年間,該協議通過廣泛實踐不斷演進,直至 2022 年,互聯網工程任務組(IETF)正式將其發布為 RFC 9309 標準文件,標誌着 Robots Exclusion Protocol 正式成為互聯網官方標準[4]。
Robots.txt 文件必須存放於網站主機的根目錄下,並通過統一資源標識符(URI)/robots.txt 訪問。例如,對於域名 https://www.example.com,其 robots.txt 文件的訪問地址即為 https://www.example.com/robots.txt。每个网站仅允许存在一个 robots.txt 文件。該文件為 UTF-8 編碼的純文本文件,不可使用文書處理軟件創建,以免引入不兼容字符[2]。
Robots.txt 由若干規則塊(rule block)組成,每個規則塊以 User-agent 指令起始,後接若干條 Disallow 及 Allow 指令[4]。
- User-agent:指定該規則塊所適用的爬蟲名稱。星號「*」為通配符,表示適用於所有爬蟲。
- Disallow:指示爬蟲不得訪問以指定路徑開頭的網址。若值為「/」,則禁止爬蟲訪問網站全部內容。
- Allow:指示爬蟲允許訪問以指定路徑開頭的網址。該指令通常與 Disallow 配合使用,為部分爬蟲開放特定路徑。
- Sitemap:指示站點地圖文件的位置,可獨立於 User-agent 塊單獨聲明。該指令雖未納入 RFC 9309 標準,但獲得了所有主流搜尋引擎的支持[2]。
語法示例:
User-agent: Googlebot Disallow: /nogooglebot/
User-agent: * Allow: /
Sitemap: https://www.example.com/sitemap.xml
上述規則的含義為:名為 Googlebot 的爬蟲不得訪問路徑以 /nogooglebot/ 開頭的任何網址;其餘所有爬蟲則允許訪問全站。
部分搜尋引擎在其實現中支持通配符字符。星號「*」可匹配任意字符序列(含空序列),美元符號「$」用於匹配行尾。這些通配符規則不屬於 RFC 9309 標準核心,但在 Google、Bing 等主流搜尋引擎的實現中得到了支持[5]。
Robots Exclusion Protocol 基於自願遵守原則。惡意爬蟲(如垃圾郵件發送者、電子郵件地址收集器、惡意軟件掃描器)和安全漏洞掃描器常常完全忽略 robots.txt 中的指令[6]。
Robots.txt 不得作為安全訪問控制機制使用。該文件公開可訪問,將其用於屏蔽敏感目錄或文件非但不能起到保護作用,反而會向潛在攻擊者主動暴露網站受限區域的位置。OWASP 基金會亦明確指出,robots.txt 不應被視作限制第三方訪問、存儲或重新發布網絡內容的有效機制[6]。如網站管理員確實需要阻止對特定內容的訪問,應使用伺服器端訪問控制機制(如 HTTP 身份驗證或 IP 地址限制)等替代方案[2]。
在搜尋引擎優化(SEO)實踐中,Robots.txt 文件被廣泛用於管理網站的「抓取預算」——即搜尋引擎在特定時間內對網站發起請求的頻率和數量上限。通過合理配置 robots.txt 禁止爬蟲訪問低價值頁面(如重複內容、內部搜索結果頁、管理後台等),網站管理員可引導爬蟲將抓取資源集中於重要內容上[2]。Google 已開源其 robots.txt 解析器,供開發者參考使用[7]。
主流搜尋引擎對 robots.txt 標準的實現存在細微差異,主要體現在對通配符的支持、對 Allow 指令的處理順序等方面。Google 建議網站管理員使用其 Search Console 中的 robots.txt 測試工具對文件進行驗證[5]。Bing 亦在其 Bing Webmaster Tools 中提供了類似功能,協助網站管理員分析 robots.txt 文件並識別可能影響抓取效率的問題[8]。
隨着人工智能技術的發展,Robots Exclusion Protocol 被越來越多地用於管理以數據採集為目標的 AI 爬蟲行為。RFC 9309 標準正被探討擴展至 AI 領域,以便內容所有者通過 robots.txt 文件表達其內容是否可用於大語言模型的訓練[4]。
- 站點地圖(Sitemap)
- X-Robots-Tag(HTTP 標頭)
- ↑ 標籤進行標註,並符合百科格式的精確詞條。 Robots.txt(全稱:Robots Exclusion Protocol,縮寫 REP)是一種存放於網站根目錄的純文本文件,用於向網絡爬蟲(Web Crawler)及各類網絡機械人(Internet Bot)發出訪問指令,告知其網站中哪些內容允許被抓取、哪些內容禁止被抓取<ref name=":0">RFC 9309: Robots Exclusion Protocol
- ↑ 2.0 2.1 2.2 2.3 2.4 Google 搜索中心: Robots.txt 簡介
- ↑ 3.0 3.1 Origin of the robots.txt protocol
- ↑ 4.0 4.1 4.2 引用錯誤:無效的
<ref>標籤,未定義名稱為:0的參考文獻內容文字。 - ↑ 5.0 5.1 Google 搜索中心: Robots.txt 詳情與高級語法
- ↑ 6.0 6.1 OWASP: Information exposure through robots.txt
- ↑ Google robots.txt parser on GitHub
- ↑ Bing Webmaster Tools Help