インターネット上のすべてのページには、Uniform Resourse Locator:URLという名の住所がついています。でも時には、事情によりコンテンツを別の場所に引っ越しをしなければならないことがありますよね。こんな時にリダイレクトの設定が必要になります。リダイレクトとは何か?というと…
リダイレクトとは何か?その意味や使い方、設定方法を一気に解説!
目次:
リダイレクトとは何か?
なぜ、どんな時にリダイレクトを設定するのか?
リダイレクトの理解に必要なHTTPステータスコード
リダイレクトの種類と意味
301:永久的なリダイレクト
302(307):一時的なリダイレクト
PHPを使ったリダイレクト
meta freshタグを使ったリダイレクト
Javascriptを使ったリダイレクト
プラグインを使ったリダイレクト
各投稿・固定ページに301リダイレクト機能を設置する方法
リダイレクトとは何か?
リダイレクトとは、あなたのWebサイト内にあるページにユーザーがアクセスしてきた時に、自動的にそのページのURLから別のページのURLに転送させることです。同じWebサイト内のページだけでなく、他のWebサイト内のページに転送することもあります。
例えば、あなたが事情によりWebサイトのドメイン名を変更するとします。今後Webサイトは新ドメイン名で運営していくので、昔のドメイン名はもう使用しません。でも、前からあなたのサイトに来てくれているお客さんは、前触れもなく新しいドメイン名に引っ越しをされたら困りますよね。
そんな時、古いURLにリダイレクトの設定をしておくと、お客さんが昔のWebサイトにアクセスしようとした時に、自動的に新しいWebサイトに案内してくれるのです。
なぜ、どんな時にリダイレクトを設定するのか?
実際のところ、リダイレクトの設定は内部SEO対策の必須事項の1つであり、Webサイトの日常の管理の一環と言って過言ではありません。例えば、上に挙げたWebサイト全体の引っ越しをした場合、古いWebサイトのURLにリダイレクトを設定しておかないと、新しいWebサイトに行けなくてお客さんが迷惑します。
このようなWebサイトの大きな変更だけでなく、比較的小さな変更をした場合でも、リダイレクトの設定が必要になることがあります。よくある例を挙げると…
- ドメイン名からwwwを外した
- WebサイトをSSL化(HTTPS化)した
- 内容の似たコンテンツを別に作ったため、元のコンテンツを削除した
- 複数のコンテンツの内容を1つのページにまとめ、元のページを削除した
リダイレクトの理解に必要なHTTPステータスコード
リダイレクトにはいくつか種類があるのですが、それを理解する上でHTTPステータスコードの知識が欠かせません。これは、Webサイトのデータを保存するサーバーからブラウザに送信するコードナンバーのことです。
お客さんがURLを入力したりリンクをクリックしたりすると、ブラウザはそのページを表示させるためのデータをサーバーに要求します。これに対して、サーバーからブラウザに3桁の番号を使ってメッセージを返します。
HTTPステータスコードには、目的に応じて100番台から500番台まで5種類のコードがあります。このうち、リダイレクトに関わるのは300番台のコードです。
リダイレクトの種類と意味
リダイレクトで使うHTTPステータスコードには、以下のようなものがあります。
301 永久的なリダイレクト
301は最もよく使われるリダイレクトで、最初の例のようにWebサイトの引っ越しをした場合には、このリダイレクトを設定します。すると、お客さんを古いURLから新しいURLへ自動的に転送すると同時に、GoogleやYahoo!など検索エンジンのロボットにも旧URLが今後使われないことを伝えます。
301リダイレクトは、通常サーバー側の.htaccessファイルで設定します。でもWordPressなら、header.phpファイルの<head>〜</head>の中に以下の記述を挿入すれば設定できます(実際のやり方はPHPを使ったリダイレクトのところで解説しています)。
wp_redirect(“指定のURL”,301)
注:最後の301の入力を忘れると、次に説明する302の意味になってしまいます。
もし301リダイレクトを設定しなかったらどうなるでしょう?お客さんが直接URLを入力しても、目的のWebサイトにたどり着くことはできません。また、Googleも旧URLにWebサイトが存在すると思い、そのURLを検索結果に表示します。でも、そこにはもはやWebサイトは存在しないので、Googleもコンテンツを見つけることができません。
こんな時、お客さんが直接入力またがGoogle経由でそのページにアクセスを試みると、「ページが見つかりません」という404エラーが表示されることになります。
301リダイレクトは永久的なリダイレクトを表すので、何らかの事情で一時的に別のURLを使うものの、いずれ元に戻す予定の場合には不適切です。このような場合は、次の302(307) 一時的なリダイレクトを使います。
また、301リダイレクトを設定した場合、それまで築いてきた旧URLに対する評価はそのまま新URLに引き継がれます。SEO対策の側面からは、301リダイレクトを設定したら、新URLに対して追加で対策を施す必要はありません。
302(307) 一時的なリダイレクト
301のリダイレクトに対して、302(307)のリダイレクトは一時的に別のURLで同じコンテンツを表示させたい場合に使います。この場合、301と違って元のURLにもページのデータが残りますし、Googleの評価も元のページに残ります。
302も307も、実際はほとんど同じ意味を持ちます。両者を使い分けなければいけない状況は、ほぼないでしょう。どちらかというと、302は曖昧な表現なのに対して、307は一時的な移転であることをはっきり伝えています。なので最近では307の方が好んで用いられるようです。
PHPを使ったリダイレクト
上記301、302、307リダイレクトを、PHPというプログラミング言語を使って設定する方法です。プログラミング言語と聞いて拒否反応が出てしまったあなた、心配無用です。実質コピペで作業完了です。
WordPressの管理画面から外観 >> テーマの編集をクリックします。するとスタイルシート(style.css)の画面になるのですが、その右側にテーマファイルという項目があって、その中にテーマヘッダー(header.php)というファイルを開きます。

このプログラムの最初の方に、<head>〜</head>で挟まれた領域があるはずです。ここに以下のプログラムを挿入してください。
<?php
header(‘Location: 転送先のURL’, true, 301);
exit();
?>
2行目の「true, 301」を省略すると302リダイレクトに、最後の数字を307に書き換えると307リダイレクトになります。
meta refreshタグを使ったリダイレクト
あなたは今まで「◯秒後に別のページに転送します」と表示されるページを見たことはありませんか?そのままの状態で数秒経過したら自動的に別のページの読み込みが始まるやつです。このようなリダイレクトはmeta refreshタグによるリダイレクトと呼ばれ、WordPressの中で設定できます。
PHPの場合と同じように、対象のWebサイトでheader.phpのファイルを開いて、<head>〜</head>の中に以下の記述を挿入すると設定できます。
例:5秒後に指定のURLへ転送を行う場合
<meta http-equivalent=“refresh” content=“5;URL=‘転送先のURL‘“/>
転送までの秒数を変えたい場合は数字を変更し、赤字のところに転送先のURLを入力します。
Javascriptを使ったリダイレクト
何らかの理由でHTTPを使ったリダイレクトを設定できない場合、Javascriptという言語を使ってリダイレクトを設定することもできます。HTTPによるリダイレクトがサーバー側で処理されるのに対して、Javascriptによるリダイレクトはブラウザ側で処理されるという違いがあります。
PHPやmeta refreshタグによるリダイレクトと同様に、headファイルの<head>〜</head>の中に以下の記述を挿入します。
<script type=“text/JavaScript”>
<!-
setTimeout(“link()”,0);
function link(){
location.href=’転送先のURL’;
}
->
</script>
この時、setTimeoutの行の数字を変えることにより、転送までの時間を設定できます。
欠点としては、Javascriptをサポートしていないブラウザを使っている場合(今はほとんどありませんが)、あるいはJavascriptの使用を許可しない設定をしている場合には、適切に転送されません。
プラグインを使ったリダイレクト
もしあなたが「コードの書き換えなんてできない!」と言うのであれば…WordPressではプラグインを使って設定する方法もあるので、適宜インターネットでチェックしてみてください。
有名なところではRedirectionというプラグインがあります。実際使ったことはありませんが、301、302、307のいずれのリダイレクトもこれ1つで設定できるようです。
各投稿・固定ページに301リダイレクト機能を設置する方法
昔作成したブログ記事などで、時間が経つと古くなって使いにくくなる情報がありますよね。こんな時、最新の情報に書き換えた記事を作り直すのが常套手段ですが…
そのまま書き直して更新するだけで良ければいいのですが、場合によっては記事のURLごと書き換えなきゃいけない時があります。こんな時、普通に新しい投稿・固定ページを作るだけだと、それまで旧ページで獲得してきたGoogleの評価がきちんと受け継がれずに、SEO対策の観点からは損をすることになります。
こんな時が301リダイレクトの出番。旧ページのURLから新ページのURLに301リダイレクトを貼るだけで、Googleの評価を受け継ぎながら旧ページから新ページへの誘導も一緒にできてしまいます。
問題は「どうやってページ毎に301リダイレクトを設定するか?」ですが…わいひらさんの「寝ログ」でとても良い記事を見つけました。この記事にしたがってあなたのWordPressをカスタマイズするだけで、各ページの記事作成画面にリダイレクトを設定する項目が追加されるようになります。実際僕も試してみましたが、新ページのURLをコピペするだけで設定できるので、とっても簡単です。
より詳しく知りたければ、寝ログの投稿・固定ページにリダイレクト機能を設置するWordPressカスタマイズ方法にアクセスしてみてください。
Rolando says
I’m truly enjoying the design аnd layout of your site.
Іt’ѕ a vеry easy ߋn the eyes wһicһ makes it mսch more pleasant foor me to cоme
heгe and visit mоre ߋften. Diid үou hire outt а developer to creatе уour
theme? Superb w᧐rk!
大堀 僚介 says
Thanks for your comments. I built my website myself with the “Enterprise Pro” theme from StudioPress. For your information, the detail of the WordPress theme is as below,
https://my.studiopress.com/themes/enterprise/