站点运营

站点运营:robots.txt 自查,別让一行規則挡住整站抓取

robots.txt 只有几行字,寫错却常常是整站級別的影响。這篇整理高频出错点:整站 Disallow、路径寫不全、Sitemap 地址寫错、通配符滥用,以及改完之後怎么驗證,並建议把這份文件纳入日常發布流程。

站点运营

站点运营:robots.txt 自查,別让一行規則挡住整站抓取

robots.txt 是站点和爬虫之間最简單的一份约定,放在根目錄,纯文本,几行字。它不复杂,但一旦寫错,影响面往往是整站級:轻則某些目錄長期不被訪問,重則整站抓取被拦在门外。這篇不聊花式寫法,只把容易出問题的几處挑出来,做成一份可以照着走的自查清單。

先明确它管什么、不管什么

robots.txt 只做一件事:告诉遵守协议的爬虫,哪些路径不建议抓。它不是訪問控制,也不是刪除工具。被 Disallow 的頁面如果已经被收錄,不會因為這一行字就消失;頁面也不该靠它保護隐私或敏感資料,那需要登入、權限或服務器层面的限制。

另外要记住:不同爬虫對协议的支持程度不完全一样,規則寫得越绕,解讀分歧越大。

几個高频寫错的地方

  • Disallow: / 覆盖了整站,却没人發現。測試或临时封站时加上的規則,上线後忘了删,是常见事故。
  • DisallowAllow 的顺序搞混。多數主流爬虫按最長匹配優先,相同長度时 Allow 優先,但規則一多就难判断,不如一開始就寫清楚。
  • 路径没寫全。寫 Disallow: /admin 會连带屏蔽 /admin-panel、/administrator,而本意往往只是想挡一個目錄。改成 /admin/ 會准确得多。
  • Sitemap 地址寫错或漏寫。這是文件里少數能主動提供信息的地方,寫對能省不少事。
  • 通配符和结尾符号凭感觉用。星号和美元符号的支持情况參差,能用明确路径就別用花式匹配。
  • 文件返回 200 但内容是空的,或者直接返回 404。前者让爬虫以為什么都不许,後者让爬虫以為没有限制,两種结果完全不同,需要分清楚。

改一次,驗證一次

  1. 浏览器直接打開 域名/robots.txt,確認能正常返回、没有跳轉、没有奇怪的字符编碼。
  2. 確認文件里没有整站級的 Disallow,除非你确實需要临时全站封閉。
  3. 检查 Sitemap 行是否指向可訪問的地址,且地址與目前域名一致,做過迁移的站点尤其要看。
  4. 用搜尋平台提供的抓取測試工具模拟一次,看重点目錄是否仍在可抓范围。
  5. 改動後观察一段時間抓取日誌,看被屏蔽目錄的訪問量是否按预期下降,未被屏蔽的主干目錄是否正常。

別把它当成一次性配置

站点结构變了、栏目下架了、临时活動頁要挡一下,這些都會让 robots.txt 需要更新。比較稳妥的做法是把它纳入發布流程:涉及目錄增删、域名切換、临时封站时,明确谁负责改、谁负责复核。

一個可用的判断标准:如果你没法用一句话说清每條規則挡的是哪類頁面,那這條規則大概寫得太模糊了。

最後提醒一句,robots.txt 只對守規矩的爬虫有效,真正盯上你資料的人不看這份文件。所以该用權限控制的地方就用權限控制,別指望几行文本兜底。