WordPress のパーマリンクを途中で変更すると、既存記事の URL が変わります。投稿数が少ないサイトなら手作業で直せるかもしれませんが、長期運用して記事数が多いサイトでは、SEO、内部リンク、外部リンク、Search Console への影響が大きくなります。
この記事では、10 年以上「基本」パーマリンクで運用してきた WordPress で、旧 URL を守りながらパーマリンクを変更する手順を整理します。軸は、変更前後の URL を投稿 ID で対応付け、旧 URL から新 URL へ 301 リダイレクトすることです。
単にパーマリンク設定を変更するだけでは不十分です。旧 URL を保護し、Search Console とサイトマップも更新し、主要な内部リンクを確認するところまでを 1 つの移行作業として扱います。
書籍
WordPress 仕事の現場でサッと使える!デザイン教科書 [WordPress 6.x対応版] 改訂第3版
WordPress のサイト構築、テーマ、カスタマイズ、運用項目を確認したい場合の参考書籍です。価格や在庫、WordPress の最新仕様との差分はリンク先や公式ドキュメントで確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
書籍
DNS がよくわかる教科書 第 2 版
DNS の基本、名前解決、権威 DNS、キャッシュ DNS、DNSSEC などを体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
関連する記事
この記事は実践編です。サイトマップと基本パーマリンクの問題は、先に問題編として整理しています。
- WordPress のサイトマップが生成されない原因 – パーマリンク設定と URL 設計を見直す
- Ubuntu 22.04 WordPress – Apache / PHP / MariaDB で CMS を構築する
- WordPress の「返答が正しい JSON レスポンスではありません」を切り分ける
- WordPress が wordpress.org に接続できない原因と切り分け方
移行方針
今回の方針は、現在の URL を捨てずに、新しいパーマリンクへ移行することです。具体的には、変更前の URL と変更後の URL を投稿 ID で対応付け、Redirection プラグインで 301 リダイレクトします。
| 作業 | 目的 |
|---|---|
| 変更前 URL の取得 | 旧 URL を漏れなく把握する。 |
| パーマリンク変更 | URL 構造を SEO や可読性に向いた形へ変更する。 |
| 変更後 URL の取得 | 新 URL を漏れなく把握する。 |
| 新旧 URL の対応表作成 | 投稿 ID をキーにして正しく対応付ける。 |
| 301 リダイレクト設定 | 旧 URL へのアクセスを新 URL へ転送する。 |
| サイトマップ更新 | 検索エンジンへ新 URL 構造を伝える。 |
変更前にバックアップする
パーマリンク変更はサイト全体に影響します。作業前に WordPress のデータベースと wp-content をバックアップします。Redirection プラグインや CSV の作業に失敗した場合でも、戻せる状態にしておくことが重要です。
sudo mariadb-dump --single-transaction wordpress > wordpress-before-permalink.sql
sudo tar czf wordpress-wp-content-before-permalink.tar.gz -C /var/www/wordpress wp-contentKubernetes やコンテナ環境の場合は、DB のバックアップ、永続ボリューム、Helm values、ConfigMap、Secret も含めて復元手順を確認します。
変更前 URL をエクスポートする
まず、変更前の全投稿 URL を CSV として取得します。元記事では Export any WordPress data to XML/CSV プラグインを使いました。必要な項目は投稿 ID と Permalink です。
- Export any WordPress data to XML/CSV をインストールして有効化する。
- 投稿を対象にエクスポートを作成する。
- エクスポート項目を ID と Permalink に絞る。
- CSV としてダウンロードする。
- ファイル名を old.csv として保存する。
重要なのは、投稿 ID を残すことです。URL の順番だけを信じて結合すると、並び順がずれた時に誤ったリダイレクトを作ってしまいます。
パーマリンクを変更する
元記事では、カスタム構造として次の形式を採用しました。
/%category%/%postname%/カテゴリと投稿スラッグを URL に含めることで、URL から記事の位置づけを読み取りやすくなります。一方で、カテゴリやスラッグを後から変更すると URL が変わるため、運用ルールも必要です。
日本語タイトルから自動生成されたスラッグは URL として長くなりがちです。理想的には、パーマリンク変更前に主要記事のスラッグを英単語ベースで整理しておく方が良いです。ただし、記事数が多い場合は、先にパーマリンク変更とリダイレクトを優先し、スラッグ整理は段階的に進める判断も現実的です。
変更後 URL をエクスポートする
パーマリンク変更後、同じ方法でもう一度全投稿 URL を CSV として取得します。ファイル名は new.csv とします。ここでも必ず投稿 ID と Permalink を含めます。
| ファイル | 内容 |
|---|---|
| old.csv | 変更前の投稿 ID と旧 URL。 |
| new.csv | 変更後の投稿 ID と新 URL。 |
| merge.csv | 旧 URL と新 URL の対応表。 |
新旧 URL 対応表を作る
old.csv と new.csv を投稿 ID で結合し、旧 URL と新 URL の対応表を作成します。Excel やスプレッドシートで作ってもよいですが、投稿数が多い場合はスクリプトで ID をキーにして結合する方が安全です。
id,old_url
90000,https://www.example.com/?p=90000
90001,https://www.example.com/?p=90001id,new_url
90000,https://www.example.com/category/postname90000/
90001,https://www.example.com/category/postname90001/old_url,new_url
https://www.example.com/?p=90000,https://www.example.com/category/postname90000/
https://www.example.com/?p=90001,https://www.example.com/category/postname90001/結合時には、old.csv と new.csv の件数が一致しているか、投稿 ID が欠けていないか、旧 URL と新 URL が同一ではないかを確認します。
Redirection プラグインへインポートする
Redirection プラグインを使い、merge.csv をインポートします。元記事では、この方法で旧 URL を新 URL へ転送しました。
- Redirection プラグインをインストールして有効化する。
- 初期設定でパーマリンク変更の監視と 404 ログを有効化する。
- ツールから Redirection を開く。
- インポート / エクスポートを開く。
- merge.csv を読み込ませる。
- 旧 URL から新 URL へ 301 リダイレクトされることを確認する。
Redirection のインポート形式はプラグインのバージョンにより変わる可能性があります。インポート前に少数件でテストし、意図した 301 リダイレクトになっているか確認します。
リダイレクトを確認する
CSV をインポートしたら、旧 URL にアクセスして新 URL へ 301 で転送されるか確認します。ブラウザだけでなく curl で HTTP ステータスと Location を確認します。
curl -I 'https://www.example.com/?p=90000'
curl -L -I 'https://www.example.com/?p=90000'確認するポイントは、301 が返ること、Location が正しい新 URL であること、リダイレクトループが起きていないことです。
Search Console とサイトマップを更新する
パーマリンク変更後は、サイトマップ URL と Search Console の登録内容を確認します。旧 URL から新 URL へのリダイレクトがあるとしても、サイトマップには新 URL を載せるべきです。
- 新しいサイトマップ URL が取得できるか確認する。
- Search Console に登録しているサイトマップ URL を見直す。
- 主要記事が新 URL でクロールされるか確認する。
- 旧 URL へのアクセスが 301 で新 URL へ移動するか確認する。
- 404 が増えていないか Redirection のログを見る。
curl -I https://www.example.com/wp-sitemap.xml
curl -I https://www.example.com/sitemap.xml大量記事サイトでの注意点
記事数が多いサイトでは、パーマリンク変更は一度で終わる作業ではありません。移行後も、しばらく 404、Search Console、アクセス解析、内部リンクを確認する必要があります。
| 確認項目 | 見ること |
|---|---|
| 404 ログ | 旧 URL から漏れているリンクがないか。 |
| Search Console | インデックス、クロールエラー、サイトマップの状態。 |
| アクセス解析 | 主要記事のアクセスが大きく落ちていないか。 |
| 内部リンク | 重要記事から旧 URL へリンクしていないか。 |
| スラッグ | 日本語や長すぎるスラッグを段階的に整理する。 |
特に、カテゴリやスラッグを URL に含める場合、後からカテゴリ構造を変えると URL も変わります。カテゴリ整理とパーマリンク変更は相性が悪い場合があるため、URL に含める要素は慎重に決める必要があります。
まとめ
WordPress のパーマリンク変更は、設定画面で構造を変えるだけなら簡単です。しかし、長期運用サイトでは既存 URL を守ることが本体です。
安全に進めるには、変更前 URL と変更後 URL を投稿 ID で対応付け、旧 URL から新 URL へ 301 リダイレクトし、サイトマップと Search Console を更新します。
基本パーマリンクのまま悩んでいる場合でも、いきなり変更するのではなく、バックアップ、URL エクスポート、対応表、リダイレクト、検証までを 1 セットとして準備すれば、影響を最小限に抑えて移行できます。


