在站点运营中,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/,可能影响對移動端和懒加载内容的判断。
自查清單
- 打開 你的域名/robots.txt,確認没有 Disallow: / 這類整站屏蔽;检查是否誤寫測試域名或临时規則。
- 逐條核對 Disallow 路径,確認没有把正常栏目、分類頁、詳情頁包含進去;注意 / 和 /* 的匹配差异。
- 用不同 UA(如 Googlebot、Bingbot)測試關键 URL,看是否返回可抓取狀態;不要只用自己的浏览器訪問。
- 抽查重要頁面源碼中的 meta robots 标簽,確認没有意外的 noindex、nofollow;同时检查 HTTP 响應头中的 X-Robots-Tag。
- 查看服務器日誌中蜘蛛對重要目錄的訪問情况,如果長期没有记錄,可能是規則挡住了。
- 把 robots 規則纳入上线检查單,改版、迁移、临时活動結束後都复查一次。
修改後的驗證與观察
修改 robots.txt 後,蜘蛛不會立刻按新規則重新抓取所有路径。可以先观察日誌中目标路径是否出現訪問记錄,再结合站点地图和内部連結逐步引導。如果之前誤屏蔽了重要目錄,恢复後不要急于大量提交 URL,先確認規則已生效、頁面可正常訪問,再按正常节奏推進。
robots.txt 是抓取协议,不是安全工具。真正敏感的後台、配置文件、用戶資料,應该用權限控制和服務器配置保護,而不是只靠 Disallow。
規則越简單越不容易出错。每次調整 robots.txt 或 meta robots,都問一句:這條規則會挡住谁?蜘蛛還能不能看到我想让它看到的内容?把這两個問题当成例行检查,能减少很多不必要的抓取损失。