做多語言或多地区版本的站点,最容易忽略的一件事是:這些版本在蜘蛛眼里到底是同一套内容的多個語言版本,還是内容重复的一堆頁面。前者有机會各自获得合适的展示,後者可能互相稀释權重,甚至只有主語言版本被保留。下面给出一组自查点,用来检查語言與地区版本的结构是否清晰。
一、先確認語言版本的對應關系
如果站点有中文、英文、日文等多個版本,建议先整理一張對應表:每個頁面的各語言地址分別是哪一個。然後检查以下几点。
- 每個語言版本頁面是否带有指向自身以及其他語言版本的 hreflang 标注,包含自指(self-referencing)。
- 是否設定了 x-default,用于承接語言未匹配成功的訪問者與蜘蛛。
- hreflang 中使用的語言代碼是否符合規范,例如 zh-Hans、en、ja,而不是自造的缩寫。
- 各語言地址之間是否互相声明,而不是只有單向标注。
常见問题是标注指向的地址寫错、漏掉自指、或者某個語言版本已经下线却仍保留舊标注,蜘蛛顺着标注可能進入 404 或重定向頁面。
二、語言切換不要做成强制跳轉
不少站点會根據 IP 或浏览器語言,在用戶進入首頁时直接跳到對應語言版本,甚至在服務器层面也對蜘蛛生效。這種做法容易让蜘蛛只抓到一個版本,或者在跳轉鏈中来回切換,白白消耗抓取次數。
更稳妥的處理方式大致是:
- 每個語言版本有獨立、稳定的 URL,直接訪問即可得到對應内容。
- 首頁可以给出一個語言推荐入口,但要保留明顯的手動切換連結,切換後的地址可複製、可分享。
- 避免用 JavaScript 在客戶端做條件不稳定的强制跳轉。
判断方法很简單:關掉 JS、用陌生 IP 訪問某個語言版本的地址,看看是否還能拿到這個版本的正文。
三、確認各語言版本都能被正常抓取
多語言站的抓取問题,往往来自只有主語言被放行。需要逐項检查:
- robots.txt 是否誤屏蔽了某個語言目錄,例如 /en/、/ja/。
- 語言切換後的地址是獨立路径或子域,還是僅僅加了一個參數,例如 ?lang=en。
- 語言版本的頁面是否依赖 Cookie 或會话狀態才能渲染出正文。
- 站点地图是否涵盖所有語言版本,還是只提交了主語言。
如果某個語言版本長期没有抓取记錄,先看日誌里是否存在蜘蛛訪問,再核對返回狀態碼與頁面内容,逐步缩小范围。
四、翻译质量與内容完整度
机器翻译批量生成的頁面,如果内容空洞、術语前後不一致,即便结构正确,也很难获得理想展示。同时要避免半翻译狀態:導航和頁脚翻译了,正文仍是主語言,或者反過来。
比較務實的做法是,優先把核心栏目與主力頁面翻译到位,其余頁面逐步补充;如果某個語言版本确實没有足够内容支撑,可以先不開放该版本,而不是先铺一层空頁面。
五、内鏈與站点地图的分区
各語言版本之間宜保持相對獨立的内鏈结构:英文頁面主要連結到英文頁面,避免中文頁面大量指向英文頁面造成語言混杂。站点地图可以按語言拆分提交,便于分別观察每個語言版本的收錄與抓取情况。
六、例行自查清單
- 每個語言版本的地址能否直接打開,並返回 200。
- hreflang 是否自指、互相声明、没有指向失效地址。
- 是否存在基于 IP 或 JavaScript 的强制跳轉。
- robots.txt 與站点地图是否覆盖全部語言版本。
- 各語言版本的标题與描述是否各自獨立,而不是直接沿用。
- 日誌中是否能看到各語言版本都有蜘蛛訪問记錄。
多語言站点的运营不是一次性配置,語言版本增减、URL 調整、翻译补全都會影响整体结构。把上面這些检查固定成定期動作,比等到出問题再回头排查要省力得多。