把中文站翻译成四种语言,如果只做文本替换,结果一定是一堆错位的版面和不被收录的页面。
多语站最常见的做法是把中文页面的文字抽出来翻译,再替换回去。
这样做的结果通常是:德语文本比中文长 40%,按钮被撑破;阿拉伯语从右往左,版面全乱;中文的四字短语翻成英文后失去了节奏,标题变得又长又平。
正确的做法是把多语当成独立站点来建,而不是同一页面的语言变体。
三种常见结构:
· 子目录:example.com/zh/、example.com/en/
· 子域名:zh.example.com、en.example.com
· 独立域名:example.cn、example.com
推荐子目录,因为权重集中在同一域名下。子域名和独立域名会把权重分散。
这个决定后期改起来代价很大(要重新做 301),所以第一次就要定对。
页面上要有 hreflang 标签,告诉搜索引擎这个页面对应哪个语言版本:
每个语言版本都要声明全部语言版本,包括自己。漏掉自己会导致搜索引擎不认。
同时 lang 属性要写在 html 标签上,不能只在 meta 里写。
x-default 用来指定「没有匹配语言时」的默认版本,一般指向英文或主语言。
有些页面只对某些语言有意义。比如面向国内客户的政策解读,翻译成英文反而没有读者。
这时候不要强行翻译,而是让那个语言版本里没有这个页面 —— 但要保证 hreflang 不指向不存在的页面。
另一个方向是某些语言需要额外页面。比如面向海外客户,需要多一个「国际业务」的页面,中文版反而不需要。
如果站点是静态生成的,构建脚本要能按语言分别输出,并且共享同一套模板与组件。
常见做法是:内容用带语言字段的数据结构存,构建时按语言过滤,输出到对应目录。
这比「维护四套独立站点」好维护得多,也比「运行时翻译」对 SEO 友好得多。
代价是构建时间变长(四语等于四次构建),但对于几千页的站点,几分钟能接受。
每个语言版本都要有独立的 sitemap,或者一个 sitemap 里带语言标注。
结构化数据里的 inLanguage 字段要对应正确的语言代码(zh-CN / zh-Hant / en / ru)。
如果做了 AI 搜索优化(llms.txt),多语站要注意:llms.txt 一般只写一份,用主语言描述站点,但要在里面说明有哪些语言版本、各自的 URL 前缀。