站点运营

站点运营:robots.txt 與 meta robots 自查,別让一條規則拦住抓取入口

robots.txt 和 meta robots 是站点运营中控制蜘蛛抓取與索引的常用開關,但測試規則残留、Disallow 范围過宽、noindex 與屏蔽冲突等問题很容易誤伤正常頁面。本文梳理两套規則的区別、常见誤配场景和一份可执行的自查清單,帮助你在改版或上线後快速確認抓取入口是否正常。

站点运营

站点运营:robots.txt 與 meta robots 自查,別让一條規則拦住抓取入口

在站点运营中,robots.txt 和 meta robots 是控制蜘蛛抓取與索引的两道常见開關。它們配置简單,但也容易被忽略:複製模板时带進測試規則、临时屏蔽後忘记刪除、把不该屏蔽的目錄寫進 Disallow,都可能让蜘蛛在门口掉头。定期自查這两處規則,比事後從日誌里找原因更省力。

先分清两套規則各自管什么

两者作用范围不同,混用容易造成誤判。

  • robots.txt:放在域名根目錄,告诉蜘蛛哪些路径可以抓、哪些不可以抓。它不直接影响已抓取頁面的索引狀態,但會阻止蜘蛛繼續訪問。
  • meta robots:寫在頁面 head 中,针對單個頁面,常用 noindex、nofollow、noarchive 等指令,控制该頁是否允许索引、是否传递連結權重。
  • X-Robots-Tag:通過 HTTP 响應头下發,适合非 HTML 文件(如 PDF、图片)或批量控制。

常见誤配與風險

測試規則混入正式环境

開發阶段常寫 Disallow: / 来避免測試内容被抓,上线後未清理,整站等于對蜘蛛關门。

Disallow 范围過宽

例如想屏蔽 /search,却寫成 Disallow: /s,连带 /shop、/service 等正常目錄一起被挡。匹配符号差一点,影响范围可能差很多。

noindex 與 robots.txt 冲突

如果頁面被 robots.txt 禁止抓取,蜘蛛無法讀到頁面里的 noindex,反而可能因為外部連結而出現在索引中。要禁止索引,優先让頁面可抓取並返回 noindex。

屏蔽了 CSS、JS 等渲染资源

蜘蛛需要抓取样式和脚本才能理解頁面渲染结果。如果 robots.txt 屏蔽了 /assets/ 或 /static/,可能影响對移動端和懒加载内容的判断。

自查清單

  1. 打開 你的域名/robots.txt,確認没有 Disallow: / 這類整站屏蔽;检查是否誤寫測試域名或临时規則。
  2. 逐條核對 Disallow 路径,確認没有把正常栏目、分類頁、詳情頁包含進去;注意 / 和 /* 的匹配差异。
  3. 用不同 UA(如 Googlebot、Bingbot)測試關键 URL,看是否返回可抓取狀態;不要只用自己的浏览器訪問。
  4. 抽查重要頁面源碼中的 meta robots 标簽,確認没有意外的 noindex、nofollow;同时检查 HTTP 响應头中的 X-Robots-Tag。
  5. 查看服務器日誌中蜘蛛對重要目錄的訪問情况,如果長期没有记錄,可能是規則挡住了。
  6. 把 robots 規則纳入上线检查單,改版、迁移、临时活動結束後都复查一次。

修改後的驗證與观察

修改 robots.txt 後,蜘蛛不會立刻按新規則重新抓取所有路径。可以先观察日誌中目标路径是否出現訪問记錄,再结合站点地图和内部連結逐步引導。如果之前誤屏蔽了重要目錄,恢复後不要急于大量提交 URL,先確認規則已生效、頁面可正常訪問,再按正常节奏推進。

robots.txt 是抓取协议,不是安全工具。真正敏感的後台、配置文件、用戶資料,應该用權限控制和服務器配置保護,而不是只靠 Disallow。

規則越简單越不容易出错。每次調整 robots.txt 或 meta robots,都問一句:這條規則會挡住谁?蜘蛛還能不能看到我想让它看到的内容?把這两個問题当成例行检查,能减少很多不必要的抓取损失。