网站收录

多语言版本互相抢收录:hreflang 与语言目录的核对顺序

多语言站点常出现一个语言版本被收录、另一个迟迟不进索引,或同一内容在不同语言版本之间互相竞争的情况。本文按 URL 形态、hreflang 互指与自引用、内容本地化程度、内链入口以及 canonical 冲突这几个方向,给出一套可以逐项执行的核对顺序。

网站收录

多语言版本互相抢收录:hreflang 与语言目录的核对顺序

先分清是“没收录”还是“收录了另一个版本”

多语言站点常见的两种反馈:一是某个语言版本在索引里搜不到;二是搜到了,但结果里出现的是另一个语言版本。这两件事看起来一样,处理方向却不同。核对前先用 site 查询或 URL 检查工具确认,目标语言的地址究竟没有进入索引,还是被同内容的另一语言地址顶替了展示位置。

语言版本必须是各自独立的 URL

如果把语言切换做成前端变量、cookie 或浏览器语言判断,同一个 URL 对不同访客返回不同语言的正文,抓取端通常只能看到其中一种。这样其他语言版本没有可被抓取的地址,也就谈不上收录。

  • 每种语言有独立、可长期访问的目录或子域名,例如 /zh/、/en/ 或对应子域;
  • 不依赖 cookie、LocalStorage 或 Accept-Language 决定正文语言;
  • 切换语言时地址栏确实发生变化,能直接打开,也能被无状态请求抓取。

hreflang 的三个必查项

hreflang 不是收录开关,它解决的是“这几个地址属于同一内容的不同语言版本,请把对应语言的用户送到对应版本”。写错时未必直接导致不收录,但容易让搜索引擎选错展示的语言版本。

  1. 自引用:每个语言版本的页面都要在 hreflang 列表里包含自己;
  2. 互指:A 指向 B,B 也要指回 A,单向声明通常等于无效;
  3. 代码规范:使用 zh-CN、en、en-US 这类标准写法,有默认版本时用 x-default 指向它。
hreflang 和 canonical 是两件事:canonical 指向的是同一语言下的规范地址,不要用它去指向另一种语言的页面,否则等于自己否定了这个语言版本的收录价值。

内容差异太小,容易被当成重复内容

如果各语言版本只有模板文字做了翻译,正文主体仍是同一段文本,或者只是做了关键词替换,搜索引擎可能只保留其中一个版本。想让每个语言版本具备独立的收录价值,至少要保证:

  • 正文是完整的本地化内容,而不是机器直译出来的片段;
  • 标题、描述、面包屑与结构化数据里的语言声明保持一致;
  • 本地特有的信息(价格单位、联系方式、服务范围)确实做了替换。

入口与内链:别只靠一个切换器

语言版本如果只有页面顶部一个切换按钮指向它,抓取路径会非常单薄,URL 发现的优先级也偏低。更稳妥的做法是:

  • 站点地图分语言提交,或在同一份地图里标明各语言地址;
  • 主导航、页脚、相关推荐里的链接指向对应语言版本,而不是统统指回主语言;
  • 新文章发布时就把各语言版本的互链一起补全。

一份可执行的核对顺序

  1. 用 URL 检查工具确认目标语言地址的抓取与索引状态;
  2. 检查该地址是否返回 200,且没有 noindex、robots 屏蔽或登录墙;
  3. 确认语言由 URL 决定,而非 cookie 或前端变量;
  4. 核对 hreflang 的自引用、互指与代码规范;
  5. 检查 canonical 是否错误地指向了另一语言的地址;
  6. 对比各语言版本的正文重合度,判断是否落入重复内容;
  7. 补全内链与站点地图里的语言入口,再观察一段时间的抓取与索引变化。

这套顺序不保证某个语言版本一定被收录,但能把“地址不可抓”“声明写错”“内容过于重合”这三类干扰逐个排除,剩下的通常只是时间与页面本身质量的问题。