如果同一个页面有多种语言版本,就需要告诉搜索引擎这些版本属于同一组。这正是 hreflang 的用途,也很容易写错。代码来自三项彼此独立的标准。每个版本都必须指向其余所有版本,包括它自己;只要缺少一条回指链接,整组都会被忽略,而不是只忽略其中一条。请在每一行填入网址和语言代码,或者只填一个网址,让工具生成其余部分。您输入时代码会以文字回读出来,因此错误在进入线上页面之前就会显现。输出结果是放进页面 head 的一段代码、供非 HTML 文件使用的 HTTP 标头,或者写入 sitemap 的条目。
每个版本都列出全部版本
一个页面指明了某个替代版本,那个版本也必须反过来指回它,否则这条标注会被忽略。这条规则的存在,是为了让别的网站无法未经您同意就把您的页面说成是它自己的替代版本。整组内容在每个网址上都完全相同,所以一段代码就能覆盖全部。
代码来自三项标准
语言来自 ISO 639-1,地区来自 ISO 3166-1 alpha-2,某些语言需要的文字则来自 ISO 15924。一个代码可以同时带上三者,例如 zh-Hans-US。每一部分都单独核对,因此能发现那些格式无误、含义却与您本意不符的代码。最清楚的例子是 be,它是白俄罗斯语,而不是比利时。
选定一种方式并一直沿用
页面 head 里的标签、响应中的 Link 标头,或者 sitemap 里的条目。Google 视三者等同,所以用不止一种只会增加维护量,不会增加含义。多数网站适合用标签。标头是为 PDF 这类非 HTML 文件准备的,而 sitemap 可以让标记不必进入每一个模板。
备用页面就是您已有的页面
x-default 面向那些语言与这一组中任何一项都不匹配的访问者。它指向您已经列出的某个网址,通常是语言选择页或主要版本。在那一行勾选备用页面,标签就会自动写好。
每个代码的每一部分,以及整组。
- 来自 ISO 639-1 的语言
- 来自 ISO 3166-1 alpha-2 的地区
- 来自 ISO 15924 的文字
- 重复的代码和网址
- 备用页面多于一个
- http 与 https 混用
- 放进 head 的标签
- 供其他文件使用的 Link 标头
- Sitemap 条目
- 子目录、子域名或国家域名
- 带查询字符串的网址
- 一个网址展开到所有语言