恢复原页面后抓取量没有回升,通常不是百度“还没反应过来”,而是维护期留下的信号仍在生效。要核对的不是收录结果,而是响应头、页面内容、内链入口和提交记录这四类残留,它们决定百度下一次抓取时会把页面当成什么。
维护期间把全站返回 503,恢复后日志里百度蜘蛛的访问次数反而低于维护前。表面看像是降权,实际更可能是两种解释之一。
第一种解释:维护响应留下了缓存或中间层策略。如果维护页由 CDN 或反向代理返回,恢复后边缘节点仍可能在短时间内继续吐出维护响应,蜘蛛拿到的是旧状态,自然减少后续访问。
第二种解释:蜘蛛把维护期当成站点不可用,主动降低了抓取频次,恢复后需要重新验证可用性才会加量。这种情况下抓取量低是结果,不是原因。
区分两者的证据很直接:直接请求源站 IP 并带上百度蜘蛛的 User-Agent,对比通过 CDN 请求同一 URL 的响应。如果源站正常而 CDN 仍返回维护状态,问题在中间层;如果两者都正常,才需要继续看页面本身。
维护期常见的做法是返回 503 并附带 Retry-After,同时可能设置较长的 Cache-Control。恢复时如果只改了状态码,没有清掉这些头,蜘蛛仍会按旧指令推迟抓取。
Cache-Control 是否仍带 no-store 或超长 max-age,按需改回正常缓存策略。Retry-After,它会让蜘蛛在指定时间后才回来。这里要说明一个边界:robots.txt 里写 Disallow 只限制抓取,不等于把已收录页面移除,恢复后也不会自动“解禁”索引状态。如果维护期用过 robots 限制,恢复后要单独核对索引层面的表现,而不是只看抓取日志。
维护页有时是替换模板实现的。恢复模板后,正文、标题、结构化数据可能仍指向维护文案,或者被维护期的占位内容覆盖。蜘蛛抓到的页面如果标题仍是“系统维护中”,即使状态码是 200,也不会被当作正常内容处理。
可执行的动作是抽一批维护期间被访问过的 URL,逐个对比三处:<title>、首屏正文、以及页面里的结构化数据。假设某栏目页维护期标题被统一改成“维护中”,恢复后只改回了模板头部而没改栏目自身的标题字段,那么蜘蛛看到的仍是维护文案。这个假设说明的是比较方法,不是真实项目结论。
核对结果会直接影响下一步:如果只有少数页面残留维护文案,逐个修;如果整批页面标题都相同,说明是模板层或数据层没恢复,应先修数据源再重新提交,否则提交多少次都是同一批错误页面。
维护期常临时下线导航、侧栏或列表页入口。恢复后正文恢复了,但指向该页的内链没有恢复,蜘蛛就缺少重新发现它的路径。此时页面可访问,抓取量却上不去。
核对方式是检查三类入口:首页和栏目的导航链接、列表页到详情页的分页链接、以及站点地图中的 URL 是否与当前可访问地址一致。站点地图不保证收录,但它能反映你声明了哪些地址;如果地图里还留着维护页地址,就是需要清理的残留。
如果内链已恢复但抓取仍低,再考虑主动提交当前有效 URL。提交的作用是提示重新抓取,不是保证收录,所以提交后仍要回到日志里看下一次抓取拿到的状态码和内容,而不是以提交动作本身作为完成标志。
把维护开始、恢复、以及日志中抓取量的变化画在同一条时间线上,能排除不少误判。如果抓取下降发生在维护开始之前,那维护就不是原因;如果恢复后抓取在中间层缓存过期的时间点附近回升,则更支持缓存解释而非惩罚解释。
需要提醒的是,抓取量归零或某项统计下降,不能单独证明处理正确或错误。它还可能来自蜘蛛调度周期、站点整体抓取预算分配、以及同期其他页面的变化。把这些可能性列出来逐一排除,比直接下结论更可靠。
具体动作可以这样安排:先修中间层和响应头,再修页面内容,最后恢复内链并重新提交。每完成一步,观察下一次抓取拿到的状态码和标题是否已变。如果状态码和标题都正常而抓取仍未回升,问题多半在抓取调度或入口层面,此时继续改页面内容不会有效果。整个核对过程以证据推进,而不是以提交次数推进。