2026年8月11日
2026年8月11日
Rank MathとYoast SEOを切り替えるときのデータ移行手順と確認ポイント
Yoast SEOからRank Mathへ移る場合は、Rank Mathに備わっている取り込み機能を使えば、記事ごとのSEOタイトル・メタディスクリプション・noindex設定などの大半を引き継げます。逆にRank MathからYoast SEOへ戻す場合は、Yoast側の取り込み機能が対応しているかをまず確かめ、対応していなければ投稿メタを変換する作業が必要です。この記事では、移行前の準備、両方向の具体的な手順、移行後に検索結果へ悪影響を出さないための確認方法までを順に説明します。
移行で引き継がれるもの・引き継がれないもの
SEOプラグインのデータは大きく3種類に分かれます。どれが移り、どれが手作業になるのかを先に把握しておくと、移行後の「設定が消えた」という混乱を防げます。
- 記事・固定ページ単位のデータ:SEOタイトル、メタディスクリプション、フォーカスキーワード、noindex、canonical URLなど。投稿メタ(wp_postmeta)に保存されており、取り込み機能の主な対象です。
- カテゴリー・タグ単位のデータ:タクソノミーごとのタイトルや説明。Rank Mathはタームメタに、Yoast SEOは独自のオプションにまとめて保存しているため、保存場所の形式が異なります。
- サイト全体の設定:タイトルの書式、区切り文字、サイトマップに含める投稿タイプ、構造化データ、SNS用の既定画像など。取り込める範囲はプラグインのバージョンによって差があり、移行後に画面で見直す前提で考えるのが安全です。
リダイレクト設定は特に注意が必要です。Rank Mathにはリダイレクト機能がありますが、Yoast SEOのリダイレクト管理は有料版の機能です(2026年10月現在)。Rank MathからYoast SEOの無料版へ移る場合、リダイレクトは別のプラグイン(たとえば「Redirection」)やサーバー側の設定へ移す計画を先に立てておきます。
事前準備:バックアップと「移行前の状態」の記録
データベースのバックアップを取る
取り込み処理は数千件の投稿メタを一度に書き換えます。途中で止まったり、意図しない値で上書きされたりしても戻せるよう、作業前にデータベース全体のバックアップを取ってください。可能であれば、本番ではなくステージング環境で一度通しで試してから本番に適用するのが理想です。
主要ページの出力を控えておく
移行が成功したかどうかは「移行前と同じHTMLが出ているか」で判断します。アクセスの多いページを10〜20件ほど選び、次の項目をスプレッドシートに記録しておきます。
- titleタグとmeta description
- robotsメタ(noindexの有無)
- canonical URL
- OGP(og:title、og:image)
- XMLサイトマップのURLと、含まれているURLの件数
ブラウザで「ページのソースを表示」すれば確認できます。件数が多い場合は、サイトをクロールするSEOツールで一覧を書き出しておくと比較が楽になります。
Yoast SEOからRank Mathへ移行する手順
- Yoast SEOは有効のまま、Rank Mathをインストールして有効化します。Yoast側を先に削除すると、取り込み元として認識されなくなる場合があります。
- Rank Mathの初期設定ウィザードが起動すると、他のSEOプラグインのデータを検出して取り込みを提案する画面が表示されます。ここで取り込みを実行するか、後から管理画面の「Rank Math」メニュー内にあるステータスとツール(インポート/エクスポート)から実行します。メニューの位置や表記はバージョンで変わることがあります。
- 取り込む項目(設定、投稿メタ、タームメタ、ユーザーメタ、リダイレクトなど)を選んで実行します。投稿数が多いサイトでは数分かかるため、完了表示が出るまで画面を閉じないでください。
- 取り込みが終わったら、Yoast SEOを無効化します。両方が有効なままだと、titleタグやmeta descriptionが二重に出力されたり、サイトマップが競合したりします。削除は、移行結果の確認が済んでからで構いません。
タイトルの書式で使う変数は、Yoast SEOが %%title%% のように「%」を2つずつ、Rank Mathが %title% のように1つずつ使います。取り込み機能はこの違いを変換しますが、独自に追加した変数や、プラグイン固有の変数は変換されずに文字列のまま残ることがあります。移行後は、いくつかの記事で実際の出力を見て、変数がそのまま表示されていないかを確認してください。
Rank MathからYoast SEOへ戻す手順
まずYoast SEOの取り込み機能を確認する
Yoast SEOの管理画面には、ツール内に他のSEOプラグインからデータを取り込む機能があります。対応している移行元はバージョンによって異なるため、Yoast SEOを有効化したら一覧にRank Mathがあるかを確認します。一覧にあれば、その機能を使うのが最も手間がかかりません。
取り込み機能が使えない場合は投稿メタを変換する
一覧にない場合は、Rank Mathの投稿メタをYoast SEOの投稿メタへコピーします。主な対応関係は次の通りです。
rank_math_title → _yoast_wpseo_title
rank_math_description → _yoast_wpseo_metadesc
rank_math_focus_keyword → _yoast_wpseo_focuskw
rank_math_canonical_url → _yoast_wpseo_canonical
rank_math_robots (配列) → _yoast_wpseo_meta-robots-noindex
WP-CLIが使える環境なら、次のようなファイルを用意して wp eval-file で実行できます。すでにYoast側に値がある記事は上書きしないようにしています。実行前には改めてデータベースのバックアップを取ってください。
<?php
// rm-to-yoast.php : wp eval-file rm-to-yoast.php で実行する
$map = array(
'rank_math_title' => '_yoast_wpseo_title',
'rank_math_description' => '_yoast_wpseo_metadesc',
'rank_math_focus_keyword' => '_yoast_wpseo_focuskw',
'rank_math_canonical_url' => '_yoast_wpseo_canonical',
);
// Rank Math の変数を Yoast SEO の書式に置き換える
$vars = array(
'%title%' => '%%title%%',
'%sep%' => '%%sep%%',
'%sitename%' => '%%sitename%%',
'%excerpt%' => '%%excerpt%%',
);
$ids = get_posts( array(
'post_type' => 'any',
'post_status' => 'any',
'numberposts' => -1,
'fields' => 'ids',
) );
foreach ( $ids as $id ) {
foreach ( $map as $from => $to ) {
$value = get_post_meta( $id, $from, true );
if ( '' === $value || '' !== get_post_meta( $id, $to, true ) ) {
continue; // 移行元が空、または移行先に値がある場合は触らない
}
if ( 'rank_math_focus_keyword' === $from ) {
// Rank Math はカンマ区切りで複数持てるため先頭の1語だけ使う
$parts = explode( ',', $value );
$value = trim( $parts[0] );
}
update_post_meta( $id, $to, wp_slash( strtr( $value, $vars ) ) );
}
$robots = get_post_meta( $id, 'rank_math_robots', true );
if ( is_array( $robots ) && in_array( 'noindex', $robots, true ) ) {
update_post_meta( $id, '_yoast_wpseo_meta-robots-noindex', '1' );
}
}
WP_CLI::success( count( $ids ) . ' 件の投稿を処理しました。' );
update_post_meta() は渡した値からバックスラッシュを取り除くため、wp_slash() で包んでいます。これを省くと、説明文に含まれる「\」が消えます。カテゴリーやタグの設定は保存形式が大きく違うため、件数が少なければ管理画面で入力し直すほうが安全です。
Yoast SEOのインデックスを作り直す
Yoast SEOは投稿メタとは別に、出力用のデータを専用テーブルにまとめて持っています。投稿メタを書き換えただけでは反映されないことがあるため、変換後にYoast SEOのツール画面からSEOデータの最適化を実行するか、WP-CLIで wp yoast index を実行します。利用できるオプションは wp help yoast index で確認できます。
移行後に確認すること
- 二重出力がないか:ページのソースで「<title」や「description」を検索し、1件ずつしか出ていないことを確かめます。古いプラグインが有効なまま残っているのが最も多い原因です。
- noindexの漏れ・付きすぎ:記録しておいたページのrobotsメタを比較します。アーカイブページや添付ファイルページのnoindex設定はサイト全体の設定側にあるため、記事単位の取り込みでは揃わないことがあります。
- サイトマップ:どちらのプラグインも既定ではサイトマップのインデックスを
/sitemap_index.xmlで出力しますが、含める投稿タイプの設定は見直しが必要です。Google Search Consoleでサイトマップを再送信し、読み込みエラーが出ていないかを数日見ておきます。 - 構造化データ:記事やパンくずのスキーマは、プラグインごとに出力方法が異なります。Googleのリッチリザルトテストで主要ページを確認してください。
- リダイレクト:移行前に設定していたリダイレクト元のURLにアクセスし、意図した転送先へ301で飛ぶかを確かめます。
問題がなければ、古いプラグインを削除します。なお、プラグインを削除しても投稿メタが残る場合があり、残っていても表示には影響しません。データベースを整理したい場合は、移行が落ち着いてからバックアップを取った上で行ってください。
まとめ
- 移行前にデータベースのバックアップを取り、主要ページのtitle・description・robots・canonicalを記録しておく。
- Yoast SEOからRank Mathへは、Rank Mathの取り込み機能で大半を移せる。取り込み後は旧プラグインを無効化し、二重出力を防ぐ。
- Rank MathからYoast SEOへは、Yoast側の取り込み機能の対応状況を確認し、使えなければ投稿メタを変換してからYoastのSEOデータ最適化を実行する。
- リダイレクト、カテゴリーの設定、サイト全体の書式は手作業での見直しが前提。
- 移行後は記録した値と比較し、サイトマップの再送信とリッチリザルトの確認まで行う。