搜索全站
插件 10 分钟阅读

Yoast SEO 迁移到 Rank Math 的注意事项:数据导入与重定向保留

从 Yoast SEO 迁到 Rank Math,最怕标题描述丢失和旧链接失效。本文讲清导入工具覆盖了哪些字段、哪些必须手工搬运、重定向怎么导出再导入、迁移后如何验证,以及回滚方案。

U
UFO_PF 2021-02-21 · 阅读 10 分钟
Yo 插件
阅读提示
本文约 3,646 字,预计阅读 10 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:迁移只花十分钟,补救花了一个月

SEO 插件迁移看起来很简单:装新插件,点”导入”,删旧插件。真正做过的人知道,麻烦全在后面——导入工具只搬一部分字段,剩下那些(焦点关键词之外的 noindex 标记、重定向规则、Schema 自定义字段、面包屑调用)要么静默丢失,要么以另一种形式残留在数据库里。

更要命的是时间差:迁移当天你看不出任何问题,因为前台页面照常显示。等两三周后搜索引擎重新抓取,才发现一批本来 noindex 的聚合页被放进了索引,一批老 URL 重定向失效变成 404。这时候旧插件已经删了,数据也清了,回滚成本极高。所以迁移必须按”先备份、再导入、后验证、留回滚”的顺序做。

原理分析:迁移到底搬的是什么

先搞清楚两款插件把数据存在哪:

数据 Yoast 存储位置 Rank Math 存储位置
SEO 标题 _yoast_wpseo_title (postmeta) rank_math_title (postmeta)
SEO 描述 _yoast_wpseo_metadesc rank_math_description
焦点关键词 _yoast_wpseo_focuskw rank_math_focus_keyword
索引控制 _yoast_wpseo_is_cornerstone、meta-robots-noindex rank_math_robots
重定向 wp_yoast_seo_redirections(Yoast Premium 才建表) wp_rank_math_redirections
全局设置 wpseo、wpseo_titles 等 options rank-math-options-*

Rank Math 自带的导入工具(Rank Math → Status & Tools → Import & Export)把 Yoast 归在可导入列表里,它会做 postmeta 的字段映射。但有三类东西它搬不了:

  1. Yoast Premium 的重定向规则(表结构和 Rank Math 不同,且免费版 Yoast 根本没有这张表);
  2. 主题里硬编码的 Yoast 函数调用(如 yoast_breadcrumb());
  3. Yoast 的新闻 SEO、视频 SEO、本地 SEO 等扩展数据。

另外,Yoast 的 wpseo_* 选项和 postmeta 在删除插件时默认不会清干净(Yoast 提供”删除数据时清除”的选项,但默认关闭),这些数据留在库里不影响显示,但会干扰后续排查。

保姆级实操

第一步:完整备份,且备份要可验证

cd /var/www/mimangfei.com
wp db export ~/backup/before-yoast-migration.sql
wp db size --tables

# 额外单独备份 Yoast 的 SEO 元数据,方便回滚时抽查
wp db query "SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE meta_key LIKE '_yoast_wpseo%'" > ~/backup/yoast_meta.csv

第二步:导出 Yoast 的重定向规则(如果有 Yoast Premium)

# 先看有没有这张表
wp db query "SHOW TABLES LIKE '%redirect%';"

# 有就导出成 CSV,后面手工转成 Rank Math 的导入格式
wp db query "SELECT origin, target, type, format FROM wp_yoast_seo_redirections" > ~/backup/yoast_redirects.csv

Rank Math 的重定向支持 CSV 导入(Rank Math → Redirections → Import),字段列为 source URL、destination URL、redirect type,把 Yoast 的 origin/target 映射到前两列、状态码统一转 301 即可。

第三步:安装 Rank Math 并执行导入

  1. 装 Rank Math 但先别删 Yoast;
  2. 进 Rank Math → Status & Tools → Import & Export,在导入区找到 Yoast,勾选需要导入的数据类型(Post Meta、Term Meta、Settings 全勾);
  3. 点 Import,等待完成提示。

第四步:抽查导入结果

# 统计 Rank Math 数据是否已写入
wp db query "SELECT COUNT(*) FROM wp_postmeta WHERE meta_key='rank_math_title';"
wp db query "SELECT COUNT(*) FROM wp_postmeta WHERE meta_key='_yoast_wpseo_title';"

# 随机抽一篇文章对比两边
wp post meta get 123 rank_math_title
wp post meta get 123 _yoast_wpseo_title

两个数量级应该接近(Yoast 侧可能更多,因为有些文章只写了 Yoast 的 noindex 没写标题)。

第五步:处理主题里的 Yoast 函数调用

# 在主题目录里搜 Yoast 的硬编码调用
grep -rn "yoast_breadcrumb\|YoastSEO\|wpseo_" wp-content/themes/ --include="*.php" | head -20

找到后替换为 Rank Math 的面包屑输出,或直接删除(Rank Math 面包屑可挂载到 wp_body_open)。

第六步:验证前台输出再下线 Yoast

curl -s https://mimangfei.com/ | grep -E '<title>|rel="canonical"|application/ld\+json' | head -10
# 确认只有一份 canonical、一份 JSON-LD

确认无误后,在 Yoast 的”常规设置 → 工具”里先停用前台输出,观察两三天,再卸载插件。

常见踩坑

  1. 没备份就导入。导入是写操作,映射错了无法撤回。
  2. 以为导入工具会搬重定向。Yoast Premium 的重定向表结构不同,必须手工导出再导入。
  3. 删了 Yoast 才发现问题。先停输出观察,再卸载。
  4. wpseo_* 残留数据被误清。有些数据库清理插件会把”无来源插件”的 postmeta 当垃圾删掉,迁移后一段时间内别跑激进的数据库清理。
  5. 案例:一个做了四年的内容站迁移后,Google Search Console 里出现 800 多个”已提交但未索引”的新 URL。追查发现是 Yoast 里设为 noindex 的 800 个标签页,迁移时 meta-robots-noindex 字段没有对应的 Rank Math 映射,全部变成了默认可索引。最后的补救是写一段脚本,从旧备份里读出 noindex 清单,批量写回 rank_math_robots。
  6. 面包屑双份输出。主题里留着 yoast_breadcrumb(),Rank Math 又挂了一份,结构化数据校验报重复 BreadcrumbList。
  7. 导入后没清缓存。前台还是旧的 meta,误判导入失败。
  8. 多语言站只导了主语言。WPML/Polylang 下每篇译文也是独立 post,导入是按 post 走的,需要确认译文也都导了。

总结

Yoast 迁 Rank Math 的判断标准是三条:导入前后 rank_math_title 的数量与 _yoast_wpseo_title 基本对齐;前台 canonical 与 JSON-LD 各只有一份;旧的重定向规则已在 Rank Math 里逐一可查。满足这三条再卸载 Yoast。整个过程里,备份的价值远大于任何工具——那份 before-yoast-migration.sql 才是你唯一的安全网。

迁移完成后,建议立即配置 Rank Math 重定向管理器使用教程 来接管 404;插件本身该怎么配,可以看 Rank Math SEO 从安装到配置完整教程。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。