robots.txt 是站点给爬虫的第一份說明书,但它只做一件事:告诉爬虫哪些路径不建议抓取。它不能保證頁面被收錄,也挡不住所有訪問者——真正需要保護的目錄,要靠登入驗證、IP 限制或服務器配置。运营中常见的麻烦,往往不是規則寫得太复杂,而是有一條誤寫的 Disallow 長期挂着,把新栏目、改版後的目錄一起挡在门外。
第一步:確認文件能正常打開
先訪問 https://你的域名/robots.txt,確認返回 200,而不是 404、403,也不是被跳到首頁。常见故障包括:文件放错根目錄、被重定向規則拦截、CDN 缓存了舊版本、服務器用 200 狀態碼返回了一個 HTML 错誤頁。如果打開後看到的是完整網頁模板,說明請求根本没命中這個文件,需要先把這一层修好。
- 返回狀態碼是否為 200
- 内容類型是否為纯文本
- 是否被缓存层或安全策略改寫過
- 带 www 與不带 www 的域名是否各有一份,且内容一致
第二步:逐條核對 Disallow 規則
把現有規則逐行讀一遍,重点看那些早年為了省抓取而加上的屏蔽項。站点改版後目錄结构變了,舊規則的字符串可能正好命中新栏目。例如 Disallow: /news 本意是屏蔽舊的新闻列表,结果把後来新建的 /newsroom 也一起带走了。
注意通配符與结尾符号
- * 表示任意字符,放在路径中段容易扩大匹配范围
- $ 表示结尾匹配,适合精确屏蔽某一類後缀地址
- 路径区分大小寫;User-agent 與 Disallow 之間夹了無關行或空行分组,也可能让規則失效或誤伤
不要顺手屏蔽静態资源
如果規則里出現屏蔽 CSS、JS 或图片目錄的行,渲染頁面时可能拿不到样式與脚本,頁面呈現和评估都會受影响。確認這些资源處于可抓取狀態。
第三步:检查 Sitemap 與抓取频率声明
在文件末尾寫一行 Sitemap: 完整地址,方便爬虫找到索引文件。這里要用绝對地址,並且與站点實际使用的协议、域名保持一致,避免 www 與非 www 混用。Crawl-delay 並非所有爬虫都遵守,如果服務器确實压力大,更稳妥的做法是從服務器层做限流,而不是只依赖這一行。
第四步:改完要驗證
- 用搜尋引擎官方提供的 robots.txt 測試工具,检查具体 URL 是否被允许
- 挑几條代表性地址分別测:首頁、栏目頁、詳情頁、後台目錄
- 观察一段時間内的服務器日誌,看被屏蔽目錄是否還有抓取记錄(生效常有延迟)
- 確認搜尋资源平台里的抓取統計没有異常下滑
robots.txt 是建议,不是權限。真正需要保護的頁面,請用登入驗證、IP 限制或服務器配置来處理。
第五步:把變更纳入流程
建议把 robots.txt 当作需要评审的配置文件:修改前备份,寫清改動原因與時間,改完当天在同一环境驗證,並记入站点變更日誌。多人协作时,避免有人在服務器上临时改一行,事後谁也说不清。
最後提醒一点:屏蔽容易,恢复慢。任何一次規則調整,都可能需要一段時間才能重新被抓取,所以宁可先放宽再收紧,也不要一次屏蔽一大片目錄。