在网站URL结构里,重复或冲突信号指的是同一内容能通过多个URL访问,或同一URL被不同入口、参数、大小写、斜杠写法指向不同结果。时间和人手有限时,最先处理的不是所有细节,而是那些已经产生多个可访问地址、且被内部链接或站点地图同时指向的URL。判断标准很简单:打开两个地址,如果页面主体内容相同而URL不同,就属于重复信号;如果两个地址返回不同内容或状态码,就属于冲突信号,优先处理冲突。
不要凭感觉列清单,先从可核对的入口看:
?ref=、?utm= 参数的地址打开,也能通过不带参数的地址打开,且内容一致。/page 和 /page/,两者都能返回200。/About 与 /about,都能访问且内容相同。这些现象里,前四条通常是重复信号,最后一条是冲突信号。冲突比重复更急,因为用户和抓取工具会得到不一致的结果。
冲突信号的典型表现是状态码不一致。比如同一内容,一个URL返回200,另一个返回404,或者两个URL都返回200但内容不同。这类问题会直接让抓取工具无法确定哪个是正确版本。处理顺序建议是:
如果人手只够做一件事,先检查站点地图和主导航里指向的URL是否一致。这是最容易定位、也最容易产生连锁冲突的地方。
处理重复信号时,301重定向是常用手段,但它适用于确定要保留一个地址、放弃另一个地址的场景。例如假设站点同时存在 /product?id=12 和 /product/12,且后者是希望保留的版本,可以把前者301到后者。这里的前提是前者没有独立流量或外链价值;如果有,先记录再决定。
如果两个地址都需要保留,只是希望抓取工具知道主版本,可以在页面里使用 <link rel="canonical"> 指向规范地址。注意,canonical是提示,不是强制指令,不同搜索引擎的支持和采纳情况需要分别核查。它不能替代301,也不能解决两个地址内容不同的问题。
对于参数造成的重复,可以在robots.txt里限制抓取,但要记住:robots.txt的抓取限制不等于可靠的索引移除。被限制抓取的URL仍可能因为外链等原因出现在结果里。更稳妥的做法是让参数地址返回301或使用canonical,而不是只靠robots.txt。
处理完成后,不要只看一个地址能否打开。复查项包括:
复查时如果发现301链超过一跳,例如A跳到B,B又跳到C,应尽量改成A直接跳到C。链式跳转会拖慢抓取,也增加出错概率。HTTPS在这里只说明传输加密,不保证页面没有重复或冲突,也不保证排名,所以不要把HTTPS当成重复信号的解决方案。
如果只有半天时间,按这个顺序做:
下一步,选一个你已经确认存在重复的栏目,先统一它的URL写法,再把这个规则套到其他栏目。不要一次性全站改完,否则很难判断哪一步引入了新冲突。