WordPress

WordPressのパーマリンクを運営途中で変更した設定など

WordPress

WordPressのパーマリンクを運営途中で変更して旧URLから301リダイレクトした設定などの試行錯誤です。

結構面倒でした。。WordPressのパーマリンク変更時の注意点や確認事項などを含めてご紹介します。ある程度Webの知識がない人でもできるように紹介します。

先にお伝えしておくと、もともとWordPressのパーマリンク設定部分をカスタム構造で「/%category%/%post_id%」にしていたものを、「/%post_id%」に変更しました。通常のパーマリンク設定で入る/category/という部分はプラグインで削除していました。

http://xxxxxxx.com/cate1/123

とか、

http://xxxxxxx.com/cate1/cate_child/123

というように、カテゴリ構造が親子になっているものも含むサイトを、

http://xxxxxxx.com/123

という状態にして、「http://xxxxxxx.com/cate1/123」など旧URLに訪れたユーザを301リダイレクトして「http://xxxxxxx.com/123」するのがゴールです。

旧URLを新URLにリダイレクトするのは、旧URLがもっているページの価値を(ある程度?)引き継ぐことができるので重要です。

パーマリンク変更の目的

以前は構造を表現するうえで、カテゴリをURLに含んでいると良い(SEOなどもろもろ)という話だったのですが、パンくずなどもあるので、ユーザ、検索エンジンともどもあまり意味をなさなくなってきています。

そして、カテゴリをURLに含んでいる場合、カテゴリを追加や削除したときにURLが変わってしまうデメリットが増えてきています。

本来は記事ごとにURLを作成するのが良いのですが、今回は過去記事などが多くて対応しきれなかったのでpost idを利用しました。

パーマリンクを「/%post_id%」に変更することで、今後カテゴリを変更しても影響しなくなります。

パーマリンクを変更してリダイレクトする方法

今回実施した方法から紹介していきます。手作業も発生するのですが、誰にでもやりやすいかと。パーマリンク変更の流れを簡単にかくと、以下のとおりです。

  1. カテゴリのURLを一覧にする
  2. カテゴリの一覧を加工する
  3. Redirectionプラグインを入れる
  4. Redirectionプラグインに登録する
  5. リダイレクトを確認する

カテゴリのURLを取得して一覧にする

適当にカテゴリのURLの一覧を作成してGoogleスプレッドシートやExcelにでも入れていきます。
こんな感じのリストを作成してください。

http://debate.co.jp/web
http://debate.co.jp/web/html-css
http://debate.co.jp/web/wordpress
http://debate.co.jp/system
http://debate.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プラグインを入れて有効化します。

Ridirection

このあたりでパーマリンクを変更しちゃってください。一時的に旧URLにアクセスしたときに404エラーなどが起こります。。。あとで検証するので旧URLのリストを複数残しておいてください。

Redirectionプラグインに登録する

上記で作成したリストをRedirectionプラグインに登録して、リダイレクトしていきます。パーマリンクを変更するまえにやってしまうと404エラーなどが起こるので注意です。

Redirectionプラグインの設定方法

  1. ソースURLに上記で作成したリストを記入する。
  2. 正規表現にチェックする!
  3. ターゲットURLに「/$1」を記入する。
  4. 「新しい転送ルールを追加」を押下する。

上記をカテゴリの数だけ登録します。

ちょっと面倒ですが.htaccessとかいじらないで良いです。

リダイレクトを確認する

リダイレクトの確認は2点です。

  1. 旧URLが新しいURLにリダイレクトされるか
  2. ページングなど正しく動くか

上記で残しておいた旧URLにアクセスして、正しいURLに遷移するかを確認します。アクセスできなければ設定を見直してください。

正しいURLにアクセスできるようであれば、カテゴリページやページング(カテゴリ一覧の2ページ目など)が正しく動作するか、確認してください。

以上で完了です!

ページングの確認は超重要です!!

というのも、ネットで検索したときに、ページングが動かない方法などがいくつかありました。ページングのURLが

http://debate.co.jp/web/page/2

などになるので、一括で書き換える方法などにするとページングもURLの書き換えが起こってしまい、上記URLにアクセスしたのに

http://debate.co.jp/2

上記にリダイレクトがかかる可能性があります。

「Permalink Redirect WordPress Plugin」というプラグインを使う方法は、カテゴリが親子階層になっているとURLがおかしなことになって、ダメでした。

http://debate.co.jp/123/123

みたいなURLで、表示はされるのですが、ページの価値を引き継げず、同一ページが複数存在(http://debate.co.jp/123/も同じ表示)になるのでNGです。

 yoastというサイトで変更する.htaccessに記述する方法もダメでした。

上記を応用すれば、他のパターンにも対応できるかと。

参考になれば幸いです〜!

コメントを残す