处理重复或冲突信号的核心做法是:先确定百度最终抓取和索引的是哪一个网址、哪一份内容,再把其他入口明确指向它。重复信号是同一内容有多个可访问网址,冲突信号是同一个网址上出现互相矛盾的指令或内容。两者都会让百度难以判断该收录谁,但排查顺序不同:重复问题优先做网址归一,冲突问题优先核对页面指令与服务器响应。
假设你有一个产品页,可以通过下面四个网址打开:
http://example.com/producthttps://example.com/producthttps://www.example.com/producthttps://www.example.com/product?from=home它们返回的内容几乎一样,但百度会把它们当成不同网址。此时你希望被收录的只有一个,比如 https://www.example.com/product。处理步骤是:
常见错误是只加了 canonical,却没有做跳转;或者跳转链过长,A 跳 B、B 跳 C。百度可以跟随跳转,但链条越长,抓取成本越高,信号也越弱。判断结果时,如果旧网址返回 200 且内容完整,说明重复入口仍然存在,需要继续处理。
冲突信号不是“内容重复”,而是同一个网址上给出了互相打架的信息。常见组合包括:
<meta name="robots" content="noindex">,但站点地图里又提交了这个网址。其中要特别注意:robots.txt 的抓取限制不等于可靠的索引移除。如果百度无法抓取页面,它可能仍然根据外链或历史信息保留一个无摘要的索引条目,也可能无法及时看到页面上的 noindex。想让一个网址彻底退出索引,更可靠的做法是允许抓取、返回 404 或 410,或在页面可抓取的前提下使用 noindex。站点地图也不保证收录,它只是提交候选网址,不能覆盖 noindex 或 robots.txt 的禁止抓取。
第一次接触这个问题,可以按下面顺序做,每一步都留下可核对的记录:
<meta name="robots"> 和 HTTP 响应头中的 X-Robots-Tag,确认是否出现 noindex、nofollow 或 none。如果发现某个现象有多个解释,不要急着下结论。例如“百度没有收录”可能是新页面尚未被抓取,也可能是页面被 noindex,也可能是内容与已有页面高度重复。先确认百度是否抓取过、抓取时看到的状态码和页面内容,再判断属于哪一类。
排查时容易把可能性当成结论。比如看到页面没有收录,就断定是 robots.txt 问题;但实际可能是页面刚发布、还没有被百度发现。可靠的做法是:用抓取工具模拟百度请求,记录返回的状态码、响应头和 HTML 中的 robots 指令。只有这些记录显示出明确冲突,才能说“已经定位到原因”。否则只能列为“可能原因”,继续用其他检查项排除。
另外,HTTPS 不保证安全无漏洞,也不保证排名。它只是传输层的一种保护,与是否被收录、是否获得好排名没有必然的因果关系。不要为了“让百度收录”而把 HTTPS 当成万能开关。
选一个你希望被百度收录的具体网址,用抓取工具分别请求它的 http、https、带 www、不带 www 四个版本,记录每个版本的状态码和 canonical 指向。把结果整理成一张表,你就能清楚看到重复入口和冲突指令分别出现在哪里,再按上面的顺序逐项处理。