同一地址出现两套内容时,不要先争论哪套“正确”,而要先确认差异是否由设备类型或登录状态触发。把请求条件写进对照表,用同一测量口径分别取样,再决定优化对象是公共版本、登录后版本,还是两者都要各自设定阈值。
设备分流通常表现为移动端与桌面端返回不同的 HTML 结构、图片尺寸或脚本集合;身份分流则表现为登录后出现个性化模块、推荐位或管理入口。两者可以叠加:移动端未登录、移动端已登录、桌面端未登录、桌面端已登录,可能对应四种不同的响应。
可区分的证据包括:响应头中的 Vary 字段是否包含 User-Agent 或 Cookie;同一 URL 在清除 Cookie 后是否回到公共版本;移动端与桌面端的关键资源数量是否明显不同。若清除 Cookie 后内容不变,设备分流的可能性更大;若切换设备但保持登录态后内容趋同,身份分流的解释更合理。
适用条件是登录后内容属于个性化区域,且爬虫与未登录用户看到的是同一套主体内容。此时应固定无 Cookie、无登录态的请求条件,分别用移动端和桌面端标识取样。实施动作是记录首屏可见文本、阻塞渲染的资源数量和最大内容绘制时间,然后只对公共版本做加载速度提升。结果是优化范围收窄,改动风险较低,但登录后版本可能仍有独立瓶颈,需要后续单独处理。
适用条件是登录后版本承担核心转化路径,或登录状态会改变首屏结构。此时要建立两组基线:一组无登录态,一组使用测试账号登录。每组都注明设备标识、视口尺寸和网络条件。实施动作是先对比两组的资源瀑布与首屏元素差异,再决定优先优化哪一组。结果是优化目标更贴近真实用户路径,但测量成本更高,且测试账号状态变化会影响可复查性,需要固定账号权限和缓存状态。
这个顺序的价值在于把“我看到的和你看到的不一样”变成一张可核对的表。任何人复现同一编号,都应得到相近的响应结构;若不能复现,说明还有未记录的条件在起作用。
缓存层可能让同一条件组合返回不同结果:CDN 边缘节点、浏览器缓存或服务端页面缓存都可能造成差异。判断时先确认缓存状态是否一致,再下结论。另一种例外是 A/B 测试或灰度发布,此时差异是临时且有意为之,不应直接当作缺陷处理,而应记录实验分组和持续时间。
还要注意,请求量或抓取量下降不能单独证明某次改动正确,它也可能来自统计口径变化、抓取配额调整或外部流量波动。robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。若对照中发现某个条件组合的响应异常,先确认该组合是否本就允许被外部访问,再决定是否调整。
假设某地址在移动端未登录时首屏只有标题和正文,移动端登录后额外出现推荐模块和评论框。若只对照未登录版本,可能误判为“移动端很轻”;若只对照登录版本,又可能把个性化模块的加载算到公共页面上。合理做法是分别记录两组,先优化公共版本的图片与字体加载,再单独评估登录后推荐模块是否延迟加载。下一步动作取决于哪一组更接近核心用户路径,而不是取决于哪一组数字更好看。