中英双语网站:内容、链接和语言版本如何保持一致
多语言最大的风险不是翻译不够优美,而是不同语言讲成了两个产品。
翻译不是复制页面后换语言
双语网站需要同时解决三件事:用户进入正确语言、搜索系统理解版本关系、关键事实在各语言中保持一致。
多语言最大的风险不是翻译不够优美,而是不同语言讲成了两个产品。
一、使用稳定、独立的 URL
推荐示例:
https://example.com/zh-cn/pricing
https://example.com/en/pricing避免依赖 Cookie 或浏览器语言,让同一 URL 返回不同内容而无法稳定分享和索引。
二、正确理解 hreflang 与 canonical
- canonical:当前语言页面通常自引用;
- hreflang:声明对应的语言或地区版本;
- 两者职责不同,不能互相替代。
<link rel="canonical" href="https://example.com/zh-cn/pricing">
<link rel="alternate" hreflang="zh-CN" href="https://example.com/zh-cn/pricing">
<link rel="alternate" hreflang="en" href="https://example.com/en/pricing">
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing">每个语言版本应互相声明,URL 可访问且返回 200。Google 建议规范页与 hreflang 集群保持一致语言关系。Localized versions
三、建立跨语言事实源
价格、功能、限制、产品名和安全信息不应由译者分别维护。推荐:
统一结构化事实源
→ 中文页面渲染
→ 英文页面渲染
→ 结构化数据
→ Feed / 应用商店翻译的是表达,不是重新发明事实。
四、区分“语言差异”和“产品差异”
不同地区可能有:
- 币种与税费;
- 数据区域;
- 支付方式;
- 法律条款;
- 可用功能;
- 支持时间。
这些差异必须明确标注地区条件,不能简单视为翻译偏差。
五、处理缺失译文
当某篇内容尚未翻译:
- 不要自动生成低质量占位页;
- 可以暂时只保留已有语言;
- 语言切换器清楚说明不可用;
- Sitemap 和 hreflang 不声明不存在的版本;
- 完成翻译后再加入集群。
六、检查语言切换器和内链
- 中文页链接到中文相关内容;
- 英文页链接到英文相关内容;
- 切换语言尽量落到对应页面,而非首页;
- 不强制按 IP 重定向且不给用户选择;
- URL、面包屑和导航保持语言一致。
七、双语事实对照表
| 事实 ID | 中文 | 英文 | 是否一致 | 地区差异 | 负责人 |
|---|---|---|---|---|---|
| pricing-pro | 19 美元/月 | USD 19/month | 是 | 税费按地区 | 商务 |
| export-code | Pro 可导出 | Export on Pro | 是 | 无 | 产品 |
八、发布前验证
- 两个 URL 均返回 200;
- canonical 自引用;
- hreflang 双向完整;
<html lang>正确;- 标题、描述和正文是对应语言;
- 价格、日期、套餐和限制一致;
- Sitemap 包含正确版本;
- 结构化数据语言与页面一致;
- 切换器链接到对应页面。
九、常见错误
- 中文页 canonical 指向英文页;
- hreflang 只单向声明;
- 所有语言切换都回首页;
- 同一 URL 根据 IP 自动换语言;
- 中文价格已更新,英文仍是旧价格;
- 机器翻译后无人核对产品术语;
- 英文结构化数据出现在中文页面;
- Sitemap 列出不存在的译文。
本文行动清单
- 每种语言使用稳定独立 URL。
- canonical 与 hreflang 职责正确且信号一致。
- 核心事实由统一数据源维护。
- 地区差异明确标注,而非静默变化。
- 缺失译文不生成薄占位页。
- 内链和语言切换保持在对应语言。
- 已完成双语事实对照与技术验证。
小结
双语网站不是两个独立站点,而是一套事实、两种表达和明确的版本关系。
让语言可以不同,让事实始终一致。
本章术语速查
| 术语 | 通俗解释 |
|---|---|
| User-Agent | 请求方声明的客户端身份字符串,可被冒充 |
| CDN | 将内容缓存到靠近用户的边缘网络 |
| WAF | Web 应用防火墙,可能误拦自动爬虫 |
| 初始 HTML | 服务器首次响应返回的页面源码 |
| 渲染后 DOM | JavaScript 执行完成后的页面结构 |
| robots.txt | 表达自动爬虫路径访问规则的公开文件 |
| noindex | 要求支持该指令的系统不要索引页面 |
| canonical | 表达重复页面中首选规范 URL 的信号 |
| Sitemap | 向搜索系统提供重要 URL 的清单 |
| IndexNow | 向参与搜索引擎通知 URL 变化的协议 |
| JSON-LD | 常用于结构化数据的 JSON 格式 |
| hreflang | 表达页面语言或地区替代版本关系的标记 |
| x-default | hreflang 中用于默认或语言选择页的值 |
| llms.txt | 面向 LLM 推理时站点导览的社区提案 |
本章参考资料
核验日期:2026-10-04。爬虫名称、IP 范围、平台支持与搜索功能会变化,实施前应重新核对官方资料。
官方资料
-
OpenAI:Overview of OpenAI Crawlers
用于区分搜索、训练和用户触发访问,以及核对当前 User-Agent 与 IP 范围。 -
Perplexity:Perplexity Crawlers
用于核对自动搜索与用户触发访问、robots 和 WAF 配置。 -
Google:JavaScript SEO basics
用于理解 Google 的 JavaScript 抓取、渲染与索引流程。 -
Google:Consolidate duplicate URLs
用于 canonical、重定向和 Sitemap 规范化信号。 -
Google:Robots meta tag specifications
用于 noindex、nosnippet 与 X-Robots-Tag。 -
Google:Build and submit a sitemap
用于 Sitemap 内容、提交和限制。 -
Google:Localized versions of your pages
用于 hreflang、双向关系与多语言 URL。 -
Google:Optimizing your website for generative AI features
用于 Google 生成式搜索的技术基础、结构化数据和 llms.txt 边界。 -
IndexNow:Documentation
用于 URL 更新通知协议与提交方式。
规范与补充资料
-
RFC 9309:Robots Exclusion Protocol
robots.txt 的协议基础。 -
Schema.org
结构化数据词汇表。具体搜索功能仍应以目标平台文档为准。 -
llms.txt proposal
用于理解 llms.txt 的社区提案格式;不代表搜索平台已采用为排名信号。
编辑与使用说明
- 示例域名、价格和配置仅用于教学,不应原样部署。
- 任何 robots 或 WAF 变更都应先明确业务、合规和安全边界。
- 技术配置成功不等于被索引、被引用或获得流量。
- 搜索、训练和用户触发访问必须分别判断。
- 平台专属规则不得外推为所有搜索和 AI 系统的统一行为。
最后更新于