做多語言或多地区站点的运营者常遇到一種情况:頁面被抓取過很多次,索引里留下的版本却不是自己期望的那一版。同一段内容有简体、繁体、英文几個地址,搜尋结果只展示一個,剩下的要么被替換,要么慢慢淡出。這通常不是抓取出了問题,而是索引需要一個“代表版本”。
為什么索引里通常只留一個代表版本
從搜尋结果的角度看,内容主体相近、只是語言或地区不同的頁面,属于同一件事的多個副本。搜尋引擎會结合頁面本身的完整度、站点的語言声明、内鏈與外部連結的指向,挑出一版展示,其余版本被折叠或被判定為重复的可能性就比較大。所以多語言站点的收錄問题,重点往往不在“有没有被爬到”,而在“站点有没有把版本關系说清楚”。
影响“選哪一版”的几個信号
- hreflang:它的作用是告诉搜尋引擎“這些頁面面向不同語言或地区的用戶”,不是用来指定谁是主版本。几個版本之間需要互相指認、形成閉环,缺一环整组信号都可能失效。
- canonical:当几個地址确實是同一語言、同一内容的重复版本时,用 canonical 收拢到其中一版;不要把所有語言版本都 canonical 到預設語言頁,那等于把不同受众的頁面当成重复頁處理。
- 内容完整度:机器翻译拼接、正文明顯短于其他版本的頁面,通常更难成為代表版本。
- 内鏈與站点地图:一個版本在站内几乎没人連結、站点地图里也没有,它被選中展示的机會自然更小。
三類常见的混乱情形
1. hreflang 寫了但不成环
A 版指向 B 版,B 版却漏了指回 A 版,或者中間缺了某一版。搜尋引擎無法把這几頁確認為同一组,只能各自獨立评估,重复内容的判断也随之變得随机。
2. canonical 一律指向預設語言頁
這種做法等于主動告诉搜尋引擎:其他語言版本都是副本。结果是預設語言版長期占據索引,其他語言版本即使有獨立受众,也很难拿到展示位置。
3. 用自動跳轉代替語言声明
用戶一進頁面就被脚本跳到“他認為合适的語言版”,蜘蛛看到的却可能是另一個地址。当跳轉、canonical、hreflang 三者的指向不一致时,站点實际上没有表達出任何明确意图。
整理时可以按這個顺序推進
- 先確認哪些語言或地区真的有獨立正文内容。内容基本一致的版本,考虑合並或收拢,而不是硬拆成多個 URL。
- 把保留下来的版本之間的 hreflang 關系补齐,做到互指閉环,語言代碼和地区代碼使用規范寫法。
- 再處理 canonical:同一語言内部的參數頁、排序頁、打印頁收拢到主版本;不同語言之間不要互指 canonical。
- 站点地图按語言或地区拆分,让每個版本都有明确的發現入口,内鏈也尽量指向對應語言的主版本。
- 改完之後观察一段時間,看被展示的版本是否趋于稳定,再决定要不要繼續精简。
上线前的几項核對
- 每個語言版本的正文是否真的獨立成立,而不是關鍵詞替換的产物。
- hreflang 的互指關系是否完整,是否存在指向已刪除 URL 的死鏈。
- 頁面上的語言切換入口,指向的是對應版本的真實地址,而不是跳轉參數。
- 服務器端是否按用戶 IP 强制跳轉,導致蜘蛛只能抓到其中一個版本。
多語言收錄的难点,從来不是 URL 數量不够,而是版本之間的關系没讲清楚。先把“哪几版该留、谁代表谁”定下来,再谈抓取和提交,效率會高得多。
索引里的版本選擇會随内容與連結變化而調整,站点能做的是把自身意图表達得尽量明确、前後一致,剩下的交给搜尋引擎判断。定期回看被展示的版本與站内预期是否一致,比盯着抓取次數更有意义。