先说结论
多语言站的 SEO 基建,80% 的工作量在"别做错",而不是"做更多"。
12 项基建
| # | 项目 | 标准 |
|---|---|---|
| 1 | URL 结构 | 语义化、小写、连字符,语种前缀固定 |
| 2 | 旧地址 301 | 改版时必须收敛到新地址,不能留 404 |
| 3 | canonical | 每页指向自身语言版本 |
| 4 | hreflang | 全部语言互指 + x-default |
| 5 | XML sitemap | 分片(5000 条/片),含全部语种 |
| 6 | robots.txt | 允许抓取,指向 sitemap,屏蔽后台 |
| 7 | TDK | 每语种独立标题/描述,不共用 |
| 8 | 结构化数据 | Organization / Product / BreadcrumbList |
| 9 | 图片 | alt、压缩、懒加载、语义化文件名 |
| 10 | 移动端 | 首屏无横向滚动,点击区 ≥ 44px |
| 11 | 性能 | LCP < 2.5s,CLS < 0.1 |
| 12 | 404 页面 | 有导航、有搜索、有推荐 |
三个最容易漏的
canonical 与 hreflang 的关系
- canonical:告诉搜索引擎"这个页面的正式地址是它自己"
- hreflang:告诉搜索引擎"这个页面的其他语言版本在哪"
两者都要有,缺一个都会让多语种互相打架。
sitemap 分片
页面超过 5 万条就要分片。多语言站很容易超——33 个语种 × 2000 页就是 6.6 万条。
分片文件名要能区分,例如 sitemap-1.xml、sitemap-2.xml,并在 sitemap.xml 里列出索引。
robots.txt 要动态
多语言站的 robots 需要按域名/环境生成,尤其是测试站要屏蔽抓取,避免和正式站重复。
上线前的验证方法
- 用 Screaming Frog 抓全站,检查 hreflang 双向、canonical 自指
- Search Console 提交 sitemap,看"已发现网址"数量是否接近实际页面数
- 随机 10 页看
view-source,确认 TDK 是当前语种