DTC 品牌营销知识库 DTCBM.COM 关注公众号

SEO · technical-seo

多地区多语言站点与 hreflang 的做法

要点

一、网址结构有三种常用选择,官方不推荐用网址参数区分地区。

结构示例官方列出的优点官方列出的缺点
国家代码顶级域名example.de地区定位清楚,服务器位置无关成本高,基础设施要求多,部分 ccTLD 有注册限制
gTLD 加子域名de.example.com容易设置,服务器可放在不同地点用户可能分不清 de 指语言还是国家
gTLD 加子目录example.com/de/容易设置,维护成本低只能用同一服务器位置,站点之间分隔程度低
网址参数site.com?loc=de无不推荐,难以按网址分段,地区信号不清楚

二、不同语言或地区的内容放在不同网址上,再用 hreflang 标注对应关系。官方建议不依赖 Cookie 或浏览器设置在同一网址上切换语言,因为 Googlebot 可能找不到、抓不到这些变体。

三、hreflang 有三种实现方式,Google 视为等效,选一种维护即可。

  • HTML 标签,放在格式正确的 <head> 内:<link rel="alternate" hreflang="de" href="https://example.com/de/page" />
  • HTTP 响应头,适合 PDF 这类非 HTML 文件:Link: <https://example.com/de/file.pdf>; rel="alternate"; hreflang="de"
  • XML 站点地图,在 <url> 下用 <xhtml:link rel="alternate" hreflang="..." href="..." />,并声明 xmlns:xhtml="http://www.w3.org/1999/xhtml";每个 <url> 元素要列出该页面的全部版本,包括它自己。

三种方式可以同时使用,但官方说明这样做对搜索没有额外好处,只会增加维护难度。

四、写法规则如下。

  • 每个语言版本要列出自己和其他全部语言版本,同一组标签在每个版本上相同。
  • 标注要双向,A 指向 B 而 B 没有指回 A 时,这组标签会被忽略。
  • 替代网址写完整地址,包含 https,写 https://example.com/foo,不写 //example.com/foo 或 /foo。
  • 语言代码用 ISO 639-1(如 en、de),地区代码可选,用 ISO 3166-1 Alpha 2(如 en-GB、de-BE),也可加文字代码(如 zh-Hans-US)。只写地区不写语言无效。

五、x-default 用于浏览器语言和地区都匹配不上时显示的备用页面。它也可以用在其他页面上,但设计初衷是语言选择页,用在语言选择页上效果最好。

六、hreflang 和 canonical 要指向同一语言。官方说明使用 hreflang 时,canonical 指定同语言的页面;同语言没有合适页面时,指定最接近的替代语言页面。Google 在选择规范网址时,会优先选择处在 hreflang 互指组里的网址。例如 de-de 和 de-ch 互相标注而没有标注 de-at,规范网址会倾向 de-de 和 de-ch 的页面,而不是 de-at。

七、同语言、不同地区的页面(如美国、加拿大、英国的英文页)内容相近时,Google 可能把它们当作重复页面。官方判断标准是主要内容是否同一种语言:只翻译了页头、页脚等非主要文字而正文不变,就算重复。对这种情况,官方建议同时使用 canonical 和 hreflang,帮助 Google 判断在搜索结果里显示哪个地区的网址。另外,为同一语言的多个地区页面提供一个不指定地区的通用版本(如 en-IE、en-CA、en-AU 之外再提供 en),供其他地区的该语言用户使用。

八、按 IP 或浏览器语言自动跳转有抓取风险。官方建议不要用 IP 分析来调整内容,理由是 IP 定位难以做准;也不要把用户从一个语言版本自动重定向到另一个语言版本,改用链接让用户自己选择。Googlebot 默认 IP 显示在美国,且请求里不设置 Accept-Language 头,按 IP 或语言返回不同内容的页面,Google 可能抓取、索引、排名不到其他地区的版本。Googlebot 也会用美国以外的 IP 抓取,对这些请求的处理方式应与同地区普通用户一致。

容易误解的地方

  • hreflang 不是 Google 判断页面语言的依据。Google 根据页面上可见的内容判断语言,不使用 lang 属性或网址里的语言信息。
  • 地区代码要符合 ISO 3166-1 Alpha 2。EU、UN 这类代码会被忽略;英国写 GB,写 UK 会被忽略。
  • 翻译过正文的页面不算重复页面,不需要用 canonical 把它们指向某一个语言版本。
  • 不加 hreflang 时 Google 也可能发现其他语言版本,但官方建议明确标注。
  • 只给部分地区版本放开抓取不是官方建议的做法。官方建议各地区版本使用相同的 robots.txt 和 robots meta 规则。

怎么检查

  • 抽查一组语言版本,对照每个版本的 hreflang 列表是否相同、是否包含自身、对方是否回指。
  • 检查 hreflang 网址是否为带 https 的完整地址,语言和地区代码是否有效,地区代码有没有单独出现。
  • 检查每个版本的 canonical 是否指向同语言页面,是否和 hreflang 指向的网址矛盾。
  • 用美国 IP、不带 Accept-Language 的请求访问各地区网址,确认返回的是该网址对应的内容,没有被跳转到其他地区版本。
  • 站点地图实现时,确认每个 <url> 都列出了全部版本,并声明了 xhtml 命名空间。

来源

公众号 DTC品牌营销 二维码扫码 / 长按识别

接入知识库

把整套已验证知识接进你自己的 AI

关注公众号「DTC品牌营销」,自动发放知识库 MCP / CLI 接入 key,让你的 AI 直接调用全部已沉淀经验,并持续接收更新。

相关内容