网站收录

多语言、多地区站点:语言版本互相串门,收录该怎么收口

多语言或多地区站点常出现某个语言版本被收录、另一版本迟迟不进索引,或搜索结果里出现错误语言页面的情况。问题多出在 hreflang、canonical 与跳转逻辑的信号冲突上。本文按信号层、跳转层、内容层拆解原因,给出一套可执行的收口顺序与验证方法。

网站收录

多语言、多地区站点:语言版本互相串门,收录该怎么收口

多语言或多地区站点常遇到一种情况:英文版、中文版、日文版都上线了,但搜索里只稳定收录其中一两个版本,其余的要么长期不进索引,要么互相替换,甚至出现英文页面顶掉中文页面搜索结果的现象。这类问题通常不是“蜘蛛不友好”,而是版本之间的信号没有讲清楚,机器不知道该把哪一条地址当作对应语言的正主。

先分清三种“版本”

收口之前要把概念分开,否则很容易改错地方:

  • 语言版本:同一内容的不同语言,例如 /en/ 与 /zh/,内容本身不同,不算重复。
  • 地区版本:同一语言针对不同地区,例如 en-US 与 en-GB,如果正文几乎一样,就容易形成近似重复。
  • 默认版本:当用户语言无法匹配时展示的那一版,通常用 x-default 标注,常见做法是英文版或语言选择页。

三种版本的收口手段不一样:语言版本重在把对应关系说清,地区版本还要额外处理内容差异,默认版本则要避免它把其他版本全部吸收掉。

语言版本互相串门的常见原因

hreflang 只做了单向

只在英文页写了指向中文页的 hreflang,中文页却没有回指英文页,这种单向标注经常被忽略。搜索引擎需要的是相互确认的对应关系,单向声明等于只说了半句话,结果往往是谁被先抓到谁先占位。

canonical 跨语言指错了

有些站点为了“集中权重”,把所有语言版本的 canonical 都指向英文版。这会直接告诉搜索引擎“其他语言页只是副本”,被合并的页面自然很难独立进入索引。canonical 应当指向自身语言版本,跨语言合并是这里最常见的误操作。

按 IP 或浏览器语言自动跳转

用户访问主域名时,用 IP 或 Accept-Language 直接 302 到某个语言版本,看起来体验顺畅,但爬虫通常来自固定地区、不带语言偏好,很可能永远只看到同一个版本,其他语言页长期没有抓取入口。更稳妥的做法是保留一个可访问的默认页,用可见链接让用户和爬虫自行选择。

语言切换只用 JS 渲染

切换菜单由前端动态生成、初始 HTML 里没有对应链接,爬虫就找不到其他语言版本,也不会知道它们之间存在对应关系。切换入口最好在服务端输出的 HTML 中就有可点击的 a 标签。

一套可操作的收口顺序

  1. 确认每个语言版本都有稳定、可直连的独立 URL,不要用参数或 Cookie 动态切换内容。
  2. 在页面 head 中补齐 hreflang,包含自身在内的所有版本互相引用,并设定 x-default。
  3. 检查 canonical,确保每条地址只指向自己语言内的规范版本。
  4. 把语言切换做成 HTML 中的普通链接,测试在禁用 JS 的情况下仍然可用。
  5. 去掉基于 IP、UA 的强制跳转,改成提示条或语言选择页。
  6. 在 sitemap 中按语言拆分提交,或用 sitemap 的替代版本标注把对应关系再写一遍。
  7. 观察两到四周的抓取与索引数据,看是否仍有版本被反复替换。

地区版本共用同一语言时要小心

如果 en-US 和 en-GB 除了货币、运费说明几乎没差别,那么它们本质上是近似重复页面。此时要么补充真正有地区价值的内容差异,要么明确保留一个主版本、另一个做合理的对应标注,而不是让两个几乎一样的页面同时去争同一批关键词。

判断标准很简单:把一个地区版本的语言和货币去掉,剩下的内容还有多少是当地用户真正需要的?如果几乎没有,那这条 URL 存在的意义就要重新评估。

怎么验证收口是否生效

可以从三个角度回看:一是抓取日志里各语言版本的抓取频次是否均衡,长期只有一种语言被抓就说明入口有问题;二是索引中出现的语言版本是否与目标市场一致;三是搜索特定语言的关键词时,返回的是不是对应语言的页面。如果三个方向都还在互相替换,优先回头检查 hreflang 的双向性和 canonical 的指向,这两处出问题的概率最高。

多语言站点的收录问题,本质上不是技术难度,而是信号一致性。只要对应关系写全、跳转不挡路、内容确有差异,索引慢慢会趋于稳定;反过来,任何一处信号矛盾,都可能让某个语言版本长期缺席。