内容站什么时候该上第二语言

双语内容站的 go/no-go 决策:能证明需求的 Search Console 国家信号、自引用的 hreflang 模板,以及第 30 篇的复盘门。

加第二种语言听起来像白送流量。但实际上它会让你的内容产出量几乎翻倍,把抓取预算和主题权重分摊到两棵 URL 树上,只有满足特定条件才值得做。本文给你这些条件、那个能证明市场已经在主动需要你的唯一 Search Console 信号,以及第一篇第二语言文章上线前你必须先部署好的自引用 hreflang 模板。

一句话结论(TL;DR)

  • 五道门全绿才上双语: 主语言 100 篇以上、6 个月以上稳定流量、Search Console 里有真实的国家级需求、主题能干净翻译、产能能撑到现有产出的约 1.5 倍。
  • 需求信号很具体: 在一个该语言内容为零的站点上,仍能看到来自目标语言国家的自然曝光。
  • hreflang 由 layout 渲染,不要手写。 整个 cluster 必须双向且自引用,否则 Google 会把它整组丢弃(见 Google 本地化版本文档)。
  • 第 30 篇第二语言文章时复盘。 再观察 60 天曝光仍然平 → 主题就是不可迁移,标 noindex,follow 暂停。
  • 只为 AdSense 收入,双语通常回不了本。 它值得做是为了总触达、品牌,或转化更高的第二市场。

时机就是全部

单语言站刚跑通的那一刻,最容易动加第二语言的念头——往往也是最坏的时机。第一种语言刚开始复利,你却把稀缺注意力分出去。你花在写第二语言上的每一周,都是第一语言没拿到的一周,而第一语言才是已经验证过的渠道。合适的时机有明确可量化的信号;错误的时机只是让人觉得兴奋而已。

五道 go/no-go 门

通过门槛为什么重要
内容厚度主语言 100 篇以上不到这个量就没有权重可分;先把第一个市场做完
流量稳定性6 个月以上自然流量持平或上升仍在剧烈波动的站,分不清第二语言到底是帮忙还是添乱
国家需求该语言内容为零时仍有目标国曝光证明 Google 已经在那里展示你,市场在主动需要
可翻译性主题不是本地段子、某地法规或文化绑定教程和工具指南能迁移;本地新闻、本地税务类不能
产能能撑约 1.5 倍周产出,或接受放慢主语言两种语言都喂不饱,就会一起饿死

只要有一道门是红的,就等。等的代价是几个月;上早了的代价是两种语言一起停滞,外加你要永久缴的维护税。

开始前准备

  • Search Console 已接入,至少 90 天数据(API 历史上限是 16 个月,但 90 天足够读出一个国家趋势)。
  • hub / 分类名翻译词表草拟好,让两棵树命名保持一致。
  • layout 能从数据渲染 hreflang,绝不每个文件手写。

实操步骤

  1. 用 Search Console 查国家需求信号。 界面里:Performance → 按 Country 筛 → 按曝光排序。要程序化拉取,searchAnalytics.query 接口会把四个固定指标(clicks、impressions、CTR、position)按 country 维度分组:
curl -X POST "https://www.googleapis.com/webmasters/v3/sites/$SITE/searchAnalytics/query" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  --data '{
    "startDate":"2026-02-22","endDate":"2026-05-22",
    "dimensions":["country"],"rowLimit":20
  }' \
  | jq -r '.rows[] | [.keys[0],.clicks,.impressions] | @tsv'
# 仅英文站 CHN 或 TWN 季度 >1000 impressions → ZH 需求是真实的
  1. 审视前 30 篇文章的翻译可行性,把高度本地化的剔除。

  2. 决定 URL 结构。 默认 /en/.../zh/... 子目录。framework 里:

src/content/articles/en/<hub>/<slug>.mdx
src/content/articles/zh/<hub>/<slug>.mdx
src/pages/[lang]/articles/[...slug].astro
  1. 发第一篇第二语言文章前,layout 必须先有 hreflang。 Google 严格执行两条规则(见其本地化版本文档):整组必须双向(EN 指向 ZH,ZH 就必须指回 EN,否则两边都被忽略),且每个页面必须自引用(在集合里包含自己)。漏掉任何一条,整个 cluster 都会被丢弃。Astro 示例:
---
const { lang, translationKey } = Astro.props.article.data;
const site = Astro.site.toString().replace(/\/$/, '');
const path = Astro.url.pathname;
const otherLang = lang === 'en' ? 'zh' : 'en';
const otherPath = path.replace(`/${lang}/`, `/${otherLang}/`);
---
<link rel="canonical" href={`${site}${path}`} />
<link rel="alternate" hreflang={lang} href={`${site}${path}`} />
<link rel="alternate" hreflang={otherLang} href={`${site}${otherPath}`} />
<link rel="alternate" hreflang="x-default" href={`${site}${path.replace(`/${lang}/`, '/en/')}`} />

第一个 alternate 是自引用,第二个是指回同篇文章的 return tag。因为是从数据生成的,以后加减一个语言就是一次部署、一次性把每个页面的标签都重写好。手写 hreflang 几乎一定会在你忘记改的那些页面上破坏互引。

  1. 先翻(更好是重写)最强的 10 篇。 这 10 篇定格式、做种子。重写胜过直译——能把本地语境编进去。

  2. 加语言切换——切到对应同篇文章,不是切到首页:

---
const { lang, translationKey, urlSlug } = Astro.props.article.data;
const altLang = lang === 'en' ? 'zh' : 'en';
const altPath = `/${altLang}/articles/${urlSlug}/`;
---
<a href={altPath} rel="alternate" hreflang={altLang}>
  {altLang === 'zh' ? '中文' : 'English'}
</a>
  1. 第二语言独立 Search Console property,曝光 / 点击数据要分得开。Domain property + 按语言路径的 URL-prefix property。

  2. 写到 30 篇第二语言时复盘。 曝光为零或平 → 暂停,标 noindex,follow

{frontmatter.lang === 'zh' && pauseZh && (
  <meta name="robots" content="noindex,follow" />
)}

执行检查清单

  • 上线前 Search Console 已观察到国家级需求信号。
  • URL 第一天就带语言前缀。
  • hreflang 由 layout 发,不手写。
  • 切换器同文章 ↔ 同文章,不是回首页。
  • 两种语言各自独立 Search Console property。

上线后验证

  • 对 EN 文章做 URL Inspection,会显示它的 ZH 对应页是 “Alternate page with proper canonical tag”,反之亦然。对多语言站来说,只要 hreflang 正确,这个状态是预期且健康的,不是要修的错误。
  • 两种语言的 coverage 在各自的 Search Console property 里独立增长。
  • 跨语言对之间不出现 “Duplicate, Google chose different canonical”。一旦出现,要么 hreflang 坏了,要么两个页面太相似;去 International Targeting 报告里查有没有缺失的 return tag。

容易踩的坑

  • 主语言才 30 篇就上双语,两边都还没扎根就一起放弃。
  • 用模型自动翻译直接发——质量太差 Google 也认得出。
  • 语言切换器只跳首页,读者期待对应文章却跳走了,跳出率飙升。
  • 忘了 hub 和分类名也要两边一致翻译。
  • 把第二语言当翻译项目而不是写作项目,文化层面的重写通常更有效。

FAQ

  • 第二语言会不会抢主语言流量: 只有 hreflang 配错才会。标签双向且自引用配好后,两个版本面对的是不同的 SERP(中文 query 和英文 query 本来就是不同的 query),并不互抢。互相抢量的根因通常是 return tag 坏了。
  • 该用翻译服务还是自己写第二语言: 能自己写就尽量自己写或重写。纯机器翻译读起来很平、丢失本地语境,而且 Google 的反垃圾系统越来越会标记批量自动翻译。把本地语境编进去的母语重写,稳定胜过同一篇文章的逐字翻译。
  • 只为 AdSense 收入值得做双语吗: 通常不值。只为 AdSense 把产出翻倍,很少能覆盖那笔维护税。双语回本靠的是总触达、品牌,或第二市场更高的转化(产品或联盟)。
  • 之后还能切回单语言吗: 可以。给放弃的那一侧标 noindex,follow,只在 URL 能清晰映射的地方做 301,并在同一次部署里把死语言从 hreflang 集合里移除,保持互引完整。别硬删,硬删会让外链失效。
  • 每种语言要不要单独的 Search Console property: 强烈建议。一个 Domain property 加上每条语言路径(/en//zh/)各一个 URL-prefix property,能让每种语言的曝光、点击、coverage 都分得开,你才读得出第二语言到底有没有起效。
  • 第二语言 30 篇后流量不增长怎么办?: 要么主题迁移不过去,要么 Google 还需要时间信任这棵新树。再观察 60 天。若曝光仍然平,问题就出在主题上——该暂停,而不是继续喂。

相关阅读

标签: #独立开发 #建站策划 #双语 #hreflang #SEO #内容运营