当站点開始覆盖不同語言或不同地区的用戶时,頁面數量會成倍增長。如果語言版本之間的關系没有提前理清,常见的問题有几類:同一篇内容被多個地址承载、蜘蛛在語言目錄之間来回抓取、權重被摊薄、用戶被自動跳轉到並不想看的版本。下面這份自查清單,适合在上线前和日常维護中對照检查。
一、先分清“語言”和“地区”
語言和地区是两個维度,混在一起很容易把标记寫乱。
- 語言: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 是否包含全部語言版本,标记與實际地址是否一致。
- 抽查切換入口,確認從任意版本都能走到其他版本,且不需要登入或执行脚本。
多語言站点的运营,本质上是把同一件事讲给不同的人听。地址、标记、入口和内容保持一致的逻辑,蜘蛛和用戶都更容易理解站点想表達什么。