先判断这种差异是否属于“同一网址的两种合法变体”。如果未登录与已登录、移动端与桌面端返回的是同一主体内容的两种呈现,且差异来自用户状态而非伪装,那么对照重点是让抓取端看到稳定版本;如果两套内容的主体、价格、库存或可访问范围明显不同,就不能只做对照,而要决定是否拆成不同网址或统一为一种输出。
对照时不要只比较页面标题。把同一地址在两种条件下的响应分别保存为可复查的文本,至少记录状态码、最终地址、正文中稳定出现的几段文字、主要链接和结构化数据。未登录抓取通常代表搜索引擎或匿名访客看到的版本,登录后版本则可能包含账户信息、个性化推荐或不同价格。
若两版只有导航、登录入口和推荐位不同,主体内容一致,属于状态差异。若一版有完整商品与价格,另一版只显示登录提示或区域限制,则属于内容差异。前者可以保留一套给抓取端,后者要重新评估这个地址是否适合作为公开收录入口。
当未登录版本已经包含主要正文、可索引链接和必要说明时,应让抓取端稳定获得该版本。实际动作是:在服务端按请求来源判断,而不是只靠前端脚本切换;对匿名抓取返回完整主体,对已登录用户保留个性化模块。这样做的结果是,搜索引擎拿到的页面与用户首次访问看到的页面接近,后续检查收录频率时,变化更容易归因于内容更新,而不是设备或登录状态。
执行后要复查两件事:匿名请求是否仍能拿到完整正文;登录态下的个性化内容是否被错误地当成公开内容输出。若登录态包含用户私有信息,应确保它不进入公开缓存、站点地图或结构化数据。
如果登录后能看到专属价格、库存或下载内容,而匿名访问只能看到说明页,那么把两者硬塞进同一地址会让抓取端难以判断公开版本。此时可考虑拆成两个地址:公开说明页继续作为收录入口,登录后内容放在需要身份验证的地址,并用链接说明关系。是否拆分取决于业务能否接受公开页不展示完整内容。
若业务必须让匿名用户也看到主体内容,只是登录后增加附加功能,则不必拆地址,只需保证匿名版本完整。若匿名版本只是空壳,且没有替代的公开页面,那么该地址的收录频率下降并不奇怪;这不能单独证明抓取出了问题,也可能是抓取端持续拿到低价值版本后的正常结果。
可以按以下顺序做一次假设性对照,数字仅用于说明比较方法:
若匿名版正文完整,下一步是保持匿名输出稳定,并观察内容更新后收录是否跟随变化。若匿名版正文缺失,下一步不是反复提交地址,而是先补全公开内容或拆分地址。若两版正文都完整但差异很大,下一步要确认是否存在按设备或地区返回不同主体的情况,再决定统一输出还是分别设置入口。
有些差异来自缓存:同一地址在未登录时命中旧缓存,登录后绕过缓存,看起来像两套内容。清理缓存后若差异消失,就不必改地址结构。还有些差异来自前端脚本:未登录时脚本未执行,导致正文没有渲染;登录后脚本执行,正文才出现。这种情况下,抓取端可能长期拿到空壳,需要把关键正文改为服务端输出或提供可访问的替代版本。
另外,robots.txt 限制抓取不等于能可靠移除已收录地址;站点地图也不保证收录。HTTPS 只说明传输层加密,不保证页面安全无漏洞,也不直接决定排名。不同搜索引擎对登录态、设备差异和脚本渲染的处理并不一致,应分别核查,不要用一套表现推断所有抓取端。
最后,请求量或抓取量归零不能单独证明处理正确。它可能是抓取预算转移、地址被合并、服务器暂时拒绝或内容价值下降造成的。把匿名版与登录版的对照记录、缓存状态和公开入口放在一起看,才能决定是继续观察、统一输出,还是拆分地址。