诊断工具

hreflang 检查器

输入一个 URL,读取页面上的每一条 hreflang 标注,逐一检查语言和地区代码,并抓取各个备用版本,确认它们都链接了回来。

我们的服务器会抓取你输入的页面及其最多 10 个备用 URL,再交回你的浏览器,所有检查都在浏览器中运行。不存储任何内容。

hreflang 检查器的工作原理

Google 从三个地方读取 hreflang 标注:HTML head 中的 link 元素、HTTP Link 响应头,以及 XML 站点地图。本检查器会抓取你输入的页面,并读取前两种。如果使用站点地图方式,请在站点地图文件中查看 xhtml:link 条目。

每个值都会按照 Google 文档规定的格式检查:一个语言代码,后面可选地跟一个文字代码和一个地区代码,或者是保留值 x-default。每个 URL 都必须是完整的绝对地址,HTML 中的 link 元素必须位于 head 之内。

接着,检查器会抓取页面列出的最多 10 个备用 URL,并读取它们的标注。Google 表示,每个语言版本除了列出所有其他版本,还必须列出自身;如果两个页面没有互相指向,这些标记就会被忽略。这项回链检查正是大多数工具所忽略的。

hreflang 规则一览

下面每一条规则都出自 Google 搜索中心关于本地化版本的页面,并且各自对应工具中的一项检查。

语言代码ISO 639-1,例如 en、de 或 ja。只指定地区是无效的。
地区代码可选,ISO 3166-1 alpha-2,例如 GB 或 MX。不支持标准之外的代码,例如 es-419。EU、UN 和 UK 不起作用。
文字可选,ISO 15924,例如表示繁体中文的 zh-Hant 或表示简体中文的 zh-Hans。
大小写值不区分大小写,因此 en-gb 和 en-GB 含义相同。
x-default保留值,用于没有其他语言或地区与用户浏览器设置相匹配的情况。专为语言选择页面设计。
自引用每个版本除了列出所有其他版本,还要列出自身。
回链如果页面 X 链接到页面 Y,页面 Y 必须链接回页面 X。否则,这些标注可能会被忽略。
URL完整的绝对地址,包含 http 或 https。不能是 //example.com/foo,也不能是 /foo。备用版本不必位于同一域名下。
位置在 HTML 中,link 元素必须位于格式正确的 head 部分之内。

规则已对照 Google 文档核实: Tell Google about localized versions of your page

检查器会报告什么

  • 页面上的每一条 hreflang 标注,来自 HTML head 和 HTTP Link 响应头
  • 不属于 ISO 639-1 的语言代码、不属于 ISO 3166-1 alpha-2 的地区代码、单独使用的地区代码,以及保留的 EU、UN 和 UK 代码
  • Google 不接受的相对 URL 或协议相对 URL
  • 缺失的自引用,即没有任何标注指向你所检查的页面
  • 重复列出的同一代码,以及放在 head 之外的 link 元素
  • 针对最多 10 个备用版本:每个是否链接回来、是否发生跳转或返回错误,以及它的标注集合是否与本页一致

毁掉国际化 SEO 的十个 hreflang 错误

几乎所有出问题的 hreflang 配置背后的十个错误,每一个都附有症状和修复方法。

阅读 hreflang 指南

博客精选

全部指南 →

Frequently asked questions

hreflang 检查器检测什么?
它读取页面上的 hreflang 标注,并按 Google 的规则逐项检查:合法的 ISO 639-1 语言代码和 ISO 3166-1 alpha-2 地区代码、完整的绝对 URL、自引用,以及每个备用版本的回链。本工具还会报告重复的代码和位于 head 之外的 link 元素。
en-UK 是合法的 hreflang 值吗?
不是。在 ISO 3166-1 alpha-2 中,英国的地区代码是 GB,所以应写成 en-GB。Google 将 UK 与 EU、UN 一起列为在 hreflang 标注中不起作用的代码。语言部分仍然有效,但地区部分毫无作用。
我需要 x-default 吗?
Google 并不强制要求。保留值 x-default 告诉 Google,当没有其他语言或地区与用户的浏览器设置相匹配时该使用哪个页面。它专为语言选择页面设计,但可以用在任何页面上。缺少它时,检查器会给出提示。
检查器为什么要抓取其他页面?
因为 hreflang 只有成对才能生效。Google 表示,如果两个页面没有互相指向,这些标记就会被忽略。确认这一点的唯一办法是打开每个备用版本并读取它的标注,检查器正是对其中最多 10 个这样做的。
hreflang 会告诉 Google 我的页面是什么语言吗?
不会。Google 表示,它不使用 hreflang 或 HTML lang 属性来判断页面语言,而是使用自己的算法。hreflang 告诉 Google 的是:这个页面还有哪些其他版本,以及每个版本面向哪些用户。