先把“被发现”拆成可观测的两段:服务器是否把页面完整交付给抓取端,以及抓取端是否把该 URL 纳入后续处理。批量页面只有一部分被发现时,不要按页面数量平均分组,而应按“交付差异”分组:把确认能完整交付的页面作为基线组,把疑似交付不完整的页面作为实验组,再比较两组的抓取证据。这样划分的前提是你能拿到逐 URL 的服务器响应记录,而不是只看站点地图提交数量。
基线组不是“已经收录的页面”,而是“服务器交付无异常的页面”。判断标准至少包含:请求返回 200、响应体包含正文主体、没有因规则或权限返回空内容、没有在服务端被重定向到无关地址。只有这些条件同时成立,基线组才能用来做对照。
如果基线组里混入了返回 200 但正文为空、或返回软 404 的页面,后续比较就会失真。实际操作中,先导出这批 URL 的服务器访问日志与响应状态,按状态码和响应体长度做一次分层,再把正文长度明显偏短的单独列出。这个动作的结果决定了实验组是否干净:若短响应页面占比很高,说明问题更可能在服务器交付环节,而不是抓取端的选择行为。
很多人习惯按栏目、按文章类型分组,但当只有一部分页面被发现时,目录分组往往解释不了差异。更有效的做法是按交付差异分:
这四类的处理方向不同。第一类更偏向抓取端的选择与优先级,第二类指向服务器输出或缓存问题,第三类需要核查规则配置,第四类要先做规范化。把它们混在一个“未发现”池子里,任何对照都说明不了问题。
保留适用于页面本身有独立价值、且服务器交付已确认完整的情况。此时不必急着改内容,先保持 URL 稳定,观察后续抓取是否恢复。保留的前提是你能持续记录同一批 URL 的响应变化,否则无法判断是暂时波动还是持续状态。
改写适用于页面内容与已有页面高度重叠、或正文主体过短导致服务器交付后仍无足够区分度的情况。改写的对象应是正文主体与内部链接指向,而不是只改标题。改写后要重新记录响应体长度和内部链接变化,再看这批 URL 是否进入下一轮处理。
退出适用于页面没有独立检索需求、且与其他页面重复的情况。退出的动作可以是合并或设置规范化指向,但要注意:robots.txt 的抓取限制不等于可靠的索引移除。如果只是阻止抓取,已处理的 URL 仍可能以其他形式出现,因此退出决策要配合规范化或移除流程,而不是单靠一条规则。
假设某站点有 400 个批量生成的页面,其中 120 个在抓取记录里出现过,280 个没有。不要直接把 120 和 280 当成两组比较,因为 280 里可能混着交付异常。
第一步,从 280 个里随机抽 40 个,逐个请求并记录状态码、响应体长度、是否被重定向。若其中 25 个返回 200 但正文长度明显低于同模板页面,就把这 25 个归入“交付异常组”,剩余 15 个归入“交付正常但未处理组”。
第二步,比较“交付异常组”和基线组的差异。如果异常组集中在某个缓存规则或某个服务器配置变更之后,处理方向就是先修交付,而不是先改内容。这个动作的结果会直接影响下一步:交付修复后,重新抽样同一批 URL,若异常比例下降,才值得继续观察抓取端行为;若异常比例不变,说明假设的缓存或配置原因不成立,需要回到日志里找其他解释。
请求量下降、抓取量归零、站点地图提交后无反馈,这些现象都有多种合理解释。请求量下降可能是因为服务器响应变慢、也可能是抓取端调整了调度;站点地图不保证收录,提交数量增加不等于处理数量增加。把某一项统计的归零直接当成“处理正确”或“处理错误”,都会让对照组失去意义。
另外,HTTPS 不保证页面安全无漏洞,也不保证排名;它只是传输层的一个条件。若把 HTTPS 当成批量页面被发现的解释变量,需要先排除交付完整性和内容重复这两个更直接的原因。不同抓取端对规则和协议的支持情况须分别核查,不能拿一个平台的观察结果直接套到另一个平台。
划分对照组的最终目的,是让“保留、改写、退出”三个决定各自有证据支撑。基线组确认交付完整,实验组按交付差异拆分,再用同一批 URL 的前后记录验证假设——这套顺序比按目录平均分组更能解释批量页面只有一部分被发现的原因。