站点做了多语言或多地区版本之后,收录问题往往不是“收录太慢”,而是页面之间的关系没理清。同一份内容存在几个 URL、语言切换靠跳转、canonical 指错版本,都会让搜索引擎在判断“哪个页面该进索引”时反复摇摆。下面按排查顺序说几组最关键的关系。
一、先确认每种语言版本都有独立、可直达的 URL
抓取工具不会点击语言下拉框,也不会保存你站点上的语言偏好 cookie。如果语言版本只能通过 JS 跳转、弹窗或按钮切换,抓取端通常只能看到默认语言那一版。
- 语言切换入口用普通链接,指向对应语言的真实 URL;
- 不要用 IP 或 Accept-Language 把请求自动 302 到另一个语言版本;
- 不要让 cookie 决定返回哪种语言,否则抓取端看到的页面和你自己看到的不一定是同一个。
二、canonical 和 hreflang 各管一件事,别互相顶
hreflang 说明“这些页面是同一内容的不同语言版本”,canonical 说明“这个页面本身的规范地址”。两者作用不同,处理方式也不同:
- 每个语言版本对自己做 self-canonical,不要全部指向默认语言版本;
- hreflang 标注要双向,A 指向 B,B 也要指向 A,并确认目标 URL 可访问、返回 200;
- 可以补一个 x-default,作为没有匹配语言时的兜底版本。
如果 canonical 全部指向中文版,而 hreflang 又声明英文版是独立版本,这两个信号就是冲突的,收录结果容易只剩一版,或者在几版之间来回切换。
三、URL 结构上的几种常见做法
- 子目录(/en/、/zh/):结构清晰,权重集中,是多数站点的默认选择;
- 子域名(en.example.com):适合不同团队或不同技术栈维护,但要额外处理彼此之间的链接关系;
- 参数形式(?lang=en):能被识别,但容易被当成同一页面的参数变体,收录判断更麻烦;
- 独立域名:地区定位最明确,维护成本也最高。
选定一种之后尽量全站统一,混用会让 URL 归一化变得很难做。
四、最常造成收录混乱的几种情况
- 机翻页面批量上线,内容质量低且高度相似,在索引里容易被合并或排除;
- 同一语言下存在多个 URL 指向同样内容,比如带与不带结尾斜杠、大小写不一致;
- canonical 指向了一个本身就不该被收录的地址,比如带参数的筛选页;
- 语言切换链接带上了跟踪参数,被当作新 URL 抓取。
五、sitemap 和内链怎么配合
把所有语言版本的 URL 都放进 sitemap,并在 sitemap 内标注 hreflang,可以减少“只发现了一种语言”的情况。内链上,各语言版本之间应该有稳定入口,而不是只能靠首页的切换按钮。默认语言版本可以适当多给一些内链,其余版本至少保证从任意页面两三次点击内能到达。
六、按这个顺序自查
- 随机抽几个语言版本,用不带 cookie 的方式直接访问,看返回的是不是对应语言;
- 检查每个版本的 canonical 是否指向自己;
- 检查 hreflang 是否双向、是否存在失效目标;
- 在 Search Console 里按语言分组看索引覆盖,留意被判为“替代为其他规范网页”的比例;
- 确认 sitemap 与页面内的 hreflang 标注一致。
多语言站点的收录问题,多数不是“内容不够好”,而是几种信号在互相矛盾。先把 URL 归属和指向统一,再回头讨论内容质量那条线。