能改的只有 robots.txt 本身,模板、路由和渲染层都动不了时,可行的调整边界通常落在三件事上:用 Disallow 收缩抓取入口、用 Allow 与规则顺序修正误伤、用站点地图或响应头做旁路引导。它解决的是“让爬虫少走哪些路”,不解决“让已收录内容消失”,也不保证收录结果按预期变化。判断该保留、改写还是退出,先看证据指向抓取浪费、误伤屏蔽,还是根本不该由这个文件承担目标。
遗留系统改不了模板,最典型的反常结果是:加了 Disallow 之后,目标页面在搜索结果里反而更活跃,或者后台请求量下降但有效页面仍未被抓取。这两种现象指向不同原因,不能都归到“规则没生效”。
区分方法很具体:从日志中抽出一段时间内被请求的 URL,按“有搜索价值的正文页 / 无价值的参数页 / 静态资源”分组,观察各组占比和响应状态。如果无价值组占比高且正文页抓取稀疏,偏抓取浪费;如果正文页本身返回 403 或 404 而规则里正好有相关路径,偏误伤。请求量下降本身不能证明处理正确,它也可能是爬虫整体降频、站点响应变慢或抓取预算被别处占用。
保留现有 robots.txt 的前提是,被屏蔽的路径集合长期稳定、边界清楚,且没有正文页混在其中。遗留系统常见的稳定对象是固定前缀的后台入口、明确的搜索参数目录、以及不对外提供内容的临时目录。
保留不等于放任。至少要确认两点:规则是否使用了通配符或结尾匹配,导致本不该命中的路径被覆盖;以及是否存在多条规则互相覆盖、后写的 Allow 能否生效。不同搜索引擎对通配符和规则优先级的处理并不完全一致,同一份文件在 A 引擎按预期执行、在 B 引擎可能命中不同结果,需要分别核查,不能只看一个来源的抓取表现。
如果确认对象稳定、无正文误伤,保留是成本最低的选择。此时下一步动作是建立定期抽样:固定抽取若干正文页 URL,检查它们在日志中是否仍有抓取,而不是只看总请求量。
当证据指向误伤时,改写比新增更有效。常见做法是在宽泛 Disallow 之后,用更具体的 Allow 放开正文路径。是否生效取决于引擎对规则顺序和最长匹配的处理方式,因此不能假定“写了 Allow 就一定放行”。
假设一个遗留目录结构为 /app/ 下既有正文也有后台,规则写成 Disallow: /app/,正文页被一并挡住。一种改法是保留 Disallow: /app/admin/,去掉对 /app/ 的整体屏蔽;另一种是保留宽泛规则并追加 Allow: /app/article/,但后者依赖引擎对更具体规则的优先处理。两种改法成立条件不同:前者要求后台路径本身可枚举且稳定,后者要求引擎支持且正确实现 Allow 覆盖。选择哪一种,取决于你能否列出后台路径清单,而不是取决于哪种写法更短。
改写的风险在于,规则越复杂,越难预测命中结果。若无法确认引擎行为,优先选择“缩小 Disallow 范围”而不是“叠加 Allow”,因为前者的命中边界更容易人工核对。改写后应观察目标页面的抓取是否恢复,同时检查被放开路径是否带来新的无价值抓取。抓取恢复不代表收录一定变化,收录还受页面质量、内部链接和引擎判断影响。
退出指不再把 robots.txt 当作主要手段,转而使用其他机制或接受现状。适用前提有两类。
退出不等于删除文件。可以保留最小必要规则,停止在此基础上继续加规则,避免规则集膨胀到无法核对。
假设某遗留站点日志显示:某目录下参数页请求占比很高,正文页抓取很少,且该目录规则为 Disallow: /list/。此时有两种解释:一是规则确实挡住了无价值参数页,正文页抓取少是别的原因;二是正文页恰好也在这个目录下,被误伤。区分动作是:从日志中取出若干正文页 URL,检查它们是否出现在被请求列表中、返回什么状态码。如果正文页从未被请求且路径匹配该规则,偏误伤,应改写规则;如果正文页有请求但频次低,偏抓取预算分配问题,改写规则未必有用。这个判断只用日志和规则本身,不需要额外工具。
站点地图可以作为旁路引导,把希望被抓取的正文页集中列出,但它不保证收录,也不替代对规则误伤的核查。HTTPS 与本题无关,不构成判断依据。最终取舍应回到证据:规则命中的是哪些 URL、这些 URL 是否有搜索价值、目标是否本就超出抓取限制的能力范围。把这三问答清楚,保留、改写还是退出就不需要靠猜。