搜索引擎通過爬蟲(Spider)程序自動抓取互聯(lián)網(wǎng)網(wǎng)頁信息,以構(gòu)建索引庫。為保護(hù)網(wǎng)站內(nèi)容的隱私性或避免敏感信息被公開,網(wǎng)站管理員可通過技術(shù)手段限制搜索引擎的收錄范圍。其中,robots.txt文件與HTML元標(biāo)記是兩種核心控制方式,前者針對整體網(wǎng)站的抓取規(guī)則,后者則可細(xì)化到頁面或鏈接級別的限制。

robots.txt是網(wǎng)站根目錄下的純文本文件,作為搜索引擎爬蟲訪問網(wǎng)站的“指令清單”。當(dāng)爬蟲首次訪問一個網(wǎng)站時,會優(yōu)先檢查其根目錄是否存在該文件(如http://www.example.com/robots.txt),并根據(jù)文件內(nèi)容確定抓取范圍。該文件通過聲明不希望被收錄的目錄或頁面路徑,實現(xiàn)選擇性抓取。值得注意的是,若網(wǎng)站內(nèi)容均希望被收錄,則無需創(chuàng)建robots.txt文件,避免不必要的限制。
該文件的放置位置具有嚴(yán)格規(guī)范,必須位于網(wǎng)站根目錄下。例如,對于域名http://www.w3.org,其robots.txt的實際路徑為http://www.w3.org/robots.txt。爬蟲通過該路徑獲取指令,若文件不存在或為空,則默認(rèn)允許抓取所有內(nèi)容。
部分用戶設(shè)置robots.txt后,仍發(fā)現(xiàn)禁止收錄的頁面出現(xiàn)在搜索結(jié)果中,這通常源于外部鏈接的影響。若其他網(wǎng)站鏈接了robots.txt中聲明的禁止收錄頁面,搜索引擎可能根據(jù)外部鏈接的錨文本信息生成摘要,但不會抓取頁面實際內(nèi)容。此時,頁面雖在搜索結(jié)果中顯示,但內(nèi)容不會被索引,僅展示外部描述。
除robots.txt外,HTML元標(biāo)記可實現(xiàn)更細(xì)粒度的收錄管理。若需禁止搜索引擎跟蹤頁面鏈接且不傳遞權(quán)重,可在頁面``部分添加``;針對特定鏈接,可直接在``標(biāo)簽中添加`rel="nofollow"`屬性(如`sign in`)。若僅需限制百度爬蟲,可使用``實現(xiàn)差異化控制。
若需禁止搜索引擎顯示網(wǎng)頁快照但允許索引,可使用``;針對百度快照,則可設(shè)置為``。需注意,該指令僅禁止快照顯示,頁面仍會被索引并顯示摘要。
針對百度圖片搜索的收錄需求,可通過robots.txt精準(zhǔn)控制。例如,禁止Baiduspider抓取所有圖片,可設(shè)置`Disallow:/.jpg$`、`Disallow:/.jpeg$`等;僅允許特定格式圖片(如gif),則可結(jié)合`Allow`與`Disallow`指令實現(xiàn)。
robots.txt文件由一條或多條記錄組成,記錄間以空行分隔,每條記錄包含`User-agent`、`Disallow`、`Allow`三個核心字段:
- User-agent:指定受指令約束的爬蟲名稱,值為``時表示對所有爬蟲生效,一條記錄中僅能出現(xiàn)一次。
- Disallow:聲明禁止抓取的URL路徑,可為完整路徑或前綴(如`Disallow:/help`禁止/help及/help/下的所有頁面)。若值為空,則允許所有訪問。
- Allow:聲明允許抓取的URL路徑,常與`Disallow`配合使用,實現(xiàn)“允許部分、禁止其余”的效果。
指令順序至關(guān)重要,爬蟲按第一條匹配的`Allow`或`Disallow`規(guī)則執(zhí)行。支持通配符``(匹配任意字符)和`$`(匹配行尾),如`Disallow:/cgi-bin/.htm`禁止訪問/cgi-bin/目錄下所有.htm文件。
- 禁止所有搜索引擎訪問:`User-agent: Disallow: /`
- 僅允許Baiduspider訪問:`User-agent: Baiduspider Disallow: User-agent: Disallow: /`
- 禁止抓取動態(tài)頁面:`User-agent: Disallow: /?`
通過合理配置robots.txt與元標(biāo)記,網(wǎng)站可有效管理搜索引擎的收錄行為,平衡內(nèi)容曝光與隱私保護(hù)需求。