WordPressで複数記事のリダイレクトをまとめて設定!Redirectionの正規表現の使い方
WordPressでリダイレクトを設定したい場合、Redirectionというプラグインがよく紹介されますが、私が探した限りでは日本語ではURLを決め打ちした場合の設定方法の説明しかありませんでした。
しかし、これでは例えばWordPressで記事の一部分だけ分離して新サイトににするというようなときに、全記事のURLを設定する必要がありとても面倒です。
実はこのプラグインは正規表現にも対応しており、それを利用すると大量の記事を引っ越す場合でも簡単にリダイレクトを設定することができます。
今回は実例を紹介しつつその使い方を説明したいと思います。
今回の案件
ある整体院さんのサイトで、店舗ページとスタッフブログを分離したいという相談を受けました。
サイトはWordPressで作ってあり、固定ページで整体院のページ、投稿でスタッフブログを運営していたのですが、最近のGoogleの健康アップデートで順位が大幅に下がり、その対策を「店舗ページは整体に関するコンテンツだけとする」という方針で進めることになりました。
単純にスタッフブログを削除して終わりとしたいところですが、スタッフの日常を書いたブログはお客さんにとってはどんな整体院かを知る重要な情報です。できれば残したい。
ということで新ドメインでスタッフブログを作り、今までのブログコンテンツもそちらに全て引っ越すことにしなりました。そして旧スタッフブログへのアクセスを全て新ブログへリダイレクトすることに。
新ドメインのブログもWordPressで運営するので、コンテンツの引っ越し自体はWordPressのインポート、エクスポートで行いました。そのやり方はまた別の機会にでも。
ここからはリダイレクトに絞って説明していきます。
パーマリンクの構造
投稿
旧スタッフブログのパーマリンク設定はなんと「日付と投稿名」になってました。例えば下記のような感じです。
https://old-site.com/2019/04/22/sample-post/
パーマリンクの日付の部分と投稿名が投稿毎に変わり、無駄に長くなるので敢えて採用する必要はないと思います。
一方で新サイトでは単純化するために「投稿名」に設定しました。
https://new-site.com/sample-post/
他のパーマリンクも次のような対応になります・
カテゴリー
https://old-site.com/category/category-name/
↓
https://new-site.com/category/category-name/
タグ
https://old-site.com/tag/tag-name/
↓
https://new-site.com/tag/tag-name/
アーカイブ
https://old-site.com/2019/04/
↓
https://new-site.com/2019/04/
スタッフブログトップページ
https://old-site.com/blog/
↓
https://new-site.com/
リダイレクトの設定
RedirectionプラグインにはCSVの読み込み機能があります。今回は300記事程度だったので、全記事のURLを取得して置換などを駆使してCSVリストを作るという戦略も取れないことはないですが、面倒です。
幸いにもRedirectionは正規表現によるパターンマッチングが使えるのでそれを使うと簡単に設定することができるので、これから説明していきます。
Redirectionを有効化すると初期設定の画面がいろいろ出てきますが基本的デフォルトのままで進んで行けばOKです。
初期設定が完了すると次のような転送ルールを設定する画面になります。
ソースURLの右にあるドロップダウンメニューから「正規表現」を選びます。
そうすると、ソースURLの右に黄色いラベルが表示され正規表現が有効になります。
あとは、ソースURLとターゲットURLに正規表現を書いていけばOK。
公式サイトのヘルプに正規表現の説明や例が掲載されています。英語がOKな方はこちらを読むのもよいかもしれません。
今回は次のように設定しました。
投稿記事
ソースURL: ^\/\d{4}\/\d{2}\/\d{2}\/(.*)
ターゲットURL: https://new-site.com/$1
カテゴリー
ソースURL: ^\/category\/(.*)
ターゲットURL: https://new-site.com/category/$1
タグ
ソースURL: ^\/tag\/(.*)
ターゲットURL: https://new-site.com/tag/$1
アーカイブ
ソースURL: ^\(/\d{4}\/\d{2}\/)
ターゲットURL: https://new-site.com/$1
トップページ
※トップページは1つだけなので正規表現にする必要はありません。URL直接指定の方法でOKです。
ソースURL: /blog
ターゲットURL: https://new-site.com/
応用編
これ以外のパーマリンクにも対応できるように、簡単に要点を説明しておきます。
正規表現で()に囲まれている部分はグループとして扱われ、$1
に代入されます。
例えば、上記例で何度か出ている.*
は任意の文字列を表します。それを()で括っでグループとし、ターゲットURLの$1
に代入しています。そうすることで投稿名が入ったURLを扱うことができます。
ちなみに、d{4}
は数字の4回繰り返し、d{2}
は数字の2回繰り返しで日付の部分で使うことができます。
いくつか例を挙げてみるので参考にしてみてください。基本的に全てドメイン+投稿名のパーマリンクにリダイレクトするという想定です。
月と投稿名
ソースURL: ^\/\d{4}\/\d{2}\/\/(.*)
ターゲットURL: https://new-site.com/$1
結果:https://old-site.com/2019/04/sample-post/
⇒https://new-site.com/sample-post/
数字ベース
ソースURL: ^\/archives\/(\d*)
ターゲットURL: https://new-site.com/$1
結果:https://old-site.com/archives/123
⇒https://new-site.com/123
カテゴリー名入り
ソースURL: ^\/.*\/(.*)
ターゲットURL: https://new-site.com/$1
結果:https://old-site.com/category-name/sample-post/
⇒https://new-site.com/sample-post/
まとめ
以上のような感じで正規表現を使うと柔軟にリダイレクトを管理することができます。是非活用してみてください。
ちなみに個々で紹介したいサイトの一部引っ越し案件は先日完了しました。果たしてこの変更がSEO的に吉と出るか凶と出るかはもうしばらく様子見です。
コメント
この記事へのコメントはありません。
コメントをどうぞ