先给结论:不要用两台设备或两种登录状态各看一遍就下判断,而要先固定一个可复现的请求口径,再让分歧双方用同一口径各自复现。如果同一地址在未登录、已登录或不同设备上返回不同正文,通常不是“收录网站本身出错”,而是站点对请求做了差异化响应。对照的关键不是争论谁看到的是真的,而是找出差异由哪个请求变量触发,并确认搜索引擎实际拿到的是哪一版。
同一地址返回不同内容,最常见的两类原因需要分开处理。
这两类解释对应的证据完全不同。服务端差异要看原始响应,客户端差异要看脚本执行后的 DOM。只截图对比,无法区分二者。
一个实际动作是:用不带 Cookie、不带登录态的请求抓取该地址,保存原始响应体,然后在其中搜索关键正文。
这一步的结果会直接决定下一步:前者去查脚本和缓存,后者去查服务端分流规则。不要在没做这一步之前就改 robots.txt 或提交删除请求。
多个角色对同一事实理解不同,往往是因为各自用了不同的请求条件。把下面几项写成固定口径,双方再各自复现:
假设某一版正文只在登录后出现,而未登录请求返回的是登录提示。此时若有人用已登录浏览器查看,就会认为“页面明明有内容”,另一个人用无痕窗口查看则得出相反结论。把登录态这一项固定为“未登录”,分歧通常当场消失。
站点对普通访客和爬虫返回不同内容时,需要单独核查爬虫视角,而不是用浏览器视角代替。可以查看服务器访问日志中爬虫请求对应的响应状态与响应体大小,或使用搜索平台提供的抓取测试功能查看返回的原始 HTML。不同搜索引擎的支持情况和工具入口须分别核查,不能用一个平台的结论套到另一个平台。
如果爬虫拿到的是登录提示或空壳页面,那么“页面有内容”这一判断对收录没有意义。此时要处理的是服务端分流规则,而不是页面本身。
有些现象看起来像证据,实际不能单独证明处理正确:
把上述旁证排除后,再回到原始响应和固定请求口径这两项证据上。能复现的差异才是可修的分歧,不能复现的差异先记为待查条件,不要急着改配置。