WordPressのパーマリンクを運営途中で変更して旧URLから301リダイレクトした設定などの試行錯誤です。
結構面倒でした。。WordPressのパーマリンク変更時の注意点や確認事項などを含めてご紹介します。ある程度Webの知識がない人でもできるように紹介します。
先にお伝えしておくと、もともとWordPressのパーマリンク設定部分をカスタム構造で「/%category%/%post_id%」にしていたものを、「/%post_id%」に変更しました。通常のパーマリンク設定で入る/category/という部分はプラグインで削除していました。
とか、
というように、カテゴリ構造が親子になっているものも含むサイトを、
という状態にして、「http://xxxxxxx.com/cate1/123」など旧URLに訪れたユーザを301リダイレクトして「http://xxxxxxx.com/123」するのがゴールです。
旧URLを新URLにリダイレクトするのは、旧URLがもっているページの価値を(ある程度?)引き継ぐことができるので重要です。
パーマリンク変更の目的
以前は構造を表現するうえで、カテゴリをURLに含んでいると良い(SEOなどもろもろ)という話だったのですが、パンくずなどもあるので、ユーザ、検索エンジンともどもあまり意味をなさなくなってきています。
そして、カテゴリをURLに含んでいる場合、カテゴリを追加や削除したときにURLが変わってしまうデメリットが増えてきています。
本来は記事ごとにURLを作成するのが良いのですが、今回は過去記事などが多くて対応しきれなかったのでpost idを利用しました。
パーマリンクを「/%post_id%」に変更することで、今後カテゴリを変更しても影響しなくなります。
パーマリンクを変更してリダイレクトする方法
今回実施した方法から紹介していきます。手作業も発生するのですが、誰にでもやりやすいかと。パーマリンク変更の流れを簡単にかくと、以下のとおりです。
- カテゴリのURLを一覧にする
- カテゴリの一覧を加工する
- Redirectionプラグインを入れる
- Redirectionプラグインに登録する
- リダイレクトを確認する
カテゴリのURLを取得して一覧にする
適当にカテゴリのURLの一覧を作成してGoogleスプレッドシートやExcelにでも入れていきます。
こんな感じのリストを作成してください。
https://golt.co.jp/web
https://golt.co.jp/web/html-css
https://golt.co.jp/web/wordpress
https://golt.co.jp/system
https://golt.co.jp/system/server
カテゴリの一覧を加工する
置換や文字連結を利用して上記を以下のように加工します。前方のドメイン部分を削除して、後方に「([\d+])」をくっつけます。
/web/([\d+])
/web/html-css/([\d+])
/web/wordpress/([\d+])
/system/([\d+])
/system/server/([\d+])
もし「category」というのが入っていても、問題ありません。その場合は、以下の感じですかね。
/category/web/([\d+])
/category/web/html-css/([\d+])
/category/web/wordpress/([\d+])
Redirectionプラグインを入れる
Redirectionプラグインを入れて有効化します。
このあたりでパーマリンクを変更しちゃってください。一時的に旧URLにアクセスしたときに404エラーなどが起こります。。。あとで検証するので旧URLのリストを複数残しておいてください。
Redirectionプラグインに登録する
上記で作成したリストをRedirectionプラグインに登録して、リダイレクトしていきます。パーマリンクを変更するまえにやってしまうと404エラーなどが起こるので注意です。
- ソースURLに上記で作成したリストを記入する。
- 正規表現にチェックする!
- ターゲットURLに「/$1」を記入する。
- 「新しい転送ルールを追加」を押下する。
上記をカテゴリの数だけ登録します。
ちょっと面倒ですが.htaccessとかいじらないで良いです。
リダイレクトを確認する
リダイレクトの確認は2点です。
- 旧URLが新しいURLにリダイレクトされるか
- ページングなど正しく動くか
上記で残しておいた旧URLにアクセスして、正しいURLに遷移するかを確認します。アクセスできなければ設定を見直してください。
正しいURLにアクセスできるようであれば、カテゴリページやページング(カテゴリ一覧の2ページ目など)が正しく動作するか、確認してください。
以上で完了です!
ページングの確認は超重要です!!
というのも、ネットで検索したときに、ページングが動かない方法などがいくつかありました。ページングのURLが
などになるので、一括で書き換える方法などにするとページングもURLの書き換えが起こってしまい、上記URLにアクセスしたのに
上記にリダイレクトがかかる可能性があります。
「Permalink Redirect WordPress Plugin」というプラグインを使う方法は、カテゴリが親子階層になっているとURLがおかしなことになって、ダメでした。
みたいなURLで、表示はされるのですが、ページの価値を引き継げず、同一ページが複数存在(https://golt.co.jp/123/も同じ表示)になるのでNGです。
yoastというサイトで変更する.htaccessに記述する方法もダメでした。
上記を応用すれば、他のパターンにも対応できるかと。
参考になれば幸いです〜!