canonical 这个标签,我看过太多人用错。用对了它帮你集中权重,用错了它等于亲手把辛苦攒的权重送给别人,很多人还浑然不觉。
先说最常见的错误。canonical 的地址写成了不存在的页面。比如你页面实际地址是带 www 的,canonical 却写成了不带 www 的,而那个版本又没做跳转,直接返回 404 或者一个空页面。这下好了,你告诉搜索引擎我真正的家在这儿,结果它过去一看是块荒地。它要么忽略你的指示,要么真把那个荒页面当正主,反正你页面是吃亏了。
第二个常见错误,全站的 canonical 都指向首页。这个更狠。有些人图省事,模板里把 canonical 写死成首页地址,结果全站几百个页面都跟搜索引擎说,我的正主是首页。搜索引擎一看,行吧,那这些页面都是重复内容,只收首页。你辛苦写的文章,就这么被你自己判了死刑。
第三个错误,canonical 指向的页面本身又有 canonical,指回来或者指到第三个地址。这叫什么,这叫循环声明。搜索引擎走到一半发现你在转圈,干脆不管了。
我说这些不是吓唬人。canonical 的正确用法其实就一句话,每个页面的 canonical 都应该是它自己的标准地址,一个能正常访问、返回 200 的地址。全文就这一条。你不确定写什么,就写当前页面的真实规范 URL,别自作聪明跨页面乱指。
什么情况下才需要 canonical 跨页面指。是那种真正有重复的页面。比如电商里同一个商品有多个入口 URL,一个带颜色参数一个不带。这时候你挑一个作为主版本,其他几个 canonical 指过去。这是正经用法。但一定要确保主版本是真实存在、可访问、内容完整的。
我建议你把 canonical 当成一个不能随便动的字段。改之前先想清楚说清楚,改完立刻验证。因为它一旦配错,后果不是慢一点,而是整站权重被你自己拆散。
—— 来自 挖的客 - 优秀网站分类目录 的分享