2026年5月20日
2026年5月20日
Redirectionプラグインの使い方|301リダイレクト・404ログ・CSV一括登録
Redirection は、URL の転送(301・302 などのリダイレクト)を WordPress の管理画面から登録・管理できるプラグインです。転送ルールはデータベースに保存されるので、.htaccess を直接編集しなくても旧 URL から新 URL へ転送できます。転送の記録(ログ)、404 エラーの記録、正規表現による一括転送、CSV での一括登録にも対応しています。
この記事の内容は、2026年11月時点の WordPress.org のプラグインページと公式ドキュメント(redirection.me、英語)で確認したものです。このときの最新版は 5.10.1 で、動作要件は WordPress 6.7 以上、PHP 7.4 以上でした。画面の項目名は英語表記で書いています。日本語で表示している場合は訳語が異なることがあります。
Redirection が向いている場面
- 記事のスラッグやパーマリンク設定を変えて、旧 URL が 404 になった
- サイトの構成変更で、多数の URL をまとめて新しい URL へ転送したい
- 404 になっている URL を見つけて、適切なページへ転送したい
.htaccessを触らずに、管理画面で転送ルールを管理したい
なお、投稿のスラッグを変えただけであれば、WordPress 本体も旧スラッグを記録して新しい URL へ転送します(wp_old_slug_redirect)。カテゴリーの付け替えや固定ページの移動、サイト構成の変更まで含めて管理したい場合に Redirection が役立ちます。
インストールと初期設定
管理画面の「プラグイン → 新規追加」で「Redirection」を検索してインストールし、有効化します。WP-CLI を使う場合は次のとおりです。
wp plugin install redirection --activate
有効化すると、管理画面の「ツール → Redirection」に画面が追加されます。初回はセットアップの画面が表示され、パーマリンク変更の監視、リダイレクトと 404 のログ、IP アドレスの記録をするかどうかを選びます。あとから「Options」タブで変更できます。
Redirection は、WordPress のパーマリンクが正しく動いていることが前提です。WordPress を通らない URL(WordPress の外にある静的ファイルなど)は、標準の設定では転送できません。
リダイレクトを1件追加する
- 「ツール → Redirection」を開き、「Redirects」タブの追加フォームを表示する
- Source URL に転送元を入力する。ドメインを除いたパスで書く(例:
/old-page/)。#以降は入れられない - Target URL に転送先を入力する(例:
/new-page/。別ドメインへ送る場合はhttps://から書く) - 歯車のアイコンを押すと詳細設定が開く。When matched の転送方法と HTTP コード、Group(グループ)、Title などを指定できる
- 保存する
HTTP コードは、恒久的な移転なら 301、一時的な転送なら 302 または 307 を使います。
| コード | 意味 | 使う場面 |
|---|---|---|
| 301 | 恒久的な移転 | URL を変更した、ページを統合した |
| 302 | 一時的な転送 | キャンペーン期間中だけ別ページへ送る |
| 307 | 一時的な転送(リクエストの方式を保つ) | フォームの送信先を一時的に変える |
| 308 | 恒久的な移転(リクエストの方式を保つ) | 301 と同じ用途で、POST などを保ちたい場合 |
301 はブラウザーにキャッシュされやすく、設定を間違えると修正後もしばらく古い転送先に飛ぶことがあります。転送先を確かめるまでは 302 で登録し、確認後に 301 へ変える方法もあります。
正規表現で複数の URL をまとめて転送する
URL のパターンで転送したい場合は、リダイレクトの詳細設定で正規表現(Regex)を有効にします。正規表現を有効にしないと、Source URL は文字どおりの URL として扱われます。
括弧で囲んだ部分は、Target URL で $1、$2 として使えます。公式ドキュメントの例をもとにした書き方は次のとおりです。
| 目的 | Source URL | Target URL |
|---|---|---|
/oldpage/ 以下を /newpage/ 以下へ |
^/oldpage/(.*) |
/newpage/$1 |
日付入りのパーマリンク(/2024/05/01/slug/)から日付を外す |
^/\d{4}/\d{2}/\d{2}/(.*) |
/$1 |
| 旧ドメインの全ページを新ドメインの同じパスへ | ^/(.*) |
https://example.com/$1 |
先頭に ^ を付けると、URL の先頭から一致したときだけ転送されます。付けないと、転送先の URL が再びパターンに一致して転送が繰り返されることがあります。. や ? など正規表現で意味を持つ文字を文字どおりに使うときは \.、\? のようにエスケープします。
CSV で一括登録する
「Import/Export」タブで CSV ファイルを読み込むと、多数のリダイレクトをまとめて登録できます。公式ドキュメントによる列の並びは次のとおりです。
- 必須: 1列目が転送元(source URL)、2列目が転送先(target URL)
- 任意: 3列目が正規表現かどうか(
0は使わない、1は使う)、4列目が HTTP コード(301〜307 のみ) - 区切りはカンマのみ(タブやセミコロンは不可)
/old-url-1/,/new-url-1/
/old-url-2/,/new-url-2/,0,301
^/category/news/(.*),/news/$1,1,301
3列目は正規表現の指定です。HTTP コードを入れる場合は4列目に書きます。/old/,/new/,301 のように3列目にコードを書くと、意図どおりに読み込まれません。
読み込む前に「Import/Export」タブで現在のリダイレクトを書き出し、控えを取っておくと、取り込みを誤ったときに戻せます。
404 エラーを確認して転送を追加する
404 のログを有効にしている場合、「404s」タブに存在しない URL へのアクセスが記録されます。
- 「ツール → Redirection → 404s」を開く
- 表示をURLごとにまとめる(グループ化)と、どの URL の 404 が多いかがわかる
- 対処したい行にマウスを乗せて「Add Redirect」を押し、転送先を入力する
404 の中には、存在しない URL を総当たりで探すアクセスも含まれます。すべてを転送する必要はありません。以前に存在したページや、外部サイトからリンクされている URL を優先して転送先を決めてください。
パーマリンクの変更を自動で追跡する
「Options」タブの URL Monitoring で監視する投稿タイプ(投稿、固定ページ、カスタム投稿タイプ)と、作成したリダイレクトを入れるグループを選ぶと、URL が変わったときに旧 URL から新 URL へのリダイレクトが自動で作られます。削除した投稿のリダイレクトも作れますが、公式ドキュメントによれば無効の状態で作られるので、転送先を入れて有効にする必要があります。
Apache の .htaccess に書き出す
標準では、転送は WordPress が処理します(WordPress モジュール)。転送の回数(ヒット数)やログを記録できるのはこの方式です。
Apache を使っている場合は、リダイレクトを .htaccess に書き出して Apache に処理させることもできます。
- 「Options」タブの Apache Module に
.htaccessのパスを入力する。ウェブサーバーがこのファイルに書き込める権限が必要 - 「Groups」タブで、Apache モジュールを使うグループを作る
- そのグループにリダイレクトを入れると、設定した
.htaccessに追記される
Apache が処理した転送は WordPress を通らないため、Redirection のログには記録されません。Nginx の場合は、リダイレクトを Nginx 用の書式で書き出し、サーバーの設定に自分で組み込みます。
WP-CLI で書き出し・取り込みをする
Redirection には WP-CLI のコマンドがあります。公式ドキュメントにあるのは、取り込み(import)、書き出し(export)、データベース操作(database)、設定の取得と変更(setting)、他のプラグインからの移行(plugin)です。リダイレクトを1件ずつ追加・削除するコマンドはありません。
# CSV ファイルからリダイレクトを取り込む
wp redirection import redirects.csv --format=csv
# .htaccess のリダイレクトを取り込む
wp redirection import .htaccess --format=apache
# すべてのリダイレクトを JSON で書き出す(控えにする)
wp redirection export all redirects-backup.json --format=json
# WordPress モジュールのリダイレクトを Nginx の書式で画面に出す
wp redirection export wordpress - --format=nginx
# 他のプラグイン(例: Rank Math)のリダイレクトを移行する
wp redirection plugin rank-math
import の --format は csv、apache、json、export の --format は csv、apache、json、nginx が使えます。
運用の注意
- 転送の連鎖を作らない: A → B → C のように転送が続くと、表示が遅くなり、検索エンジンの評価も伝わりにくくなります。URL を再度変えたときは、古い転送の転送先も最終の URL に直してください。
- 転送のループに注意する: 転送先が再び転送元に一致すると、ブラウザーに「リダイレクトが多すぎます」と表示されます。正規表現には
^を付け、転送先がパターンに一致しないか確かめます。 - ログの保存期間を決める: ログはデータベースに保存されます。「Options」タブの保存期間(Log Expiry)を「A month」などに設定すると、古いログが WP-Cron で削除されます。
- IP アドレスの扱い: ログに IP アドレスを残す場合は、プライバシーポリシーとの整合を確認してください。「Options」タブで記録しない、または一部を伏せて記録する設定にできます。