多語言站点的收錄問题,往往不是“没被索引”,而是多個語言版本在索引里混在一起:用戶搜中文词,出来的却是英文頁;某個語言版本長期不進索引;或者同一個頁面同时存在 /en/ 和 ?lang=en 两種地址。這類問题很少是單一原因,通常是 URL 结构、語言标注和内容本身三件事没有對齐。
先分清:是語言不同,還是内容相同
處理之前要先分類。两個頁面看起来不一样,但可能只是翻译,也可能是面向不同市场的獨立内容。
- 内容相同、只是語言不同:這是同一份内容的多語言版本,各有獨立 URL,属于正常的多語言结构。
- 内容相同、語言也相同:例如 ?lang=en 和 /en/ 指向同一批英文内容,這是重复,需要收敛到唯一地址。
- 内容不同、面向地区不同:比如港版和台版的價格、库存不同,即使語言相同也應各自保留。
判断标准是:删掉其中一個版本,是否會有人找不到他需要的信息。會,就不要合並。
每個語言版本要有一個稳定且自指的 URL
多語言站点最容易出問题的地方是同一份内容有多種寫法。常见的有:
- 子目錄:/en/、/zh/
- 子域名:en.example.com
- 參數:example.com/page?lang=en
- 自動跳轉:根據浏览器語言跳到某個版本
前三種都能被正常抓取,關键是要固定一種,不要混用。尤其是參數版本和子目錄版本同时存在时,索引里很容易两個都出現。
每個語言版本的頁面,canonical 應该指向自己。有些站点為了“集中權重”,把所有語言版本的 canonical 都指向預設語言版本,结果非預設語言頁面被判定為重复,長期不進索引。多語言頁面之間是翻译關系,不是重复關系,不需要用 canonical 互相合並。
hreflang 是提示,不是收錄開關
hreflang 的作用是告诉搜尋引擎“這些頁面是同一内容的不同語言或地区版本”,它不保證收錄,也不代替連結。使用时注意几点:
- 要双向:A 指向 B,B 也要指向 A,單邊标注通常會被忽略。
- 要有 x-default:给没有匹配語言的用戶一個落点,一般指向預設語言版本或語言選擇頁。
- 地址要可訪問:hreflang 指向的 URL 如果返回 404 或被 robots.txt 屏蔽,标注無效。
- 不要指向跳轉前的地址:如果某語言頁會 302 跳到別處,hreflang 應指向最终地址。
hreflang 寫错通常不會導致頁面被惩罚,但會让多個語言版本在搜尋结果的呈現變得不稳定。把它当成辅助信号,而不是解决收錄問题的手段。
語言切換別用挡住蜘蛛的方式
用 IP 或浏览器語言自動跳轉,是很多多語言站点收錄混乱的源头。蜘蛛通常從單一地区發起抓取,如果它每次訪問首頁都被跳到英文版,其他語言版本就可能長期缺少抓取入口。
更稳妥的做法是:預設地址不要强制跳轉,把語言選擇做成頁面上的連結;只在用戶明确点击後再跳。如果必须自動跳轉,至少保證每個語言版本都有自己的可訪問 URL,並且能從 Sitemap 和其他頁面連結過去。
按這個顺序整理
- 列出所有語言和地区版本,标出哪些是翻译關系、哪些是獨立内容。
- 同一份内容只保留一個 URL 形式,其余用 301 指向規范地址。
- 核對每個頁面的 canonical 是否自指,去掉指向其他語言版本的寫法。
- 检查 hreflang 是否双向、是否有 x-default、地址是否可訪問。
- 確認語言切換不會拦截蜘蛛,Sitemap 中包含所有語言版本。
- 整理後观察一段時間,看索引里各語言版本的分布是否與预期一致。
什么时候该收敛掉一個語言版本
如果某個語言版本的内容质量明顯偏低,比如机器翻译且無人校對、信息量不足,它未必值得單獨占一個索引位置。這时可以考虑:
- 合並:把低质量版本 301 到质量更好的同語言版本,或合並到預設語言版本。
- 暂时下线:如果還没准备好,用 noindex 或返回 404,比让它以残缺狀態留在索引里更好。
- 保持現状:如果该版本有真實用戶、有本地化内容,即使流量小也應保留。
多語言收錄的核心不是“让每個版本都被收錄”,而是让每個版本出現在它该出現的地方。地址唯一、标注正确、内容對得上,剩下的交给抓取节奏即可。