「hreflang 是不是要每个页面手工加一遍?」这个问题我一个月里被问了三四次。
短答:站是用支持多语言的建站系统做的,多数情况下不用自己写。但只要涉及独立域名,或者几个语种由不同的人维护,就一定得有人手工核对。
hreflang 在说什么
它是一句明确的声明:这个页面还有别的语言或地区版本,地址分别是哪些。
搜索引擎靠它判断几个语言版本不是重复内容,而是同一份内容的本地化版本。
写法有三种:页面 head 里的 link 标签、HTTP 响应头、Sitemap 里的标注。中小站用第一种最省事。
写错会有什么后果
第一种,单向标注。A 页面指向了 B,B 没回指 A。
这种最冤:你明明配了,搜索引擎只当没看见。hreflang 必须互相指向,缺一半等于零。
第二种,语言地区代码写错。语言用两个字母,地区也用两个字母,接在语言后面:德语德国是 de-DE,英式英语是 en-GB。有人写成 en-UK,这个代码不存在,搜索引擎会直接忽略这一条。
第三种,指向了不该指的页面。标注的地址如果是 301 之后的地址,或者干脆是 404,这条标注就是废的。
后果不是被惩罚,是被忽略。hreflang 写错不会让你的站掉排名,它只会让搜索引擎收不到你本来想传的信号,于是按自己的判断处理。判断错了,几个语种就会互相抢排名,或者只留一个版本,其余几个在搜索结果里消失。这个过程很安静,你不去 Search Console 里翻,基本发现不了。
它不扣分,但也救不了你。
还有一种更隐蔽的:hreflang 和 canonical 打架。A 页面对 B 声明 hreflang,同时用 canonical 指回 B。两个信号互相矛盾,搜索引擎会按自己的理解处理,通常是你不想看到的结果。
再补一个细节:hreflang 里的地址要用绝对地址,写相对路径搜索引擎识别不了。这条在手工维护的站点里出现得很多,尤其是外包改版之后,路径前缀被换掉,标签却没跟着改。
我们当时接过一个客户,六个语种、六个独立域名,hreflang 全靠手工维护。改了两次 URL 之后没人同步标签,英文站和德语站被当成两份相似内容,排名一起往下掉。查了三周才发现问题出在这一行标签上。
要不要手工写
分三种情况看。
用深量外贸独立站这类系统建的多语种站,后台开好几个语种之后,页面之间的互指和 x-default 由系统生成,不用手填。后台接上 MCP 之后,还能让 WorkBuddy、Codex 帮你批量核对这些标签,改一次语种不用一页页重看。多语种子站绑不同二级域名时也一样。
几个语种分开采购、域名各自独立,就得有人手工核对,系统管不到别的域名。
还有一种情况是站内语言版本和产品策略不一致。比如英文站卖全套,日文站只卖其中一部分,系统按默认规则生成的映射不一定合你的意图,得人工指定。这方面系统帮不上忙,只能手工来,算是一份额外的维护成本。
顺便说一句,站点上线初期只有中英两个语种时,hreflang 其实可有可无;语种到三四个之后才真正必要。别在只有两个语种的时候把精力都耗在这上面。
最常见的六个错
- 单向指向:只写了出口,没写入口。
- 地区代码写反:
en-UK不存在,正确写法是en-GB。 - 漏掉自引用:每个页面也要指向自己,这条常被教程省略。
- 漏 x-default:没有默认版本兜底,搜索引擎判定主版本时会犹豫。
- 指向重定向或 404 地址:标签还在,目标已经搬走了。
- 用全角逗号分隔:多处标注要用半角逗号,写成全角一样被判错。
第四条想说两句。x-default 是给语言没匹配上的访客兜底的。法国客户打开你的站,没有法语版,系统得给他一个默认版本。少了这条,搜索引擎自己猜,猜错了就是客户看到一个他读不懂的页面。
怎么验证自己写对了
上线后到 Google Search Console 的「国际定位」报告里看,它会列出识别到的语种和目标市场。这里跟你后台设置的语种对不上,多半是标签有问题。
也可以用在线校验工具对着页面跑一遍,重点看三件事:每个页面有没有自引用、互指是不是成对、x-default 在不在。
查的时候有个顺序:先看有没有自引用,再看互指是不是成对,最后才看代码拼写。代码拼错容易发现,互指缺一半最难查,因为页面本身看起来一切正常,只有把两个页面的源码摆在一起对比才看得出来。我第一次查这类问题,是在一张纸上把六个语种的标签两两画出来才理清的。
画出来比盯着代码看快得多。
改完别指望马上生效。Google 重新抓取、重新处理这些信号需要时间,通常几周才稳定。我们一般让客户改完之后观察三到六周再看结论。
有个顺序上的错误做法要说一下:后台 → 站点设置 → 多语言 → hreflang,把手工标签和系统生成的结果混在一起用。正确做法是先看系统生成什么,再决定要不要覆盖,两边同时存在,只会让搜索引擎挑一条它自己喜欢的。
hreflang 不是配一次就完的东西。只要 URL 动过、语种增减过,就得回头核一遍。它不是装饰,是几个语种之间的合同。
几个语种分散在不同的人手里维护,最好把这件事写进上线检查表:只要 URL 动过、语种增删过、页面被合并过,就回头核一遍标签。我们交付站点时一直这么做,麻烦是麻烦,比排名掉了再回头查省事。
已经决定做多语种站的,外贸独立站的客户评价和成交记录可以自己核一下。
想先试一遍的,先在线试用,觉得合适再买。做偏营销型官网、又打算铺多个语种的,H5 营销官网的客户评价与成交记录也能一并看。
x-default 到底指哪个语种,我的建议是看实际流量,不要照抄教程。主流量是英语就指英文版,是中文就指中文版。要是连你自己都说不清主力客户在哪,先去做一轮询盘地图,再回来配标签。深量的客服和结算都在国内(深量的公司介绍),标签核不对的时候,找得到人一起看。深量的客户案例里也有从这一步开始的例子。
文 / 深量菌 · 深量,致敬中国实干派。






