处理百度收录优化中的重复或冲突信号,第一步不是急着删页面或改代码,而是先判断冲突发生在哪一层:是百度抓取时看到了多个入口,是索引时把多个URL归并成一个,还是展示时标题和摘要被替换。三层处理方式不同,混在一起操作容易把原本正常的页面改坏。对第一次接触这个问题的人来说,起点是列出所有指向同一内容的URL,终点是让百度明确知道哪个是主版本、哪些是重复版本。
很多人把“重复或冲突信号”理解成百度会对重复内容直接降权,于是把所有相似页面都删掉。这个理解过于绝对。百度面对重复内容时,更常见的是做去重和归并:它从多个URL里选一个作为代表展示,其余URL可能不单独出现在结果里。也就是说,问题往往不是“被惩罚”,而是“你想被收录的那个URL没被选中”。
真正需要警惕的是冲突信号,而不是单纯重复。例如同一个页面同时通过http和https可访问,或者带www和不带www都能打开,并且都返回正常状态码,百度就需要自己猜哪个是主版本。如果站点内部链接一半指向A、一半指向B,冲突就更明显。
不要凭印象判断,先动手收集。可以用站点日志、百度搜索资源平台里能看到的抓取数据,或者站内爬取工具,把同一篇内容可能对应的URL全部列出来。清单至少包含以下检查项:
http://example.com/a 与 https://example.com/a 是否都能打开。www与不带www是否都返回200。/a与/a/是否都返回200。/a?id=1与/a是否内容相同。/A与/a是否被当成两个地址。判断结果很直接:如果同一个内容对应多个都返回200的URL,就存在冲突信号;如果只有一个返回200,其余跳转到它,冲突已经处理好了。
确认存在重复URL后,选择一种主版本,并让其他版本明确指向它。常见做法有两种,适用条件不同。
第一种是301跳转,适合旧域名、旧协议、旧路径这类不再作为主入口的版本。例如把http全部301到https,把不带www的版本301到带www的版本。301表示永久转移,百度会把权重和索引逐步归到目标URL。条件是:你确定目标版本长期不变,并且服务器能稳定返回301。
第二种是rel="canonical",适合内容相同但URL都必须保留的情况,比如带参数的筛选页。在页面<head>里写<link rel="canonical" href="主URL">,告诉百度主版本是哪个。注意规范标签是建议,不是强制指令,百度仍可能根据其他信号自行判断。条件是:页面本身能正常访问,且规范标签指向的URL确实存在、可抓取。
有人以为把主URL放进站点地图,百度就会优先收录它;或者用robots.txt屏蔽重复URL,问题就解决了。这两种做法都有边界。
站点地图只是提交入口,不保证收录,也不保证百度一定选它作为主版本。它适合帮助百度发现URL,不适合用来裁决冲突。
robots.txt的Disallow只是限制抓取,不等于可靠的索引移除。如果重复URL已经被百度索引,之后再用robots.txt屏蔽,百度可能因为无法抓取而看不到页面上的规范标签或noindex,反而让旧索引停留更久。更稳妥的顺序是:先让重复URL可被抓取,在页面上给出规范信号或返回301,等百度更新后,再考虑是否限制抓取。
处理之后需要验证,而不是提交完就结束。可以按以下步骤复查:
site:查询主URL和重复URL,观察百度当前保留了哪些版本。结果会随时间变化,不要只看一次。<head>,确认规范标签指向自己,而不是指向别的URL。如果重复URL仍被索引,先判断它是否可抓取、是否能看到规范信号。可抓取且信号正确时,通常需要等待百度重新抓取和更新;不可抓取时,应先恢复可抓取。这个过程没有固定时长,取决于抓取频率和页面重要程度。
下一步,从清单里挑出一个最典型的冲突URL,按“可抓取、有规范信号、站内链接统一”的顺序改一遍,再观察百度后续抓取的是哪个版本。