当站点开始覆盖不同语言或不同地区的用户时,页面数量会成倍增长。如果语言版本之间的关系没有提前理清,常见的问题有几类:同一篇内容被多个地址承载、蜘蛛在语言目录之间来回抓取、权重被摊薄、用户被自动跳转到并不想看的版本。下面这份自查清单,适合在上线前和日常维护中对照检查。
一、先分清“语言”和“地区”
语言和地区是两个维度,混在一起很容易把标记写乱。
- 语言:zh-Hans、zh-Hant、en、ja 这类,用来说明页面使用的文字。
- 语言加地区:zh-CN、zh-TW、en-US、en-GB,用来说明面向的具体市场。
如果只是把简体内容转成繁体,用 zh-Hans 和 zh-Hant 往往比 zh-CN 和 zh-TW 更准确;如果涉及货币、配送范围、法律条款的差异,那才需要落到地区级别。定位不清楚,后面的 URL 和标记都会跟着含糊。
二、URL 结构一次定好,别中途改
常见的做法是把每种语言放在独立目录下,例如 /en/、/zh-hant/,或者使用独立子域名。两种方式都可以,关键是保持稳定。
- 尽量避免用 ?lang=en 这类参数承载语言版本,参数容易和筛选条件、跟踪参数混在一起,也不利于地址保持一致。
- 不要把语言选择完全交给 Cookie 或浏览器语言自动跳转。蜘蛛通常不带这些条件,容易只看到一个版本。
- 如果确实需要自动跳转,建议保留一个可直接访问的默认版本,并在页面上提供可见的切换入口。
三、语言切换入口要可抓取
切换语言最稳的方式,是使用普通的 a 标签链接指向对应地址,而不是只靠下拉框加脚本。脚本可以保留,但最好同时提供链接形式的入口:
- 同一位置的链接在所有语言版本中保持一致,方便顺着爬取。
- 切换后落在目标语言的同类页面上,而不是一律回到首页。
- 链接文字用目标语言写清楚,例如 English、繁體中文。
四、hreflang 的几个易错点
hreflang 的作用是说明这些地址是同一内容的不同语言版本,而不是互相竞争的独立页面。写的时候注意:
- 每个版本都要列出包括自己在内的全部版本,形成互相引用。
- 标记里的地址必须是可访问、可索引的最终地址,不要指向被重定向或被 robots.txt 屏蔽的 URL。
- 不同语言版本之间的 canonical 不要互相指向,以免把关系写反。
- 如果存在默认版本,比如英文作为兜底,可以用 x-default 标注。
hreflang 只是提示,不是收录保证。页面本身的可访问性、内容和链接,仍然是更基础的部分。
五、内容别只换页脚
多语言站点最容易被忽略的一点是内容本身。如果各语言版本只是机器翻译一遍,正文高度雷同,搜索端很难判断该展示哪个版本,用户体验也不会好。
- 标题、描述、正文首段尽量按照目标语言的表达习惯重写,而不是逐句直译。
- 价格、货币、单位、日期格式、客服联系方式做本地化。
- 如果某个语言只有一两个页面,先考虑合并或暂缓,不要为了数量硬开目录。
六、日常维护看什么
上线之后,建议定期做几件事:
- 在爬虫日志里按目录统计访问量,看蜘蛛是否只集中在默认语言,其他版本几乎没人抓取。
- 检查各语言版本的返回状态码,确认没有大量重定向链或跳转循环。
- 核对 sitemap 是否包含全部语言版本,标记与实际地址是否一致。
- 抽查切换入口,确认从任意版本都能走到其他版本,且不需要登录或执行脚本。
多语言站点的运营,本质上是把同一件事讲给不同的人听。地址、标记、入口和内容保持一致的逻辑,蜘蛛和用户都更容易理解站点想表达什么。