当源站日志显示百度蜘蛛请求正常、返回200,但边缘节点或CDN侧出现5xx、超时、回源失败时,不能只看源站日志就判断“收录没问题”。要区分“百度根本没抓到边缘异常”和“百度抓到了但被边缘拦掉”,需要保留三组证据:边缘节点的原始响应记录、百度侧可见的抓取痕迹、以及从多个网络位置复现的请求结果。缺少其中任何一组,都可能把边缘故障误判为源站故障,或反过来把源站问题归因给边缘。
源站正常而边缘异常,通常表现为两种直觉相反的结果。一种是源站监控全绿,但百度抓取量骤降;另一种是百度抓取量没变,但索引量下滑。这两种现象指向不同的证据方向。
如果抓取量骤降,优先怀疑百度蜘蛛在边缘节点被拒绝或超时,需要看边缘的访问日志和状态码分布。如果抓取量没变而索引量下滑,则要怀疑百度抓到的内容与源站不一致,比如边缘缓存了旧版本、错误页或空白页,需要对比边缘返回的HTML与源站返回的HTML是否一致。
这个判断动作本身就会影响下一步:抓取量下降时,重点查边缘的连通性和限流策略;索引量下降时,重点查边缘缓存的内容正确性。两者需要的证据不同,不能混在一起查。
这种解释成立的条件是:边缘节点在百度蜘蛛发起请求时返回了错误,或者连接被重置,导致请求没有回源。常见的边缘侧原因包括节点故障、回源超时、WAF误拦、限流规则命中。
支持这个解释的证据包括:边缘访问日志中出现百度蜘蛛UA对应的5xx或499状态码;边缘的监控曲线在故障时段出现错误率上升;从多个外部网络位置用相同UA请求边缘节点,能复现错误。如果这些证据同时存在,而源站日志在对应时段没有收到该请求,就可以比较有把握地判断请求被边缘截断了。
需要保留的具体材料:边缘节点的访问日志片段,包含时间、UA、请求URL、状态码、响应时间;边缘的错误率监控截图或导出数据;从至少两个不同网络位置发起的请求记录,注明请求时间、使用的UA、返回状态码和响应体前若干字节。
这种解释成立的条件是:边缘节点成功回源并返回了200,但返回给百度的内容与源站当前内容不一致。可能是缓存了旧版本,可能是边缘做了内容压缩或转码导致结构损坏,也可能是边缘返回了一个默认页或错误页但状态码仍是200。
区分这种解释的关键证据是内容比对。从边缘节点请求一个URL,保存返回的HTML;再从源站直接请求同一个URL,保存返回的HTML。逐段对比标题、正文、canonical、robots meta、结构化数据。如果边缘返回的HTML中缺少正文、canonical指向错误、或者robots meta变成了noindex,那问题就不在连通性,而在内容一致性。
这里有一个容易忽略的细节:边缘返回200不代表内容正确。状态码正常但内容被替换,百度仍然会按错误内容处理。保留证据时要同时保存响应头和响应体,不能只记录状态码。
下面这组检查可以同时覆盖两种解释,并按结果分流。假设故障时段为T,百度抓取量在T之后下降。
这个顺序的作用是:先用状态码把范围缩小,再用内容比对确认是否涉及索引层面的影响。如果第1步就发现大量5xx,就不需要做内容比对,直接查边缘连通性;如果第1步状态码正常,第3步的内容比对才是决定性的。
第一个错误是只保留源站日志。源站日志只能证明源站收到了什么、返回了什么,不能证明百度最终拿到了什么。边缘节点是百度蜘蛛和源站之间的实际接触点,边缘侧的证据不可替代。
第二个错误是只截取状态码,不保存响应体。状态码200配合一个空白页或错误页,在收录层面和5xx的后果可能不同,但都需要内容证据才能判断。保存响应体时注意记录字节数和关键字段,不要只写“返回正常”。
第三个错误是用robots.txt的抓取限制来代替索引移除。robots.txt只控制抓取,不控制已收录URL的移除;如果边缘异常期间百度已经抓到了错误内容并建立了索引,后续修复边缘后,旧索引不会因为robots.txt而立即消失。这时需要保留的是边缘修复前后的内容对比证据,以及百度侧抓取痕迹的变化记录,而不是把robots.txt当作清理手段。
如果证据指向解释一,下一步是修复边缘节点的连通性或调整限流、WAF规则,并在修复后从多个网络位置重新请求,确认百度蜘蛛UA能稳定拿到200。修复动作的结果会直接决定是否需要进一步检查源站:如果边缘恢复后百度抓取量回升,源站侧通常不需要额外处理;如果边缘恢复后抓取量仍不回升,才需要检查源站是否有其他限制。
如果证据指向解释二,下一步是清理边缘缓存中受影响的URL,并确认回源内容与源站一致。清理后同样要从边缘侧请求并保存新的HTML,与源站比对。这个动作的结果会影响索引恢复的判断:内容一致后,百度重新抓取到的才是正确版本;但已收录的错误版本何时更新,取决于百度后续的抓取和索引处理,不能仅凭一次缓存清理就断定收录会立即恢复。
无论哪种情况,证据保留的时间窗口应覆盖故障发生前后各一段,至少包含故障时段、修复动作时刻、修复后的一次完整验证。这样在后续排查中才能回答“修复前后百度分别拿到了什么”这个核心问题。