WordPress リダイレクトの設定

WordPress リダイレクトの設定

WordPressでサイトを運営していると、既に公開してしまったページを、別のところに移動したくなる場合が出てくる。

つまり、公開したページを削除すると、外部のリンクを経由して訪れたユーザーには「404エラー」が表示されることになる。
自然なかたちで移動したページに誘導したい……というときに役立つのが「リダイレクト」。

そんなときリダイレクトを設定しておけば、移動前のページに訪れたユーザーを自動的に移動したページに転送することができる。

「Redirection」プラグインのインストール

このプラグインは、リダイレクトの転送元のWordPressにインストールする必要がある。

リダイレクトでよく使われるのは「301リダイレクト」と「302リダイレクト」。

301リダイレクトでは、転送元のページの検索エンジンの評価を継承してリダイレクトされるため、新しいページで検索順位を一から積み上げていく必要がない。
そのため、301リダイレクトはサイト移転などの恒久的なリダイレクトに利用され、302リダイレクトはページの改修などの一時的なリダイレクトに利用されるということになる。

WordPressでの2つのリダイレクト方法

サイトにリダイレクトを追加する方法は、次の2つのやり方がある。

  • プラグイン「Redirection」を使って「.htaccess」を出力する
  • 直接「.htaccess」を作成してサイトにアップする

「Redirection」プラグインを使う

もっとも簡単なのは WordPress のプラグイン「Redirection」を利用する。

WordPressの管理画面から、リダイレクトの転送元のページと移動先のページを指定可能で、301リダイレクトと302リダイレクトの使い分けも簡単に設定できる。

また、作成したリダイレクトの設定を一覧で確認できるので、後から設定を変更したり削除したりしやすいというメリットもある。
また、リダイレクトの設定に失敗した場合も、サイトにアクセスできないなどの致命的なトラブルが発生しないので、記事ページ単体にリダイレクトを設定する場合は、プラグインを使った方が簡単。

「.htaccess」に設定を入力する

WordPressではなく、サーバー側の設定でリダイレクト処理を行うのが「.htaccess」による方法。
しかし、設定に失敗した場合、サイトへのアクセス全てが遮断されて不通になるリスクがあるので、プラグインの方が安全で簡単なら、これは使わないかな?。

プラグインを使ってリダイレクトを設定

WordPressでリダイレクトの設定を行う場合、もっとも簡単なのがプラグインを利用する方法

WordPressのプラグイン「Redirection」では、転送元と転送先のURLを入力するだけで、簡単にリダイレクトの設定が行えるほか、作成したリダイレクトの設定を一覧で管理することもできる。

Redirectionのインストールと初期設定

インストールが完了したら「有効化」ボタンを押す。

左メニューの「ツール」の中に「Redirection」という項目が追加されるのでクリック。

以下の画面で「セットアップを開始」をクリック。

以下の2つにチェックを入れると「リダイレクトと404エラーのIPアドレスを記録する。」が現れるが、こちらはチェックしてない方が多い?。よくわからないいがここではチェックしない設定。

以下の画面ではチェックボックスにチェックを入れると、同一ドメイン内でページのURLに変更があった場合、自動的にリダイレクトが設定されるようになるので、チェックを入れておく。

既に作成したページのURLを変更したら自動的にリダイレクトされるのでこれは便利だと思う。

「REAT API」が「良好」と出たら「セットアップ完了」をクリック。

設定が進行して「%(完了)%%」になったら「次へ」ボタンをクリック。
以下のように変な表示だがこれで良い。

既存のリダイレクトをインポート、これが出るので「次へ」

完了した。「準備完了です!」をクリック。

これで初期設定は完了し「Redirection」の設定画面が開く。最初から沢山のリダイレクトが表示された。
これは「既存のリダイレクトをインポート」したからだと考えられる。

これらは以前、日本語の入ったURLで作成したページを英語のスラッグに変更したものが表示されているようだ。それもプラグインがインストールされたWordPressのデータになっている。

実際にリダイレクトの設定を行う

上の画面の一番上に転送ルールがあり、新規追加をクリックすると以下のように設定画面が出る。

右上のオレンジのところ「大文字小文字の区別なし」「スラッシュ無視」これにチェックを入れると大文字でも小文字でもURLが有効になる。スラッシュが入っていてもなくてもアクセスできるようになるということ。一般的には間違った入力してもアクセスできる可能性ができるのでチェックを入れた方がいいと思う。

例として、https://polo-web.com/WP/ystandard-トップ画面にヘッダーメディアを表示/(https://good-things.jp/abc』 にアクセスしてきたユーザーを、https://polo-web.com/my_pages/我が家の歴代コンピューター(カスタム投稿)/(https://seven-dot.jp/def) というページに移動させる設定を今回は行ってみたいと思います。

③ ソースURLには、リダイレクト設定したい、元のURL(飛ばし元)を記入します。WordPressで作成している画面なので、ディレクトリのみで問題ありません。(例 https://good-things.jp/abcの場合、/abcと記載でOKです。)

④ ターゲットURLには、リダイレクト設定後、飛ばしたいページのURLを記載します。今回はドメインをまたいだディレクトリの設定になりますので、https://seven-dot.jp/def と記載します。

デフォルトで301リクエストになります。

最後に「単相ルールを追加」をクリック。

下に追加されたことがわかる。

「ソースURL」に転送元の記事ページのURL、「ターゲットURL」に転送先の記事ページのURLを入力し、「次のHTTPコードと共に」でリダイレクトの方式を選択、「転送ルールを追加」をクリックしましょう。

設定の一覧に転送ルールが追加されたのを確認しましょう。

ルール設定毎にグループを分けるとわかりやすくなる

グループという設定がある。

スラッグを変更したらどうなる?

日本語から英語に変更した。

AIOSEO PROの機能のようで使えない。

サイトは英語になったがRedirectionには何も表示されない。最初だけ読み込まれるが追加はダメなようだ。

Redirectionのオプション設定

公式サイト:https://redirection.me/support/options/

2行目のオプションタブをクリックすると以下の画面になる。Redirectionの基本設定になる。

基本的にはそのままで良いと思うが、URLURLモニターという項目、これは、リダイレクト先のURLが変更されたときどうなるかという設定になる。
普通なら変更されたらリダイレクトの設定も直さなきゃいけないということになる。

しかし『Redirection』ではリダイレクト先のURLが変わっても、自動で変更後のURLに転送されるようにできるというとても便利な設定機能になる。
例えば「投稿の変更を監視」をON、これでスラッグを変更してもすぐにリダイレクト設定がされる用になる。
その設定方法は『オプション』のURLモニターで全てにチェックを入れておくと良いということになる。
上から2つはデフォルトで入っていると思う。

URLを自動生成:リダイレクトのターゲットURLを指定しない場合は、自動生成URLが自動的に生成されます。これは、トラッキング用に一意のIDを持つURLを作成するために使用できます。

例えば、自動生成URLを「/track/$hex$」に設定した場合、ターゲットURLが空白のリダイレクトは「/track/36efe729」のようなURLに変換されます。

Apache .htaccess:生成されたファイル「.htaccess」が以下のところに入ることになる。
上の画面では/WP/と最後はなっているが、これは別のサイトの設定を入れているので間違い。
/virtual/polo/public_html/polo-web.com/ が実際のパスになる。

ソースURL側には必ずプラグインがインストールされている必要がある

そうでないとソース設定には省略されたURLが表示されるのでプラグインがインストールされていないとURLを認識できない。

ソースURLは日本語になっていると動作しない

例えば:https://polo-web.com/WP/ystandard|インラインスタイル(文字装飾)を使う/
のように日本語でURLを設定している場合。これが「ソースURL」の場合、うまくいかない。

例えば、以下のような「ソースURL」が日本語になっている場合。

「転送ルールを追加」を行い保存すると:日本語でもうまくいった。ダメだと言ったサイトもあったのだが私のサイトではうまくいった。

但し日本語だと以下のようにURLが訳わからない状態で表示されるので、できるなら日本語は使わないほうが良いということになる。さっぱるURLがわからない。301から200になって成功しているのが分かるし、実際にリダイレクトしても実行された。

リダイレクトの元のページはいつまで必要か

リダイレクト元のページは削除してかまいませんか?

.htaccessにリダイレクト処理を記述しているのであれば「ソースURL(元)」サイトに到達する前に「ターゲットURL」サイトへ遷移するので基本的には元記事は不要、削除して構わないと思う。

ということで、転送の設定を済ませた後は、該当の記事を削除してかまわないことになる。
転送の設定は「Redirection」を導入している限りは転送され続けられるから。
もし不安であれば一度下書き状態にしてからテストをし、問題ないことを確認してから削除すれば良いでしょうし、それか「下書き」または「非公開」のままでも良いかも。

Redirection 設定はいつまで維持した方が良いか?

Redirection のリダイレクト(特に301リダイレクト)は、少なくとも6ヶ月から1年間は維持することが推奨される。これは、検索エンジンが新しいURLを認識し、評価を引き継ぐまでに時間がかかるため。場合によっては、外部からのリンクが多い場合は、それ以上の期間、維持する必要があるかもしれない。

しかし、301リダイレクトは永続的なものなので基本的に解除する必要は無い。

リダイレクトを解除してしまうと、ブックマークから直接訪問するユーザーが、見たい記事へたどり着けなくなる恐れがあるため、できるだけリダイレクトを維持してサイトを運営することが推奨される。

それでも、メンテナンスの手間等を削減するためにリダイレクトを解除する場合は、最低でも1年以上経ってから解除するのが好ましいかもしれない。