Google Search Central 对多语言与多地区网站的说明,核心落在一个判断上:搜索系统需要识别每个 URL 面向的语言或地区受众,并确认这些页面之间是等价的本地化版本,而不是内容重复、自动跳转或参数混乱造成的多个副本。hreflang 是向搜索引擎声明替代版本关系的信号,不是决定收录、排名或强制切换页面的指令。
因此,部署前不应先问“要加哪些语言代码”,而应先确认页面关系。若英文产品页、德语产品页和日语产品页分别服务不同语言阅读需求,且主体商品、功能说明、转化路径相互对应,就适合建立 hreflang 关系。若同一语言页面仅因广告追踪参数、筛选条件、分页或会话标识而产生多个 URL,则不应把它们当成本地化版本互相标注。
本地化不等于机械翻译。Google 的相关文档把语言版本与地区版本区分开来:语言版本解决“页面用什么语言表达”,地区版本解决“同一种语言面向哪个国家或区域”。例如,面向美国与英国的英文页面可以都使用 en,但当货币、配送范围、税费说明、联系方式、库存、规格或法律提示存在实质差异时,可分别使用 en-US 和 en-GB。
反过来,如果两个页面内容、价格和服务条件完全相同,只是域名或路径不同,强行按国家拆分未必带来更清晰的信号。地区代码应反映真实的内容或服务差异,而不是仅根据预期投放市场建立大量近似页面。对 B2B 站点而言,产品参数、最小起订量、询盘表单字段和交付范围常常决定页面是否真正属于不同市场版本;对跨境商城,币种、可售地区和物流规则则更容易构成可识别的本地化差异。
Google 也强调,页面的可见正文应与声明的语言相符。仅替换导航栏、页脚或少量按钮文字,而保留主体描述、技术资料和购买信息为另一种语言,不能构成可靠的语言版本。搜索结果面向的语言判断主要依赖页面内容,lang 属性有助于浏览器和辅助技术理解文档,但不能替代可读的目标语言正文。
第一,替代关系必须双向闭合。A 页面声明 B 是其德语版本时,B 页面也应声明 A 是其英语版本;缺少回链时,搜索系统难以确认这是经过维护的对应关系。多个语言版本则应在同一组中彼此引用,并且每个页面包含自身的 hreflang 条目。自身引用并非装饰,它让每个 URL 对所属语言组的定义保持一致。
第二,代码必须使用有效的语言和地区组合。语言部分采用 ISO 639-1 代码,如 de、ja、zh;地区部分使用 ISO 3166-1 Alpha 2 代码,如 DE、JP、CN。语言放在前面,地区放在后面,以连字符连接。de-DE 可以表示德国德语,de 则表示未限定地区的德语。把国家代码单独作为语言代码、使用自定义市场缩写,或将语言与地区位置颠倒,都会使声明失去预期含义。
第三,目标 URL 必须是用户和爬虫可访问的规范页面。若 hreflang 指向会重定向、返回错误、被 robots 规则阻止抓取,或 canonical 指向其他地址的 URL,信号之间就会冲突。常见返工发生在上线后:内容团队更换了产品页路径,开发保留旧语言映射;或者商城按地区切换库存后,将无货页面重定向到首页。这些变化都会破坏原先的替代组。

Google 支持在 HTML 的 <head> 中添加 <link rel="alternate" hreflang="..." href="...">,也支持通过 HTTP 响应头,或在 XML Sitemap 中提交。三种方法表达的是同一类关系,通常选择最贴合发布架构的一种即可。普通 HTML 页面用 head 标签便于随页面模板生成;PDF 等非 HTML 文档更适合 HTTP 头;语言版本数量多且由集中内容系统维护时,Sitemap 可以减少页面模板中的重复输出。
不建议把多种来源当作互相补救的机制。若 HTML、Sitemap 和响应头中的 URL 集合或代码不一致,排查时会失去明确依据。无论采用哪种方式,都应以页面级映射表作为单一事实来源:原始 URL、规范 URL、语言代码、地区代码、对应版本和下线状态应同步更新。产品下架、目录迁移、域名更换时,这张映射表比临时批量替换代码更可靠。
x-default 的位置与边界x-default 用于指定没有更合适语言或地区匹配时的默认页面,常见于语言选择页、全球入口页,或能让访问者自行选择市场的默认版本。它不是“国际站首页”的固定标签,也不应替代每个具体语言页面的 hreflang 声明。
将自动地理定位页面标为 x-default 时尤其需要谨慎。Google 明确建议避免根据 IP 地址或浏览器语言把爬虫和用户强制重定向到不同页面。自动跳转会让用户难以访问指定 URL,也可能使爬虫无法稳定获取各版本内容。更稳妥的做法是保留可访问的版本 URL,在页面上提供可见的语言或地区切换入口;仅在用户明确选择后保存偏好。
canonical 解决“多个相似 URL 中哪个是首选版本”,hreflang 解决“不同语言或地区版本之间如何对应”。两者经常被混淆。英文页与法文页即使结构一致,也不应因为内容相似而把法文页 canonical 到英文页;这会告诉搜索引擎法文页不是独立首选页面,与其作为法语替代版本的声明相矛盾。
较合适的配置是:每种语言或地区页面使用自引用 canonical,hreflang 再连接到其他等价版本。只有当同一语言版本存在 URL 参数、大小写、尾部斜杠、打印页或重复路径时,才在该语言内部选择 canonical。先整理规范化,再建立国际化映射,能避免把 URL 清理问题误当作语言版本问题。
验证不应只看源代码里是否出现标签。先抽查一组页面:每个 href 是否返回可索引的成功响应,是否直接到达最终规范 URL,页面是否包含回链,语言代码是否与正文和市场条件一致。随后检查站点地图、模板渲染与缓存层,确认不同地区访问时不会输出不同的 hreflang 集合。
Search Console 中与国际定位相关的异常、已发现但未正确处理的替代页,以及规范页选择结果,都可用于定位问题。这里需要区分两个现象:搜索结果没有展示目标地区页面,不必然说明 hreflang 失效,查询语言、用户位置、页面相关性与索引状态都会影响展示;而替代页长期无法被抓取、互相引用缺失或 canonical 指向跨语言页面,则属于配置层面需要优先修复的信号。
hreflang 的价值在于减少搜索系统对语言版本关系的猜测。前提不是标签数量足够多,而是 URL、内容语言、规范化策略和站点实际服务范围指向同一个事实。
相关文章
相关产品