Shopify CLI 与 Headless

Headless 站商品页 canonical 全指向首页怎么修

现象#

Search Console 显示大量商品页的 canonical 指向站点首页,view-source 里 link rel=canonical 一律是 https://shop.com/;同一套商品数据在 Liquid 主题站却正常。

原因#

  • 框架只会合并路由的 meta 导出,子路由没写 meta 就继承父级的默认值
  • canonical 用 new URL(request.url).origin 拼接,丢掉了 pathname
  • 多语言路由的 locale 段没参与拼接,所有语言版本指向同一个 URL
  • 分页参数 page=2 被原样写进 canonical,与第一页互相判重

处理步骤#

  1. 每个路由导出 meta,用 new URL(request.url) 取完整 pathname
  2. 基准域名固定取 env.PUBLIC_STORE_DOMAIN,不要用请求 Host,避免预览域泄漏
  3. 多语言把 params.locale 拼进路径,同时输出对应的 hreflang
  4. 分页页 canonical 统一指向自身或第一页,全站只能选一种规则
  5. 预览环境加 noindex,防止 oxygen.shop 子域被收录

验收标准#

curl -s https://shop.com/products/x | grep canonical 返回该商品自身 URL,Search Console 的 canonical 报告不再指向首页。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。