当源站返回的 robots.txt 正常、边缘节点却返回异常内容时,先不要急着改规则。更稳妥的做法是把“源站响应”和“边缘响应”分别固化成可复查的证据,再决定是修缓存、改回源策略,还是调整 robots.txt 写法。因为搜索引擎抓取的是边缘节点返回的那一份,而不是你源站上那一份。
边缘节点异常至少有三种不同表现,处理方向完全不同。
Content-Type、缓存状态、X-Cache 之类头部不同,导致抓取方按不同方式解析。这三种情况里,只有第一种会直接改变规则语义;第二种会让抓取方无法读取规则;第三种可能让文件被当成非文本处理。先分类,再取证,能避免把缓存问题误判成写法问题。
只保留一边的证据,事后无法判断差异出在哪一层。建议按下面两组分别留存。
Content-Type、缓存相关头、最后修改时间。一个可执行动作是:在改动任何规则之前,先把这两组响应各保存一份带时间戳的副本。这样做的直接结果是,后续无论你调整缓存策略还是重写 robots.txt,都能用同一基线判断问题是否真的被消除,而不是靠“现在看着正常了”来判断。
拿到两组证据后,通常有两条路可走,选择条件不同。
判断依据是:如果边缘异常只出现在部分节点,且源站版本正确,修边缘更合理;如果边缘行为短期不可控,才考虑让 robots.txt 写法更保守。不要为了绕开缓存问题,把本来清晰的规则改成难以维护的形态。
假设源站 robots.txt 已更新,禁止抓取某个目录,但边缘节点仍返回旧版本,允许抓取。此时保留的证据应能同时证明:源站是新版本、边缘是旧版本、两者状态码都是 200。
基于这组证据,下一步动作是刷新或清除该路径的边缘缓存,而不是立刻再改一遍 robots.txt。因为问题不在写法,而在分发。动作之后,再用同一路径重新取一次边缘响应,与源站版本比对;如果一致,说明分发已恢复,此时才需要评估规则本身是否达到预期。这个顺序能避免在错误的层面上反复修改。
第一,robots.txt 的抓取限制并不等于可靠的索引移除。即使边缘最终返回了正确的禁止规则,已经收录的页面也不会因此自动消失,所以证据要服务于“抓取行为是否被正确读取”,不要把它当成移除手段。
第二,站点地图不保证收录,HTTPS 也不保证安全无漏洞或排名。这两点和边缘异常没有直接因果,取证时不必把它们混进判断链。真正要盯住的,是源站与边缘返回的那一份文件是否一致、是否可被正确解析。不同搜索引擎对 robots.txt 的支持细节需要分别核查,因此保留原始响应比依赖记忆更可靠。
把源站与边缘两组响应固定下来,再按内容、状态码、响应头分类,你就能明确该修缓存还是该改写法,而不是在两个层面之间来回试错。