Shopify canonical 与 hreflang 冲突怎么修
现象#
德语页 /de/products/xxx 的 canonical 指向 /products/xxx,hreflang 却把 /de 版声明为德语版本,Search Console 显示该页「备用网页」。
原因#
- 主题手写 canonical 为 shop.url 拼 product.url,而 product.url 不带语言前缀
- canonical 固定指向默认语言地址,等于声明德语页是英文页副本,hreflang 随即被忽略
- SEO 应用接管了 canonical 输出,与主题里的标签重复,Google 只采信第一个
- 德语版本从未被单独索引,hreflang 声明失去实际意义
处理步骤#
- 打开 /de/products/xxx 源码,复制
canonical与两条 hreflang 的 href 逐条比对 - 把 canonical 改为
{{ canonical_url }},让 Shopify 输出带当前语言前缀的地址 - 删除主题里手写的 canonical,全页只保留一处,避免与应用重复
- 确认每条
hreflang的 href 与对应语言页的 canonical 完全一致 - 用 URL 检查抓 /de/products/xxx,查看「用户声明的规范网址」是否等于自身
验收标准#
德语页 canonical 指向 /de 开头的自身地址,hreflang 与 canonical 前缀一致,该页不再显示备用网页。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。