对 robots.txt 最常见的误操作,是把“禁止抓取”当成“禁止收录”或“删除页面”的开关。结果是页面仍可能出现在搜索结果里,或者整站重要内容被自己挡在抓取之外。下面从一个假设场景开始,说明误解如何一步步变成误操作,以及动手前应该检查什么。
假设某站点改版,运营人员想把一批旧活动页从搜索结果中去掉,于是在 robots.txt 里写了 Disallow: /activity/。上线几天后,他们发现两件事:一是旧页面仍可能出现在搜索结果中,二是新活动页的流量也下降了。这里的关键错误在于:robots.txt 限制的是抓取,不是索引。搜索引擎已经抓取并建立索引的 URL,即使之后被禁止抓取,也可能继续保留在结果里,只是摘要或快照无法更新。
正确做法应分两步判断:如果目标是阻止搜索引擎继续抓取某目录,用 robots.txt;如果目标是让已收录页面从搜索结果中消失,应优先考虑页面级 noindex,并确保该页面仍可被抓取到,否则搜索引擎看不到 noindex 指令。若页面涉及敏感信息,则不应依赖 robots.txt,而应通过权限控制或删除内容来处理。
这是最常导致误操作的误解。Disallow 只是告诉爬虫“不要来抓这个路径”,并不等于“请把已有索引删掉”。对于已经收录的 URL,搜索引擎可能因为缺少新信号而保留旧索引,甚至继续展示旧标题和摘要。
site: 加具体 URL 查看是否仍被收录。robots.txt 是公开文件,任何人都能读取。把后台地址、备份目录、内部文档路径写进 Disallow,等于把这些路径主动列出来。它不能替代登录验证、访问控制或文件权限。
如果目录本就不该被外部访问,正确顺序是:先加身份验证或限制来源,再考虑是否需要 robots.txt。检查方法是直接以未登录状态访问该 URL,若能看到内容,说明 robots.txt 并没有提供保护。
站点地图是发现 URL 的辅助手段,不是收录保证。若 robots.txt 禁止抓取站点地图或其中的页面,站点地图的作用会大打折扣。另一个常见错误是把 noindex 页面大量放进站点地图,造成信号冲突。
需要分别核查不同搜索引擎对站点地图和 robots.txt 的支持情况,不能因为一个平台有反应就认为所有平台一致。
不同搜索引擎抓取 robots.txt 的频率不同,生效时间也不一样。更危险的是,有人为了临时屏蔽某个爬虫,写了过于宽泛的规则,结果把主流搜索引擎也一起挡住。例如 User-agent: * 配合 Disallow: / 会阻止所有遵循该协议的爬虫抓取全站。
上线前应做的检查:
User-agent 与 Disallow 的对应关系,确认没有把允许路径误写进禁止段。如果你第一次处理 robots.txt,先写清楚目标:是减少抓取、移除索引,还是保护目录。目标不同,手段不同。把 robots.txt 当作抓取管理工具,而不是收录删除工具或安全工具。下一步,打开当前 robots.txt,逐行标注每条规则想解决什么问题,再对每个目标页面做一次抓取与收录状态核查;发现目标与手段不匹配时,先改回可抓取状态,再选择正确的移除方式。