站点运营

站点运营:robots.txt 的寫法與自查,別把该抓的目錄一起屏蔽

robots.txt 放在網站根目錄,看似简單,却常因一條規則誤伤正常目錄、放過測試頁或搜尋结果頁。本文整理常见寫法、容易踩的坑和可执行的自查步骤,帮助你在不影响正常抓取的前提下,管好蜘蛛的訪問范围。

站点运营

站点运营:robots.txt 的寫法與自查,別把该抓的目錄一起屏蔽

robots.txt 是放在網站根目錄的一份纯文本协议文件。它不强制蜘蛛必须遵守,但主流搜尋蜘蛛在抓取前通常會先讀取它。對站点运营来说,這份文件寫错一條規則,可能让整個栏目從抓取列表里消失,也可能让測試頁、搜尋结果頁被大量抓取。它不像頁面内容那样天天更新,但每次改版、上线新目錄、調整 URL 结构时,都值得回头检查一遍。

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

robots.txt 主要用来告诉蜘蛛哪些路径不建议抓取,以及 sitemap 文件放在哪里。它不能用来阻止頁面被索引——如果某個 URL 已经被外部連結指向,即使被 robots 屏蔽,搜尋引擎仍可能將其收錄,只是無法讀取内容。它也不能替代登入驗證、權限控制或 noindex 标簽。把 robots.txt 当成“隐藏頁面”的工具,往往會带来反效果。

常见寫法與容易踩的坑

全站禁止

開發环境、预览域名上经常出現 User-agent: * Disallow: /。這個寫法本身没問题,但上线时如果忘记删掉,蜘蛛會直接放弃整站。建议在發布流程里加一道检查,或者用不同域名区分測試和生产环境。

誤伤目錄

想屏蔽 /search/ 结果頁,却寫成 Disallow: /s,结果把 /solution/、/service/ 等正常目錄一起挡住。路径匹配是前缀匹配,短字符串很容易誤伤。寫規則时尽量寫完整目錄,並在末尾加上斜杠,例如 Disallow: /search/

規則冲突與優先級

同一個 User-agent 下有多條規則时,蜘蛛一般按最長匹配来决定。比如同时有 Disallow: /api/Allow: /api/public/,後者更長,/api/public/ 下的地址就可能被允许抓取。如果規則寫得混乱,蜘蛛的最终行為可能和你的预期不一致。建议把重要目錄的 Allow 和 Disallow 分開寫清楚,不要依赖猜测。

通配符與结尾符号

星号 * 表示任意字符,美元符号 $ 表示 URL 结尾。例如 Disallow: /*.pdf$ 可以屏蔽所有以 .pdf 结尾的地址。但通配符用多了會增加维護难度,也容易誤伤。能寫具体目錄就不要用大范围通配。

一份可执行的自查清單

  • 確認文件可訪問:在浏览器打開 https://你的域名/robots.txt,返回 200 且内容為纯文本,而不是 404 或 HTML 頁面。
  • 检查 User-agent 分组:是否把百度、Google、必應等蜘蛛分別寫了規則,還是统一用 *。如果用了 *,要確認没有誤伤主流蜘蛛。
  • 核對 Disallow 路径:逐條對照現有目錄,確認没有把正常栏目、文章目錄、图片目錄一起挡住。
  • 检查 Allow 規則:如果确實需要放開某個子目錄,確認 Allow 的路径比 Disallow 更具体。
  • 確認 sitemap 地址:在文件里寫完整 URL,例如 Sitemap: https://example.com/sitemap.xml,不要只寫相對路径。
  • 检查測試頁和後台路径:/test/、/tmp/、/admin/、/preview/ 等目錄如果不需要被抓,可以屏蔽,但不要影响前台正常頁面。
  • 检查參數頁:對篩選、排序、打印、分享等參數,可以用 Disallow 屏蔽,也可以配合 canonical 處理,避免生成大量可抓地址。
  • 修改後观察日誌:改動生效後,留意服務器日誌里蜘蛛的抓取记錄,確認目标目錄仍有正常訪問,誤屏蔽的目錄不再出現大量請求。

和蜘蛛池、抓取预算的關系

蜘蛛池、外鏈引導、URL 提交等操作,本质上是让蜘蛛知道有哪些地址值得来看。如果 robots.txt 把入口目錄挡住了,前面做的 URL 發現工作就會打折扣。另一方面,蜘蛛每天愿意抓取的頁面數量有限,如果 robots.txt 没有屏蔽搜尋结果頁、重复參數頁,蜘蛛可能把大量時間花在低價值地址上,核心栏目的回訪频率反而下降。所以 robots.txt 不是越嚴格越好,也不是越開放越好,關键是让蜘蛛把注意力放在真正需要收錄的頁面上。

改完之後怎么驗證

修改 robots.txt 後,不要只靠自己讀一遍。可以用搜尋引擎站長平台提供的 robots.txt 測試工具,輸入具体 URL,看看是否被允许抓取。也可以直接在日誌里找對應蜘蛛的請求记錄,观察它是否還在訪問被屏蔽的目錄。如果發現某個重要栏目突然没有抓取记錄,優先检查 robots.txt 是否被誤改。對于大型站点,建议把 robots.txt 纳入版本管理,每次改動都有记錄,方便回滚和對比。

robots.txt 是一份很轻的文件,但它的影响不轻。定期检查、寫清楚規則、改完看日誌,比事後补救省事得多。