hreflang 是用于向搜索引擎传达“此页面另有面向某种语言(及地区)的版本”的属性。当日文公司简介页面有英文版和中文版时,Google 会参考 hreflang,向用英文搜索的用户展示英文版,向用中文搜索的用户展示中文版。即使不设置,各语言页面也会被分别编入索引;但设置后,它们会被视为“同一页面的不同语言版本”,更容易在搜索结果中显示合适的语言版本,也不必担心重复内容问题。
写法(放入 HTML 的 head 中)
在每个页面的 <head> 中,列出包括自身在内的所有语言版本。以下示例为日文网站 example.co.jp 上,将英文、简体中文、韩文版本以 global.example.co.jp 进行发布。
<link rel="alternate" hreflang="ja" href="https://example.co.jp/company/">
<link rel="alternate" hreflang="en" href="https://global.example.co.jp/en/company/">
<link rel="alternate" hreflang="zh-Hans" href="https://global.example.co.jp/zh-Hans/company/">
<link rel="alternate" hreflang="ko" href="https://global.example.co.jp/ko/company/">
<link rel="alternate" hreflang="x-default" href="https://example.co.jp/company/">
- 语言代码采用 ISO 639-1(
en、ja、ko)。中文一般按文字体系区分,简体为zh-Hans,繁体为zh-Hant。如需添加地区,可写成en-US、zh-TW这样的形式。 - x-default是“向不符合任何语言的访问者展示的页面”。如果原文为日文,指定日文页面较为自然。如有语言选择页面,也可指定该页面。
- 必须相互引用。英文页面需指向日文页面,日文页面也需指向英文页面,否则无效。
- URL 须为绝对 URL,并指定实际返回 200 的页面。如果指向会被重定向的 URL 或 noindex 页面,将被忽略。
在站点地图中指定的方法
如果无法编辑 HTML,可以在 XML 站点地图中写入相同的信息。为每个 URL 用 xhtml:link 列出所有语言版本。
<url>
<loc>https://global.example.co.jp/en/company/</loc>
<xhtml:link rel="alternate" hreflang="ja" href="https://example.co.jp/company/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://global.example.co.jp/en/company/"/>
<xhtml:link rel="alternate" hreflang="ko" href="https://global.example.co.jp/ko/company/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.co.jp/company/"/>
</url>
即使站点地图位于其他主机上,只要在 robots.txt 中引用,也会被接受。example.co.jp/robots.txt 至 Sitemap: https://global.example.co.jp/sitemap.xml 的写法。
与 canonical 的关系
rel="canonical" 是“此页面的正式 URL 是这个”的声明,各语言页面应将自身设为 canonical。如果将英文页面的 canonical 指向日文页面,就等于在说“英文页面是日文页面的重复内容”,英文页面将被移出索引。请记住:hreflang 用于关联各语言版本,canonical 用于在各语言版本内确定正式 URL。
常见错误
| 单向指定 | 只在日文页面中写 hreflang,而英文页面中没有写。由于缺少相互引用,因此会被忽略。 |
|---|---|
| 语言代码错误 | jp(正确写法是 ja)、cn(正确写法是 zh-Hans 或 zh-CN)、en-UK(正确写法是 en-GB)。 |
| 将 canonical 指向原文 | 翻译页面被视为重复内容,从搜索结果中消失。 |
| 指向未翻译的页面 | 用 hreflang="en" 指向不存在英文版的 URL 会导致错误。请仅在有对应语言版本的页面中编写。 |
| 通过 JavaScript 事后插入 | 爬虫有时会在渲染前读取页面。请将其包含在服务器返回的 HTML 中,或在站点地图中指定。 |
确认是否设置成功
由于 Google Search Console 的“国际定位”功能已停用,目前最可靠的方法是通过 网址检查查看各语言页面是否已被编入索引。数周后,按国家查看“搜索效果”,即可了解哪个语言版本在哪个国家展示。
Sotomuke 的情况
Sotomuke 提供的翻译页面会在服务器端自动加入各语言 URL、指向自身的 canonical、所有语言版本的 hreflang 以及 x-default,站点地图中也包含相同的信息。如果可以在原日文网站上放置 hreflang,可按照从原网站链接到翻译页面的步骤,将包括原文页面在内的整组页面告知 Google。
