把单语站扩成多市场,大部分是机械活,但每一步都有自己的雷。hreflang 被讨论得最多;本地化信号(日期、数字、地址、电话)和货币显示(符号、小数位、位置)出错时同样悄悄吃掉转化。行业爬虫常年发现:每四个多语言站里大约三个的 hreflang 有错,所以把基本功做对,本身就领先了大多数对手。这篇用一个 AI 模型(Claude Opus 4.7 或 GPT-5.5 都能胜任,截至 2026 年 6 月它们的 100 万 token 上下文足够把整段 <head> 和配置一次贴进去)在大约 90 分钟内规划一个新 locale 的上线。产出是一份带优先级的 markdown 计划,每条都配一个验证命令,能直接转工程任务。
太长不看
- 把你的 stack、现有 locale、一个线上页的
<head>喂给模型,要它出三份分组清单:hreflang、本地化、货币。 - 让它给每条打 P0 / P1 / P2,并附一个验证步骤(一行
curl、一个grep、或一个截图目标)。没有验证的条目会烂掉。 - hreflang 的两条铁律:每个页面自引用,每条标注都互链。缺回链是 Google 报得最多的错误。
- 用
en-GB而不是en-UK,并依赖Intl.NumberFormat,别硬编码MM/DD/YYYY或写死一个$前缀。 - Search Console 的「国际定位」报告已于 2022 年 9 月下线,所以用爬虫(Screaming Frog、Ahrefs、Sitebulb)或
curl验证 hreflang,别再指望 GSC。
这篇讲什么
为新增一个 locale 做一次有引导的规划。模型出三份清单:hreflang(sitemap、head、x-default、回链)、本地化(数字、日期、电话、地址)、货币(显示、换算、结算)。每条都打 P0 / P1 / P2 标签加一个验证步骤。产出不是通用清单,而是按你的 stack 和现有配置形塑出来的,因为你一开始就把真实的 <head> 和 URL 模式交给了模型。
这篇适合谁看
要上第二、第三个 locale 的内容站和产品站、要复审「勉强能跑」的多 locale 配置的 SEO 经理、被一句「加日语」丢过来、没有范围的工程师。已经在成熟站上第 4 个 locale 的可以跳过,那时你自己的 runbook 比模型推理强。
什么时候适合用
每次新 locale 上线前、locale 重命名后(zh 改 zh-CN)、某市场有流量但表现差时(多半是货币或地址格式问题)、以及季度维护审计。需要单独深挖 hreflang 时,配合 AI hreflang 检查实操 一起看。
开始前准备
- 把现有 locale 清单清楚:用哪些 lang code、URL 模式(子域 / 子目录 / ccTLD)、内容集合在哪、用什么 CMS 或 i18n 库。每个都会影响新 locale 的方案。
- 新 locale 的 lang code 提前定。
zh和zh-CN混用是多 locale 项目里最常见的 bug;en-UK是无效写法(英国的 ISO 3166-1 代码是GB,要用en-GB)。 - 现有每个 locale 各开一个线上页面到浏览器 dev tools。模型做范围检查需要「当前
<head>已经做对了什么」的 baseline。 - 规划前先列清目标市场的惯例:货币、小数分隔符、千位分隔符、日期顺序、地址格式、电话格式、一周从星期几起。
prompt 和流程
- 用一段话把 stack 和 locale 介绍清楚:URL 模式、现有 locale、hreflang 方式(head 标签还是 sitemap)、内容布局、用了什么 i18n 库。把一个线上页的
<head>原文贴进去,让模型对着现实而不是假设检查。 - 要三份分组清单:hreflang、本地化、货币。强制分组,铺平的列表总会漏掉一个类别。
- 让模型每条标 P0(阻塞上线)、P1(30 天内)、P2(锦上添花)。
- 每条都要一个验证步骤:
curl命令、view-source 检查、对渲染后 HTML 的正则、或截图目标。「验证 hreflang 存在」不可验证,curl -s URL | grep -i hreflang可验证。 - 每条 P0 都过一遍是否适用于你的 stack。Astro SSG 静态输出 hreflang,不需要 locale middleware;Next.js App Router 多数情况需要。不适用的删掉。
- 货币方面,按页面类型定一条规则:商品页结算时可能要实时换算,内容页用「仅显示」格式就够。两者混在一起范围就崩。
- 把方案存成
INTL_LAUNCH_<locale>.md,每个 locale 一个文件。后来人需要这个 locale 特有的上下文,而这个文件也会成为下一个 locale 的模板(第二个 locale 的规划从这里开始,省大约一小时)。
第一次的时间预算:stack 描述 prompt 10 分钟、AI 范围 5 分钟、人工剔 30 分钟、整理 30 分钟、验证命令 15 分钟,共约 90 分钟。一边做一边把模型幻觉记下来,常见的有:给你根本没有的 AMP 页建议 hreflang、推荐已经下线的换汇 API。
hreflang:必须让模型写进去的三条规则
这是 Google 在其 localized-versions 文档(2026 年 6 月)里仍然强制的规则。确保每条生成的 hreflang 条目都遵守。
| 规则 | 含义 | 怎么验证 |
|---|---|---|
| 自引用 | 每个页面把自己也列进 alternate | curl -s URL | grep -i 'hreflang="en"' 返回页面自身 URL |
| 回链(互链) | A 指向 B,B 必须指回 A,否则 Google 两边都忽略 | 爬两个 URL,确认 rel="alternate" 集合对称 |
| x-default | 给匹配不到任何 locale 的用户的兜底 | curl -s URL | grep 'hreflang="x-default"' 有返回 |
缺回链是 Google 报得最多的 hreflang 错误。其他可靠的「杀手」:协议不一致(一边 http 一边 https)、只写地区的代码、以及 es-419 这类 Google 不接受的非标准变体。所有 hreflang URL 都必须是绝对且规范(canonical)的。
本地化:别再硬编码,用平台能力
让页面瞬间显得「不是本地做的」,最快的办法就是一个美式日期或错的小数点。Intl.NumberFormat 和 Intl.DateTimeFormat 用一个数字几乎能覆盖全部。以 123456.789 为例:
| Locale | 货币代码 | 输出 |
|---|---|---|
en-US | USD | $123,456.79 |
en-GB | GBP | £123,456.79 |
de-DE | EUR | 123.456,79 €(逗号小数、句点千位、符号在后) |
ja-JP | JPY | ¥123,457(无小数单位,故取整) |
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(123456.789);
// "123.456,79 €"
本地化清单至少要覆盖:日期顺序、小数分隔符、千位分隔符、电话格式、地址格式、一周起始日。少一个就是软上线缺陷,本地用户会察觉,即便 Google 不会。
第一次实操怎么跑
- 只规划一个 locale,不要规划整套上线。挑市场需求最清楚的那个。
- 在上面 90 分钟预算内,把这一个 locale 端到端走一遍。
- 把对话和提交的
INTL_LAUNCH_<locale>.md存档,它们就是第二个 locale 的模板。 - 季度审计就是对同一个 locale 重生成清单,跟已提交的方案 diff。维护一份「错过的 locale code」日志,每出一个真 bug 就加进下次规划的 prompt;三次上线后,你的 prompt 已经比任何通用清单都准。
完成后检查
- 每条 P0 都有验证命令、URL 模式、或截图目标。
- 没有引用你 stack 不支持的特性(你是 Astro 时,「用 Next.js middleware 做 locale」就是错的)。
- 本地化清单覆盖日期顺序、小数分隔符、千位分隔符、电话、地址、一周起始日。
- 货币清单区分「仅显示」和「实时换算」,两者验证方式不同。
- hreflang 条目同时核 sitemap 和 head;两边冲突时 Google 干脆都不信。
容易踩的坑
- 把 hreflang 当成全部工作。它最容易做对,做对后增益最小;本地化和货币的 bug 更伤转化。
- 跳过货币显示测试。EUR 页上挂 USD 格式的价格,对当地用户看就是坏站。
- 硬编码日期格式。
MM/DD/YYYY在非美 locale 看着像乱码,用 locale-aware formatter。 - 每个 locale 都翻译 URL slug。某些市场更偏好英文 slug(开发者工具尤其),一刀切翻译是假一致。
- 指望 Search Console 校验 hreflang。「国际定位」报告已于 2022 年 9 月下线,改用爬虫或
curl验证。 - 把 locale 和语言混为一谈。
en-GB和en-US同语言不同 locale,货币和日期顺序都不一样。
FAQ
- 新 locale 用子目录还是子域?: 默认子目录;只有该 locale 有独立团队或内容范围明显不同才用子域。
- 要不要用 ccTLD?: 地理信号最强,但维护贵。只在你有该国独立业务策略时用。
- 要请翻译还是 AI 翻译够?: 内容站营销文案 AI 可以做第一轮。产品 UI 要请母语审校。转化率跟「本地感」文案强相关。
- GSC 报告没了,现在怎么查 hreflang?: 用 Screaming Frog、Ahrefs 或 Sitebulb 爬,它们都会报缺回链;或用
curl -s URL | grep -i hreflang抽查。 - 新 locale 被 Google 索引要多久?: 第一次有意义的抓取约 4 到 12 周。立刻交 sitemap,并马上确认 locale 已进索引(用
site:搜索或 URL 检查工具)可以缩短。 - 新 locale 跟原 locale 共享站内链图吗?: 共享。新 locale 镜像 EN 链图,用
translationKey维持 hreflang 配对互链。