サイトのドメインやページのリンクを変更したときは「301リダイレクト」で新しいURLへ転送する必要があります。
リダイレクト設定をしないまま運用をはじめると、ユーザーがいない状態且つ検索エンジンからの評価もゼロでのスタートになります。
「301リダイレクト」を行うことで過去に訪れたユーザーからのアクセスも維持できますし、SEO面では迅速な上位表示につながります。正しい方法での切り替えをおすすめします。
目次
リダイレクトとは
ユーザーが変更前のページを訪問したときに行う転送を「リダイレクト」といいます。リダイレクトの目的は、ユーザーを正しい場所へ誘導することにあります。
Googleの公式ページでは「301リダイレクト」の使用について以下のように示されています。
検索エンジンの結果で表示されるページの URL を変更する必要がある場合は、サーバー サイドの 301 リダイレクトを使用することをおすすめします。これは、ユーザーや検索エンジンが正しいページにたどり着くことを保証する最善の方法です。ステータス コード 301 は、ページが別の場所に完全に移転したことを意味します。
Search Consoleヘルプセンター>ページの URL の変更と 301 リダイレクトの使用
リダイレクトの種類
リダイレクトの期間により転送方法が異なります。適切なものを次のうちから選びましょう。
301リダイレクト
「301リダイレクト」を設定するケースは次の通りです。301は「恒久的」な転送方法で、変更前のサイト、ページに対する評価を引き継ぐことができます。
- ドメインの変更
- ページ(パーマリンク)の変更
- ディレクトリ、ファイルの変更
302リダイレクト
「302リダイレクト」を設定するケースは次の通りです。302は「一時的」な転送方法のため、これまでの評価を引き継ぐことはありません。最終的には設定を削除するリダイレクトです。
- スマホ用サイト
- メンテナンス画面
302リダイレクトをした場合の評価は、すべて転送元で行われます。転送先ではありません。
リダイレクトの方法
301もしくは302を使ったリダイレクト方法は、次の4つからいずれかを選んで設定します。
契約しているサーバーによりますが、一般的には、①と②の方法が推奨されています。どちらもサーバー側で操作するため、比較的不具合は起こりにくいと考えられます。
- .htaccess(推奨)
- PHP(推奨)
- JavaScript
- meta refresh
③と④は推奨された方法が使用できない場合の対応となります。ただしブラウザ側での処理となるため、ページ遷移時の表示、評価の引き継ぎが不十分になる恐れがあります。
今回は「①.htaccess」のスタンダードな方法を使います。WordPressが使えるサーバーであればApacheというWebサーバーに対応しているので「①.htaccess」が利用できます。
ファイルから設定
.htaccessの書き方
「.htaccess」は例として以下のように追記します。見当たらない場合は、新しく作成します。
#リダイレクト <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^old-page$ new-page [R=301,L] </IfModule>
#リダイレクト
#以降はコメントとして扱われます。後で分かるように書いておきましょう。日本語もOKです。
#リダイレクト
IfModule mod_rewrite.c
「mod_rewrite」はURLを書き換えるモジュール(機能的部品)です。機能が有効なとき「IfModule」の中の処理を実行する、という意味になります。
<IfModule mod_rewrite.c> </IfModule>
RewriteEngine On
リダイレクト機能を有効にしています。
RewriteEngine On
RewriteRule
リダイレクト処理するURLを書いてルール化します。「R=301」は301リダイレクトの意味で、記述がなければ自動的に302リダイレクトになります。「L」は終了を宣言しています。
RewriteRule ^old-page$ new-page [R=301,L]

「^」は正規表現で前方一致、「$」は行の末尾でURLの終了を表します。
ページごとにリダイレクトする場合は「RewriteRule」を増やします。
よくある変更設定
その他よくあるリダイレクト設定のケースを3つにまとめました。「.htaccessの書き方」にない記述は詳しく解説されている以下のページをご覧ください。
HTTPをHTTPSに統一
SSL化するとHTTPへのアクセスが不要になります。また、セキュリティ強化やアクセスの重複を防ぐ効果もあります。
「RewriteCond」で条件を指定して、条件に合う場合は「RewriteRule」を適用しています。
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

{ }の中は変数名、(.*)は全ての文字列を表しています。
WWWありに統一
wwwありに統一する場合は、条件に「wwwなしでアクセスされたとき」を、ルールに「どちらで表示するか」を定義します。
RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
WWWなしに統一
wwwなしに統一する場合は、条件に「wwwありでアクセスされたとき」を、ルールに「どちらで表示するか」を定義します。
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
サーバーから設定
サーバーの管理画面にある「.htaccess編集」を選択。

「.htaccess編集」タブで「設定対象ドメイン」を選び、変更。「.htaccess」の欄に追記してください。

「301リダイレクト」をファイルから直接編集する方法とサーバーから設定する方法の両方を確認しました。
サイトをリニューアルするときやページを変更するときは、新旧のURLを確認の上、忘れずにファイルに記載しましょう。転送先の今後の評価や集客に関わる大切な設定になります。
Apacheサーバーが使われている環境であれば、今回の「.htaccess」を使った設定が可能です。WordPressが利用できるかの判断基準として、作業前に確認してください。