改动 robots.txt 前保存原始状态,核心是同时留下“可读副本”和“可还原副本”:先把当前线上文件完整下载到本地,记录 URL、抓取时间、HTTP 状态码和响应头,再复制一份到独立目录作为回滚版本。不要只凭记忆或截图,因为截图无法还原,记忆无法证明改前内容。
要查的是 robots.txt 的完整响应,而不是浏览器里看到的文字。可以用命令行执行 curl -i https://example.com/robots.txt,重点看三部分:状态码是 200、404 还是 5xx;Content-Type 是否为纯文本;响应体是否完整。结果说明:状态码 200 且正文完整,才有必要保存原始状态;404 表示当前没有规则文件,改动等于从“无”到“有”,要单独记录这一点;5xx 说明服务器异常,此时保存的内容可能不是稳定版本,应先确认服务恢复再操作。
建议把证据放进同一个带日期的目录,例如 robots-backup-2025-06-01/,每项都对应一个判断用途:
curl -o robots.txt.orig 保存,用于逐行对比改了什么。curl -I 或 curl -i 保存,用于确认状态码、缓存头和内容类型。sha256sum robots.txt.orig,用于确认回滚文件没有被误改。结果说明:只保存正文,遇到“改后无法访问”时无法判断是文件内容问题还是服务器响应问题;同时保存响应头和哈希,才能把内容问题与部署问题分开定位。
方案一:直接覆盖线上文件。适用条件是规则改动很小、你能立即访问服务器或发布系统、并且已经保存了原始正文和响应头。优点是快;风险是改错后回滚依赖你手头的副本,若副本不完整就会丢失原始状态。
方案二:先复制一份带时间戳的备份,再改线上文件,或先发布到测试路径验证。适用条件是规则涉及大段 Disallow、要新增 Sitemap、或多人协作容易覆盖。优点是回滚路径清晰;代价是多一步操作,且要确认测试路径不会被搜索引擎当成正式规则抓取。
判断依据不是“哪种更专业”,而是改动范围和回滚成本:只改一行注释可选方案一;改动抓取范围、影响整站路径匹配时选方案二。无论哪种,改动前都应保留原始状态,改动后再抓取一次线上文件,与备份做差异对比,确认只有预期行发生变化。
curl -i 看状态码和正文。结果说明:200 才进入保存流程,404 要记录“原本不存在”。robots.txt.orig 并计算哈希。结果说明:哈希可用于回滚后核对。User-agent 与路径。结果说明:能提前发现误封整站或误放开目录。需要区分的是:robots.txt 的抓取限制不等于可靠的索引移除,保存原始状态也不能保证改后一定被某搜索引擎按预期处理;站点地图不保证收录。若改动涉及具体搜索引擎的抓取行为,应分别查看对应官方文档并分别验证。
下一步:在改动前先执行一次完整抓取并建立带日期的备份目录,改完后用同一命令再抓一次,把两份文件和哈希放在一起对比,确认差异只来自你计划修改的行。