同一个商品、同一篇文章,在中文站、英文站、地区子站各有一套 URL 时,收录情况经常是一边进、一边不进,或者两个语言版本互相顶替。这类问题很少是搜索引擎偏心,多数是版本之间的对应关系没交代清楚。
先把页面版本分成三类
核对之前先分类,不同类型的处理方式并不一样:
- 人工翻译的对应页:主题一致、语言不同,是 hreflang 的典型用途。
- 地区变体:同一语言、不同地区的版本,比如英文美国站与英文英国站,差异可能只在货币、地址、库存。
- 机器翻译或自动生成的页面:量大、质量参差,容易被判为低价值或重复,收录往往最不稳定。
分不清这三类,后面的核对就会把“翻译页没收录”和“自动生成页没收录”混成一件事。
核对一:每个语言版本能不能被单独打开
多语言站最容易出现的情况是语言只存在于前端切换逻辑里:同一个 URL 通过 Cookie 或 JavaScript 判断语言,英文内容实际由同一段代码渲染。这时搜索引擎抓到的可能永远是默认语言那一版。
核对方式很直接:关掉 Cookie、访问不带任何偏好设置的 URL,看返回的 HTML 首屏是不是目标语言。如果确实要依赖客户端切换,至少保证每个语言有独立且可直接访问的 URL。
核对二:hreflang 是不是双向回指
hreflang 不是单方面声明,而是互相确认。A 页面声明了 B,B 页面也要声明 A,配对的信号才完整。常见的断链情况有:
- 只有主语言页写了 hreflang,其他语言页没有写。
- 回指链中缺席某个版本,比如三种语言只互相指了两种。
- x-default 指向了一个本身不被收录的 URL。
- 声明的语言代码和页面实际语言不一致,比如标为 zh-CN 但页面用的是 zh-TW 的用词。
核对时可以按语言版本列表逐一对照,重点看每个 URL 是否都出现在其他版本的声明里。
核对三:canonical 是否指向自己
多语言页面的 canonical 通常需要自指,而不是全部指向主语言版本。如果英文页的 canonical 指向中文页,等于主动告诉搜索引擎不要把英文页当独立版本处理,收录自然起不来。除非确实只打算保留一个版本,否则不要跨语言做 canonical 合并。
跨语言用 canonical 合并,等于把其中一个版本直接排除在索引之外;跨语言互相指向,才是 hreflang 该做的事。两者混用是不少站点收录异常的根源。
核对四:内链有没有给每种语言留入口
语言切换器如果只是按钮、链接写在 JS 里,或者所有语言都指向同一个不带语言路径的地址,那些页面就只能靠 sitemap 被发现。可以这样检查:
- 每种语言在导航或页脚有可点击的 a 标签入口。
- sitemap 分语言提交,而不是只提交默认语言。
- 尽量不通过跳转或中间页进入多语言版本,减少一层抓取路径。
核对顺序建议
- 列出全部语言与地区版本,标注 URL 与内容类型。
- 逐个 URL 直接访问,确认返回内容与声明语言一致。
- 检查 hreflang 的双向完整性与语言代码。
- 检查 canonical 是否自指。
- 检查内链与 sitemap 是否覆盖所有版本。
- 最后再对比各语言在索引报表里的数量差异,判断属于收录延迟、质量淘汰,还是配置问题。
多语言收录问题的特点是配置错一处、影响一整组页面。与其盯着单个 URL 反复改内容,不如先把版本对应关系理顺,再看哪些页面确实需要补内容或者收敛处理。