站点运营

站点运营:robots.txt 自查,別让一條規則挡住整個目錄

robots.txt 只有几行,却决定了蜘蛛能看到什么。這篇整理了一份實操自查清單:確認文件可正常訪問、识別三類常见誤伤寫法、理清它與 meta robots 的分工,並给出改動前後的记錄與驗證方式,帮你在改版和上线新栏目後少踩坑。

站点运营

站点运营:robots.txt 自查,別让一條規則挡住整個目錄

robots.txt 是站点上最容易被忽略、又最容易出事的文件之一。它通常只有几百字节,平时没人看;一旦寫错,可能让整站或某個栏目長期抓不到。它同时也是排查問题时最该先看的地方——很多「頁面好像没被處理」的疑問,答案就藏在這几行里。

先確認這個文件本身能打開

規則寫得再對,如果文件取不到也等于没有。用不带任何參數的地址直接訪問,检查返回的是正常文本,而不是 404、403,或者被跳轉到首頁。

  • 確認服務器没有把它当成動態頁面處理,出現登入校驗、缓存层拦截等情况。
  • 確認文件编碼為 UTF-8,没有多余的 BOM 或乱碼,避免規則被誤讀。
  • 確認地址就是 https://你的域名/robots.txt,而不是放在子目錄里。

三類常见的誤伤寫法

  • 整站屏蔽:Disallow: / 多出現在測試环境的配置被同步到正式环境,改完忘了删。
  • 通配符過度匹配:為了挡掉搜尋參數结果頁,直接寫一條覆盖所有带問号的規則,结果把正規的栏目頁、詳情頁一起挡掉。
  • 挡住了不该挡的目錄:图片、样式、脚本目錄如果被屏蔽,蜘蛛可能無法完整渲染頁面,看到的是一份残缺内容。

另外注意大小寫和结尾斜杠的差异。有些實現里 /News/ 和 /news/ 並不等價,寫之前最好按线上實际的 URL 形態来對照。

一份可以照做的自查步骤

  1. 列出确實希望屏蔽的目錄:後台入口、搜尋參數结果頁、重复的篩選组合、測試目錄、临时文件目錄。
  2. 逐條對照线上真實 URL,確認没有把内容頁、栏目頁、图片目錄寫進去。
  3. 检查 Sitemap 声明那一行,指向的地址是否可訪問,且地图本身没有被屏蔽。
  4. 检查是否存在 Allow 與 Disallow 互相冲突的規則,確認匹配顺序符合预期。
  5. 用几條被屏蔽和未屏蔽的地址實际請求一次,看返回结果是否和你的预期一致。

它和 meta robots、X-Robots-Tag 的分工

robots.txt 管的是「能不能来抓」,meta robots 标簽和 HTTP 头的 X-Robots-Tag 管的是「抓到了要不要放進索引」。两者不能互相替代,混用還容易出問题。

特別要记住一点:被 robots.txt 屏蔽的地址,蜘蛛拿不到頁面内容,自然也看不到頁面里的 noindex。如果目的是让某個頁面彻底登出索引,應该用 noindex;如果只是不想让它占用抓取资源,用 Disallow 更合适。

robots.txt 的修改不會立刻生效,不同蜘蛛的讀取频率不一样。改完先观察一段時間再判断效果,別急着反复調整。

改動前後的记錄與驗證

建议把每次改動寫進运维日誌:改了什么、為什么改、谁改的、什么时候改的。看起来琐碎,但下次出問题时能省下大量排查時間。

  • 改之前先备份一份原文件,確認有問题可以立即回滚。
  • 改完之後用几個關键地址實测,不要只看文件内容對不對。
  • 過一周回头看服務器日誌,確認這些目錄的抓取請求有没有按预期變化。

建议的巡检节奏

不需要天天盯,但可以固定几個触發点:每月做一次全量核對;站点改版、目錄調整、上线新栏目之後立刻检查;收到抓取異常的告警时優先排查這一項。

robots.txt 不大,却决定了蜘蛛能看到什么。把它当成站点配置的一部分定期维護,比出了問题再回头找原因要省事得多。