做多语言站的人,十个里有八个在 hreflang 上栽过跟头。我自己也交过学费,所以这事儿得好好说说。
hreflang 是干嘛的。你一个站有中文版、英文版、日文版,内容其实是一回事,只是语言不同。搜索引擎看到三个不同地址,容易懵,它不知道这仨是同一内容的不同语言版本,搞不好当成重复内容处理。hreflang 就是给它递个字条,告诉它这几个页面是兄弟,分别是给哪国、说哪种语言的用户看的。
最常见的坑,是 hreflang 声明不对等。你中文版指着英文版说这是我的英文兄弟,但英文版那边压根没提中文版。搜索引擎要求这个关系是双向的,你单方面指认,它不认。所以每一个语言版本,都要把其他所有版本都列出来,包括它自己。这条特别容易漏,尤其语言版本一多,列表写漏一个就白搭。
第二个坑,用了错的地区码。比如简体和繁体都用 zh,但一个是 zh-CN 一个是 zh-TW。你要是都写 zh,搜索引擎分不清是给大陆还是给台湾。语言码和地区码是两段,语言按 ISO 639 写,地区按 ISO 3166 写,别混着来。还有个特殊值是 x-default,用来指定那种没有特定语言指向时的默认页面,比如你给一个国际用户看的通用落地页。
第三个坑,hreflang 指到了不该指的地址。比如指到一个 404,或者指到一个跳转后的最终地址而漏了中间环节。搜索引擎跟着去找,找不到就整个忽略你的声明。
那怎么检查呢。你可以用站长平台的国际化报告,或者找专门的 hreflang 校验工具跑一遍。重点是看有没有报错,有没有单向声明,有没有循环指认。
我现在做多语言站,第一步先把语言版本的清单列全,然后用表格把每一个页面需要声明的所有 hreflang 列出来,再往模板里填。这活儿看着笨,但能保证不漏。语言这事儿,漏一个,搜索引擎就可能把你整组页面当成重复内容,前面的功夫全白费。
—— 来自 挖的客 - 优秀网站分类目录 的分享