核心做法是:先用同一台设备、同一网络、同一登录状态抓两次,再逐项改变设备或登录状态抓第三、第四次,把每次得到的HTML正文、状态码、规范链接和页面可见文字记下来。如果只有登录后或某一类设备才出现目标内容,那么搜索引擎不收录的原因更可能是内容分发差异,而不是页面本身不存在。下面用一个明确标注为假设的情境,把对照和决策过程写清。
假设某站有一个商品详情地址,未登录时返回精简版页面,只显示价格区间和“登录查看库存”;登录后返回完整版页面,包含规格、库存状态和配送说明。桌面端与移动端都指向同一地址,但移动端未登录时又返回另一种精简版。现在发现该地址长期没有出现在搜索结果里,需要判断是内容分发差异造成的,还是抓取、索引或页面质量问题。
这个情境的关键不是“登录页一定不被收录”,而是同一地址对搜索引擎返回的版本,可能与真实用户看到的版本不同。若爬虫拿到的是精简版,而精简版又缺少可索引的主体内容,那么不收录就有了合理解释。反之,如果爬虫拿到完整版却仍不收录,就要转向其他原因。
每次抓取都要留下可复查的记录。建议至少记录以下字段:
记录时不要只截图页面外观,因为外观可能被前端脚本改写。应保存服务器返回的原始HTML,再与浏览器执行脚本后的可见文字对照。若原始HTML里没有目标内容,而浏览器里能看到,说明内容依赖脚本渲染;这时要区分是“返回了不同版本”,还是“同一版本靠脚本补全”。
实际动作:用同一地址分别做四次抓取——未登录桌面、未登录移动、登录桌面、登录移动。把四次返回的正文逐段对照。结果若显示只有登录桌面版包含完整规格,而未登录版和移动未登录版都缺少规格,那么下一步应优先检查内容分发逻辑,而不是先改站点地图或提交收录请求。
三种原因会产生相似现象,但对照方式不同:
一个可区分的证据是:如果清除缓存后,未登录版仍然缺少主体内容,那么缓存不是主因;如果清除缓存后未登录版出现完整内容,那么此前的差异更可能是缓存返回了错误版本。这个判断只说明缓存影响了返回内容,不能单独证明收录结果会因此改变。
对照完成后,按以下分支处理:
这些动作的结果会影响下一步:只有先确认爬虫实际拿到的版本,后续对收录的判断才有依据。请求量、抓取量或某项统计归零不能单独证明处理正确,因为缓存、抓取预算分配、站点结构调整都可能产生同样现象。
回到前面的假设:四次抓取显示,未登录桌面和未登录移动都只返回价格区间与登录提示,登录桌面才返回完整规格,登录移动返回的正文与登录桌面一致。清除缓存后结果不变,说明缓存不是主因。此时更合理的结论是:同一地址因登录状态返回了不同内容,未登录版本缺少可索引主体。下一步应先让未登录版本包含完整规格与配送说明,再检查该地址的抓取状态和索引状态。若调整后仍未收录,再分别核查不同搜索引擎的支持情况,而不是把未登录版的差异当成唯一解释。