站点运营

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

robots.txt 改動一行就可能影响整站的抓取范围,却常常不在日常检查清單里。本文梳理常见的規則誤用,比如誤屏蔽整站、连带屏蔽样式與脚本、Sitemap 指令寫错、過期規則未清理,並给出一套可执行的自查流程,同时說明哪些問题不适合靠它来解决。

站点运营

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

robots.txt 是站点根目錄下一個纯文本文件,改動一行就可能影响整站的抓取范围,但它往往不在日常检查清單里。它不像頁面模板那样每次發布都會被看到,出問题时也不一定有肉眼可见的表現,所以更适合用固定的检查項定期過一遍。

為什么它值得單獨自查

搜尋引擎蜘蛛在抓取一個站点前,通常會先讀取 robots.txt。這份文件决定了哪些路径可以被訪問、哪些不可以。一旦規則寫错,受影响的不是某一個頁面,而是整片目錄。從站内看,頁面一切正常,訪客照常訪問,只有抓取和發現环节悄悄變窄。

常见的問题類型

  • 誤把屏蔽整站的規則带上线。常见于測試环境為了不被抓取而寫下的規則,部署时忘记刪除。
  • 屏蔽了样式和脚本目錄。蜘蛛需要渲染頁面来判断内容,屏蔽 CSS 與 JS 會让它看到的頁面和訪客看到的不一致。
  • 路径寫法不嚴谨。大小寫、结尾斜杠、通配符位置不同,匹配范围可能完全不一样,容易连带屏蔽不相關的目錄。
  • Sitemap 指令寫错。域名拼寫错誤、用了相對路径、指向 404 或重定向地址,都會让這份声明失去作用。
  • 規則過期没人清理。栏目早已下线,屏蔽規則還留在文件里,而新頁面刚好落在同一路径下。

一次完整的自查流程

  1. 直接訪問站点根目錄下的 robots.txt,確認返回狀態碼是 200,内容是目前最新版本,而不是舊文件或缓存頁面。
  2. 逐行讀一遍 Disallow 與 Allow,確認没有整站屏蔽,也没有意外覆盖正常栏目的規則。
  3. 检查 Sitemap 行,必须是带协议和域名的完整地址,並且能在浏览器里直接打開。
  4. 確認被屏蔽的目錄中,没有頁面模板依赖的静態资源。
  5. 挑几個有代表性的地址,用搜尋控制台提供的 robots.txt 測試功能驗證是否被允许,注意不同用戶代理的结果可能不同。
  6. 對比測試环境和线上环境,確認發布流程里没有把測試規則带出去。
  7. 把 robots.txt 的修改纳入上线检查表,每一次改動都留一條记錄和回退方案。

它不该承担的事

第一,不适合用来隐藏内容。屏蔽抓取不等于從索引中移除,已经收錄的地址仍可能出現在结果中,只是描述信息可能缺失。真要控制索引,應该用頁面級的 noindex 或地址規范化處理。

第二,不负责權重分配。不希望被收錄、不希望被传递信号的頁面,應该靠連結结构和頁面标记解决,而不是靠一條 Disallow。

第三,不能当安全措施。敏感目錄、後台入口、备份文件,靠的是權限控制和訪問限制,而不是一份公開可讀的文本文件。

關于抓取缓存

蜘蛛會缓存 robots.txt 一段時間,改動後不會立刻生效。如果是因為誤屏蔽引發的大范围問题,除了修正文件,還可以通過搜尋控制台提交重新抓取,让新規則尽快被讀取。

robots.txt 的作用是引導抓取,而不是關门。規則越少越简單,越不容易出事故。

小结

把它当成一份需要版本管理的配置文件:上线前讀一遍,改動後记一筆,出問题时能快速回退。這样即使規則寫错,也能在影响扩大之前被發現。