先给结论:源站正常只能说明回源链路没问题,边缘节点异常时最该保留的是“同一请求在边缘与源站两侧的差异证据”,也就是带时间戳的响应头、状态码、抓取返回体,以及能证明这些差异持续存在的重复观测记录。没有这组对照,你无法判断是节点缓存污染、局部线路问题,还是抓取本身被限流,后续无论选择保留现状、改写配置还是退出该节点,都会缺少依据。
百度收录入口的抓取请求通常先到达离用户或爬虫更近的边缘节点,再由节点决定回源或直接返回缓存。源站返回 200 且内容完整,只证明回源这一段健康;边缘可能因为缓存了旧版本、节点回源超时、局部 DNS 解析到异常 IP,而对爬虫返回与源站不同的状态码或内容。此时你在源站日志里看到的全是正常记录,容易得出“一切正常”的错误结论。
一个可区分的原因证据是:同一 URL 在短时间内从不同网络位置请求,若部分位置返回 200、部分返回 5xx 或旧内容,而源站直连始终 200,则异常落在边缘侧而非源站。反之,如果所有位置都返回相同异常,才需要回到源站或应用层排查。
证据不在多,而在于能支撑“保留、改写还是退出”的取舍。以下四类按优先级排列:
HTTP状态码、Cache-Control、Age、X-Cache 一类能反映命中或回源的字段,以及节点标识(若有)。用途是判断异常是缓存命中导致还是回源失败导致。这三条路不是并列备选,而是由证据形态决定的:
Age 很大、返回的是旧版本内容,而源站已是新版本。前提是你已确认源站内容正确,且改写动作(如调整缓存规则或刷新)能被后续观测验证。实际动作示例:假设某 URL 在节点 A 连续三次返回旧标题,节点 B 返回新标题,源站直连返回新标题。此时先刷新节点 A 缓存并记录刷新时间,再在刷新后 10 分钟、1 小时各观测一次。若刷新后恢复正常,说明是缓存未更新,属于可改写范畴;若刷新后仍返回旧内容,则支持退出该节点。这个动作的结果直接决定下一步是继续观察还是切换节点。
第一类是把抓取量或请求量下降直接当成边缘异常。请求量归零还可能来自抓取配额调整、robots 规则变化或站点整体改版,需要结合响应头与源站日志一起看,不能单凭数量下结论。
第二类是把单一工具的结果当作唯一事实。不同网络位置、不同解析结果可能给出不同返回,保留原始响应而非只记结论,才能让后来的判断可复核。robots.txt 的抓取限制不等于索引移除,站点地图也不保证收录,这些与边缘异常是不同层面的问题,不要混在同一组证据里解释。
把上述证据按时间线整理成一份可复查的记录,你就能在保留、改写和退出之间做出有依据的选择,而不是凭一次抓取结果反复改动配置。