You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Craft CMS 4多语言最佳实践:URL规范与索引问题咨询

Craft CMS多语言URL索引问题的解决建议

核心问题梳理

  • 当前默认语言存在两套可访问的URL结构:带locale(如/en/about)和不带locale(如/about),导致谷歌重复索引相同内容
  • Craft CMS未自动将无locale的请求(如根域名、/about)重定向到默认语言的带locale URL

要不要移除默认语言URL中的locale?

别这么做。虽然看似能解决当前索引问题,但会带来更多麻烦:

  • URL结构不一致会大幅增加后续维护成本,比如模板、路由规则需要单独区分处理两种结构
  • 已收录的带locale链接若未做301重定向,反而会新增更多重复索引内容

正确的解决步骤

  1. 强制重定向无locale请求到默认语言版本

    • 可以通过Craft的SEO类插件(比如SEOmatic)实现,或者直接在服务器配置(Nginx/Apache)中添加重定向规则
    • Nginx规则示例:
      if ($request_uri !~ "^/(en|nl)/") {
          return 301 $scheme://$host/en$request_uri;
      }
      
    • 确保根域名直接跳转到/en,所有无locale的页面路径都301到带/en的对应地址
  2. 配置规范的hreflang标签

    • 在页面<head>中添加hreflang标签,明确告知谷歌各语言页面的对应关系,避免误判为重复内容
    • 代码示例:
      <link rel="alternate" hreflang="en" href="https://你的域名/en/about">
      <link rel="alternate" hreflang="nl" href="https://你的域名/nl/about">
      <link rel="alternate" hreflang="x-default" href="https://你的域名/en/about">
      
  3. 在谷歌搜索控制台完成收尾

    • 将所有带locale的规范URL提交到搜索控制台,并标记/en版本为默认语言
    • 使用搜索控制台的移除工具清理已收录的无locale重复页面

内容的提问来源于stack exchange,提问作者Matthias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:07:37