处理重复或冲突信号,核心不是把所有信号强行改成一致,而是先判断哪一层信号在决定抓取与索引结果,再按优先级修复。对已有页面或项目来说,交付结果应当是:同一内容只保留一个规范地址,抓取入口不互相打架,站点地图、内链、canonical、robots 规则和重定向指向同一个结论。若做不到,就要先记录冲突点、影响范围和验收方式,再动手改。
重复或冲突信号通常表现为几种情况:同一内容有多个 URL;分页、筛选、打印版和参数版都被内部链接指向;canonical 指向 A,站点地图和导航却指向 B;旧地址 301 到新地址,但新地址又 canonical 回旧地址。处理前先列一张表,至少包含:页面类型、当前可访问 URL、返回状态码、canonical 目标、是否在站点地图中、是否有内链、robots.txt 是否允许抓取。
验收标准可以设为:对每个内容主体,只保留一个首选 URL;其他重复地址要么 301 到首选地址,要么返回 404/410(确认无保留价值时),要么用 canonical 明确指向首选地址。不要同时让多个地址都返回 200 且互相 canonical,这会让抓取和索引判断变得困难。
不同信号的作用不同,不能混为一谈。robots.txt 主要限制抓取,不等于可靠的索引移除;页面被 robots.txt 禁止抓取后,搜索引擎仍可能因外部链接而索引该 URL,只是无法读取页面内容。站点地图是发现 URL 的参考,不保证收录。canonical 是合并重复内容的提示,不是强制指令。301 重定向则会把用户和抓取工具带到新地址,通常比 canonical 更明确。
排查时按这个顺序看:
如果 canonical 指向 A,但内链和站点地图都指向 B,优先修内链和站点地图,因为它们是抓取工具发现和判断页面的重要路径。若 A 和 B 都返回 200,且内容高度相似,应尽快确定首选地址并统一信号。
假设一个已有项目出现以下情况:产品页 /product?id=123 和 /product/123 都能打开,内容相同;站点地图只列了带参数版本;导航链接指向带参数版本;canonical 却写在静态版本上。可以按以下步骤处理:
/product/123 是首选地址,检查它返回 200,且内容完整。/product?id=123 做 301 重定向到静态版本;若参数用于追踪且不影响内容,可在服务器或 CDN 层处理,不要用 canonical 代替重定向。适用条件是:两个地址内容相同,且业务上不需要保留带参数版本作为独立页面。如果参数确实会改变页面内容,例如筛选出不同商品列表,就不应简单 301,而应评估是否让这些变体页面可抓取、是否用 canonical 指向主列表页,或是否用 robots.txt 限制抓取。判断结果取决于参数是否产生独立价值。
修复重复或冲突信号不是一次性动作,需要明确责任和验收项。开发负责状态码、重定向、canonical 输出和 robots.txt 规则;内容或运营负责确认首选 URL 和页面价值;SEO 或技术负责人负责检查站点地图、内链和最终信号一致性。
验收时至少检查:
如果检查中发现 canonical 与重定向互相指向,先修重定向,再修 canonical;如果发现站点地图包含大量 404 或 301 地址,先清理站点地图,再观察抓取变化。不要指望单一信号解决所有重复问题。
先不要全站铺开。选一组已经确认内容相同的重复地址,按上面的步骤统一信号,记录修改前后的状态码、canonical、站点地图和内链变化。观察抓取工具后续请求是否更集中到首选地址。若这组验证有效,再按页面类型分批处理;若无效,先回到“哪一层信号在冲突”的判断上,而不是继续叠加新规则。