建议在 先做一次完整站点备份 + 在暂存/测试环境(staging)演练一次 后再在正式站点执行。
一、总体迁移策略(先读这一段,再选策略)
- 目标:英文做主语言(
/
),中文放到子目录(/zh/
),其他语言类似(/es/
等)。 - 原则:不要直接删除或覆盖现有中文页面;保留原中文内容并让它们以
/zh/
形式存在,避免直接丢流量。 - 推荐方案(安全且推荐):在 staging 测试完毕 → 在线上启用 Polylang → 配置 URL 为 “语言子目录” → 把已有页面标记为中文并生成英文版本(先做高流量页面)→ 若旧中文 URL 改变则用 301 跳转到新
/zh/
URL。 - 保守方案(如果不想改任何现有 URL):先把英文做成
/en/
(或/en/
不隐藏),保留中文 URL 不变;逐步把英文做成熟再把英文设为默认(复杂且更易出错)。我仍建议用推荐方案。
二、上线前准备(必须做)
- 完整备份(文件 + 数据库)
- 插件:UpdraftPlus / All-in-One WP Migration,或主机自带快照。
- 建立 Staging(临时测试站)
- 在主机面板建一份克隆(或用 WP Staging 插件)。把整个过程先在 staging 演练。
- 记录高流量页面
- 在 Google Search Console / Analytics 里导出流量前 50/100 个页面,优先迁移这些页面(翻译与测试)。
- 安装 Redirection(或计划如何做 301)
- 方便把旧 URL 映射到新
/zh/
。
- 方便把旧 URL 映射到新
三、在 WordPress 上的详细操作步骤(一步步来)
1) 把站点后台语言改为英文(可选)
路径:后台 → Settings(设置) → General(常规) → Site Language(站点语言)
- 设为 English (United States)(这只是后台显示语言,不会删除前台内容)。
注:若你想后台也用英语便于长期维护,改这个;不影响前台已有页面内容。
2) 安装 Polylang 插件
路径:后台 → Plugins(插件) → Add New(安装插件)
,搜索 Polylang
- 安装并 Activate(激活)。(免费版 Polylang 功能对大多数多语言站够用)
3) 在 Polylang 里添加语言并设置默认语言
路径:后台 → Languages(语言)
(Polylang 新增菜单)
- Add new language(添加语言):选择 English(United States)并把它设为 默认(界面中通常有一个星形或“make default”)。
- 添加 Chinese(Chinese — Simplified / zh_CN)作为第二语言。
- 如果未来要加西班牙语也在这里添加 /es/。
4) 配置 URL 结构(把英文放根目录、中文放 /zh/
)
路径:后台 → Languages → Settings(语言设置)
(Polylang 的设置页)
- URL modifications(URL 修改/语言在 URL 中):选择 “The language is set from the directory name in pretty permalinks”(即使用目录/子目录表示语言)。
- 勾选 “Hide URL language information for default language”(隐藏默认语言前缀)—— 这样英文(默认)在根目录
/
,中文会是/zh/
。 - 保存更改。
备注:此处非常关键——选错会导致语言前缀配置不符合预期。建议先在 staging 做一次确认。
5) 为现有页面/文章标记语言(重要)
目的:告诉 Polylang 这些已经存在的页面属于“中文”版本,从而把它们放到 /zh/
。
操作(页面举例):
- 进入
Pages(页面)
或Posts(文章)
,打开一个页面编辑。 - 在右侧或页面底部会出现 Language(语言) 面板(Polylang 添加的)。
- 把页面语言设置为 中文 (zh)。保存/更新。
- Polylang 会把该页面自动关联到中文语言版本,并把 URL 变更为
/zh/your-slug
(在 staging 上先观察结果)。
注意:如果你的中文页面当前 URL 为
/xxx
(没有/zh/
),Polylang 在启用并标记为中文后页面的 URL 可能会变成/zh/xxx
—— 这会改变公开 URL,需要 301 跳转到新位置(见后面跳转步骤)。
6) 为每个中文页面创建英文翻译(先做关键页面)
仍在页面编辑界面:
- 在 Language 面板中,点击对应 英文(+)新建图标,会自动创建一个“未翻译”的英文页面草稿并与中文页面互相关联。
- 在英文页面编辑器中填写英文内容(不要直接用机器翻译未经校对)。
- Slug(固定链接):可按英文习惯改写 slug(例如
/us-civics-test
)。 - 发布英文页面(English)。
优先级建议:先做首页、题库目录页、最能带流量的 50 页;其余逐步补上。
7) 菜单与语言切换器
- 路径:
Appearance → Menus
- Polylang 要求为每种语言建立单独菜单:
- 选择语言(Polylang 在菜单页面会显示一个语言选择项),创建对应语言的菜单并分配位置(如主导航、底部导航)。
- 语言切换器(Language Switcher):Polylang 支持把切换器放到菜单里或作为小工具(widget)。建议放在顶栏或页眉显眼位置,并用文字(English / 中文)而非只有国旗(国旗有争议)。
8) 翻译站点文字(site title / tagline / 主题字符串)
- 站点标题/描述:
Settings → General
(Polylang 通常会在Languages → Strings translation
或类似处让你填不同语言的站点标题)。 - 主题/插件里的硬编码文字:
- 方案 A:使用 Polylang Pro 的字符串翻译(付费)。
- 方案 B:使用 Loco Translate 来翻译主题或插件的语言包(适用于 PHP 文本)。
- 方案 C:若是 widget 文本或自定义 HTML,则手动为每种语言创建对应 widget 或区块。
9) Sitemap 与 SEO(Yoast/RankMath)
- 如果你使用 Yoast 或 RankMath:它们会生成 sitemap;Polylang 会让 sitemap 涵盖多语言页面(检查 sitemap 是否包含
/zh/
与/
)。 - 提交 sitemap 到 Google Search Console(域名属性或 URL-prefix)。
- 确认每个页面在前端均含有正确的
rel="alternate" hreflang="..."
标签(Polylang 会自动生成)。 - SEO 小技巧:英文页面应写更有竞争力的内容(FAQ、官方 USCIS 链接、示例题解)。
10) 处理旧 URL(301 重定向 —— 非常关键)
若启用 Polylang 后旧中文 URL 从 /old
变为 /zh/old
,需要把旧 URL 301 到新 URL,避免流量与外链价值流失。
推荐做法: 使用 Redirection 插件(简单易操作)。
操作示例:
- 安装并启用 Redirection:
Tools → Redirection
→ Add new redirection:- Source URL:
/old-page-slug/
- Target URL:
/zh/old-page-slug/
- Type: 301 Permanent Redirect
- Source URL:
- 如果页面很多可以通过 CSV 批量导入(Redirection 支持)或写正则规则(谨慎使用)。
.htaccess 例子(仅限 Apache 熟悉者):
Redirect 301 /old-page-slug/ https://usacivicstest.com/zh/old-page-slug/
(建议使用插件操作,风险小,便于追踪)
11) 缓存 / CDN / 清理
- 修改上线后清空缓存(WP Super Cache / WP Rocket / FastCGI 缓存)并清理 CDN(Cloudflare 等),确保用户看到最新语言切换与跳转。
四、上线后(监控与校正)
- 提交 sitemap 给 Google Search Console,并使用 URL Inspection 请求抓取关键页面(首页、题库重要页)。
- 监控 Search Console 的 Coverage / Performance(按语言查看流量变化)
- 观察首页与高流量页面在 1–12 周内的 impressions / clicks / avg position。
- 在 GA4 (或 Universal Analytics) 中查看 language (语言) 维度,比较中/英流量与转化。
- 检查 hreflang 报错(Search Console 里如果有 hreflang 错误会提示)并修正。
- 检查外部反链指向:若有大量外链指向旧中文 URL,优先对这些 URL 做 301。
- 保留旧站快照:保留访问日志和排名数据用于回滚分析。
五、常见问题与解答(FAQ)
Q1:Polylang 会自动翻译内容吗?
A:不会。Polylang 管理语言与页面关联、URL、hreflang 等。内容翻译需人工或使用自动翻译插件(TranslatePress、DeepL/Google API 插件),但建议人工校对。
Q2:英文设为默认后中文页面会丢流量吗?
A:如果按上面方法(保留中文并放到 /zh/
,做好 301),短期可能有波动,但长期不会丢失已收录的中文流量。关键是正确做 301 和 sitemap/hreflang。
Q3:是否一定要买 Polylang Pro 或 WPML?
A:免费版 Polylang 足够多数网站。若需要专业翻译管理、字符串翻译界面或翻译服务集成,可考虑 Polylang Pro 或 WPML(付费)。
Q4:站内搜索/题库如何处理?
A:题库建议为每个题目做语言映射(中文题 → 对应英文题页面)。搜索插件需要支持多语言索引(如 Relevanssi 支持多语言),注意配置。
六、实用插件清单(推荐)
- Polylang(多语言)
- Redirection(301 管理)
- UpdraftPlus(备份)
- Yoast SEO / RankMath(SEO + sitemap)
- WP Staging(创建测试站)
- Loco Translate(主题/插件字符串翻译) — 若需要翻译主题文本
- Google Site Kit(快速接入 Search Console / Analytics)
七、一个可执行的 2 周简化迁移计划(示例)
第 0 步(马上):完整备份并在主机建立 staging。
第 1 天:在 staging 安装 Polylang,添加语言,配置 URL(目录方式 + 隐藏默认前缀)并测试。
第 2–3 天:在 staging 上把关键 20 个中文页面标记为中文并创建英文草稿(首页、题库目录、最热门 20 页)。
第 4–6 天:完善英文内容、翻译校对,同时在 staging 测试菜单、语言切换器、字符串显示。
第 7 天:整理需要 301 的旧 URL 列表并在 Redirection 里做好规则。
第 8 天:在 staging 清理缓存测试 sitemap/hreflang 是否正确(用浏览器查看源码确认 <link rel="alternate"...>
)。
第 9–10 天:把所有改动部署到线上(或直接在正式站重复操作),同时启用 Redirection 规则并清缓存。
第 11–14 天:提交 sitemap 到 GSC,持续监控 Performance & Coverage,修复问题。
八、我可以帮你做的事情(你需要时告诉我)
- 我可以根据你网站最重要的 10 个页面,帮你写 / 优化英文首页与题库页面 的英文文案(SEO 友好)。
- 我可以把上面步骤整理成一个**可打印的检查表(Checklist)**发给你。
- 若你愿意,把你站点的高流量 page 列给我(从 Search Console 导出),我可以帮你排优先级并写出每页的英文草稿大纲。