ブログを長く運営しているとページのアドレスの変更を余儀なくされる場合が少なくありません。
ところがWordPressは標準ではリダイレクトの仕組みが用意されていないため、リダイレクトのやり方がわからないといった方も多いのではないでしょうか。
そもそも、リダイレクトが必要なのかどうかもわからないといった方もいらっしゃるかもしれません。
この記事では、リダイレクトに関する情報を整理しています。
301リダイレクトや302リダイレクトなど、サーバーからの応答の数字をステータスコードと言います。
ステータスコードについては、ブログ運営で覚えておくべきHTTPステータスコード【6つだけ】で解説していますので参考にしてください。
- リダイレクトの必要性
- リダイレクトを行う方法
- 正常なリダイレクトができているかどうかの確認方法
301リダイレクトとは?
古いページから新しいページに自動で転送する処理をリダイレクトといいます。
リダイレクト処理のうち、SEOで重要になるのは301リダイレクトです。
これは恒久的にページが移動したからリダイレクトする、という意味になり、旧アドレスから新アドレスに完全に移動したことを示します。
似たものとして、302リダイレクトというものがありますが、これは一時的な移動を意味します。通常、302リダイレクトをわざわざ設定することはありません。
ブログ運営で301リダイレクトを行う必要があるのはどんな時?
ブログを運営するにあたって、リダイレクト処理が必要になるケースは以下のようなものがあります。
- SEO評価をリダイレクト先ページに引き継ぎ順位を維持する
- ユーザーに404ページを表示してしまわないようにする(ブックマーク・SNSでの共有などへの対策)
- URLの正規化を行う場合
- 似たページをまとめる場合
- 計測のためのリダイレクト
- サイトを引っ越す場合(アドレス変更)
URLの正規化を行う場合
GoogleはURL単位でページを評価します。
1文字でも異なるURLが存在すると、別ページとして認識され、評価が分散されてしまいます。
そこで、canonicalタグを使って正規化し、古いアドレスに対して301リダイレクト処理を行ってURLを一本化することでSEO評価の分散を防ぎます。
似たページをまとめる場合
同じようなページがサイト内に存在すると、検索時にどちらのページを表示したらいいのかGoogleは判断できなくなってしまいます。
順位をチェックした際に、ある日はAページ、ある日はBページのように日によってランクインするページが変動するような場合はページを統合するとより高い順位になるかもしれません。
そこで、評価があまり高くないページはリダイレクト処理を行い評価の高いページに統合することで、評価をまとめる、という施策を行う場合があります。
あるいは、低評価のページをいくつか一つのテーマで統合する場合にも301リダイレクトを行います。
ブログ運営ではこのケースでリダイレクトを使用することが最も多いのではないでしょうか。
計測のためのリダイレクト
ウェブサイト上だけでは計測しにくいものを計測するために「クッションページ」を設置する場合があります。
- メルマガのクリック数を計測したい
- QRコードや印刷物からのアクセスを計測したい
- 外部リンクに遷移した数を計測したい
上記のような場合に、クッションページのPV数を利用することがありました。
このような計測手法を用いる際にも301リダイレクトを利用します。
古い手法なので、現在はこの方法はほとんど使われていない(はず)です。
サイトを引っ越す場合(アドレス変更)
何らかの事情でサイトのドメインやアドレスを変更することになる場合でも、元のサイトの評価をそのまま引き継ぐ必要がある場合は301リダイレクトを利用します。
- 無料ブログから独自ドメインに変更
- HTMLサイトからWordPressへの変更
- 乗っ取りからの復旧
- サイトの統合・吸収
- 日本語ドメインからの変更
- 質の悪い中古ドメインからの変更
- サイトやコンテンツの売却
無料ブログでスタートした人で独自ドメインサイトに引っ越した場合は移転前のブログでリダイレクト設定をしておきましょう。
WordPressブログでの301リダイレクト設定
WordPressは標準ではリダイレクトを設定する機能がありません。
WordPressでリダイレクトを行うには、プラグインやテーマの機能を利用する必要があります。リダイレクトを行う具体的な方法をいくつか紹介します。
リダイレクト専用プラグインを使う方法(Redirection)
一つ目は、リダイレクトを行うためだけの専用プラグインRedirectionを利用する方法です。
使用しているWordPressテーマや環境を問わず使えるのが一番の強みです。
リダイレクトを行うことができるプラグインは多くありますが、このプラグインが最も使い勝手もよく、ユーザー数も多いのでおすすめします。
インストール直後は初期設定が必要です。特に何も入力する必要はないので、<次へ>を押していってください。
インストールが完了したらリダイレクトの設定をしていきましょう。
各投稿画面を拡張して表示されるわけではなく、専用メニューで集中管理する形になっています。
Redirectionは<ツール>メニュー内にメニューが作成されます。
設定で入力が必要なのは、転送元の相対パスと、転送先のフルURLの記入のみです。
Redirectionの使い方・設定方法!WordPressプラグインで301リダイレクト
WordPressテーマが対応している場合
WordPressテーマのうち、CocoonとAffingerはリダイレクトに対応しています。
設定はどちらも記事の編集画面から行います。
記事を削除することはできませんが、別途プラグインを導入することなくリダイレクトできます。
SEOプラグインを使う方法
All-in-One SEO | 有料 |
Yoast SEO | 有料 |
SEO Press | 無料(標準機能) |
SEOプラグインもリダイレクト機能がありませんが、利用者の多い「All-in-One SEO」と「Yoast SEO」はどちらも有料版の機能となっています。
個人的に最も使いやすいと感じている「SEO Press」は、無料版の状態でも標準機能として利用可能です。
正しく301リダイレクトされているかの確認方法
リダイレクトの設定を行ったら、必ずリダイレクトが正しく行われているかを確認しましょう。
リダイレクト元のページにアクセスし、新URLに遷移したか確認
リダイレクトが機能しているのかを調べる最も簡単な方法が、旧URLに実際にブラウザでアクセスをしてみて、新URLに遷移するかを確認するか、確認する方法です。
ただしこの方法は、リダイレクトが複数回発生しているケースを見落とす可能性がありますので、簡易的にチェックを行ったあとは、次で説明するリダイレクトチェックツールでも確認しておくのがベターです。
リダイレクトチェックツールで詳細を確認する
リダイレクトの確認方法としておすすめなのがこの方法です。
「リダイレクト チェック」で検索して表示されるリダイレクトチェッカーやohotuku.jpなどでチェックを行うと、下記のように、経由するページとリダイレクトの種類を表示してくれます。
上記の例では非SSLのアドレス(http://から始まるアドレス)が、SSLのアドレス(https://から始まるアドレス)にリダイレクトできているかをチェックしてみました。
リダイレクト回数が1回で、301リダイレクト設定をしています、と表示されればOKです。
Chrome(各ブラウザ)での確認方法
最後に、手元のブラウザで確認する方法を紹介します。
開発者ツールを表示し、ネットワークタブを選択した上で、キャッシュを無効化してリダイレクト元のURLに移動します。
ステータスコードの列に、「301 Moved Permanently」が表示されていればリダイレクトに成功です。
301リダイレクトを設定する上での注意点
リダイレクト設定は、WordPressプラグインやテーマを使うことで簡単に設定できます。
簡単に設定できる分、間違いには十分注意してください。
本来Webサーバーの挙動を制御する.htaccessなどを編集するような操作のため、一つ間違えると大変です。
リダイレクトループに気を付ける
リダイレクトループは、リダイレクトをお互いにしあって、戻れなくなってしまうような状態になることを言います。
- ページAからページBにリダイレクト
- ページBからページAにリダイレクト
上記のような状態になると、延々とリダイレクトをし続けることになります。
リダイレクトは一度に設定せず、気づいた時に設定することもあるので、以前行ったリダイレクトの設定が残っているのを忘れてしまい、知らず知らずのうちにリダイレクトループに陥ることがあります。
リダイレクトループが発生すると、無限にループを繰り返すことになりますが、ブラウザ側では「リダイレクトが繰り返し行われました」と表示されて、このページは動作していないと表示されてしまいます。
もちろん、その状態はSEOにとっても良くない状態ですので、SEOの評価を引き継げないどころか、マイナスにもなりかねませんので注意しましょう。
きちんとテストしていれば、気づけるはずですので、リダイレクトを設定したら過信せずにテストを行うようにしましょう。
404を発生させない(ページの削除時に注意する)
これもありがちなのですが、以前リダイレクトの設定を行い、後日リダイレクト先のページを削除して404になるパターンです。
URLを削除する場合は、そのページへリダイレクトしているページがなかったか、よく確認しましょう。
リダイレクトを設定したら原則設定を残す(最低1年)
リダイレクトを設定したらどの程度の期間設定を残しておくのがベストプラクティスなのか、Google社員がコメントしています。
(翻訳)
最近、リダイレクトを保持する期間について尋ねられた場合は、手をあげてください。 私は今、具体的な答えを持っています:少なくとも1年。
(ただし、ユーザーのために可能であれば、それらを無期限に保持してみてください)
一度リダイレクトを設定したら、どんなに短くとも1年程度は設定を残すようにしてください。
というのは、外部から被リンクをもらっていたらリダイレクトを解除するとリンク切れになってしまうためです。
せっかく被リンクをもらっているのに飛び先がないとなると不利益になる場合がありますので、リダイレクトの設定をしたら基本はその設定を削除せず残すものだと認識しましょう。
リダイレクト元のcanonicalはリダイレクト先のURLを指定
リダイレクトをする場合は、リダイレクト元のページのcanonicalに、リダイレクト先のURLを指定しましょう。
ただし、編集可能なページが存在する場合のみで構いません。サーバー側でリダイレクトを行いページそのものがなくなる場合は不要です。
参考:301リダイレクトと302リダイレクトの違いと使い分け方
301 | 302 | |
---|---|---|
意味 | 永久的に転送 | 一時的に転送 |
使用場面 | サーバー移転 URLの正規化 コンテンツの統合 | ABテスト メンテナンス時 スマホ版へ遷移 |
インデックス | 移動先 | 移動元 |
キャッシュ | する | しない |
評価の引継ぎ | される | される |
301リダイレクトも302リダイレクトも、SEOの評価は引き継がれます。
違いは、インデックスされるページが移動先か移動元か、という点です。302リダイレクトはサーバー上にページが残されることが多いためです。
使用場面を見ていただくとわかる通り、302リダイレクトは企業サイトなど大規模な運用向けであり、個人ブログであれば基本的に301リダイレクトを使うようにしましょう。
補足:リダイレクトの設定方法・書き方
WordPressを使ったリダイレクト以外のリダイレクト方法を補足しておきます。
.htaccessを使ったリダイレクト(おすすめ)
一番オーソドックスな方法です。通常はこの方法を使いましょう。
301のレスポンスコードを返せるサーバーサイドのリダイレクトです。
ドメインを変更(サイトの移転)をする場合で、下層ページの構造が変わらない場合
RewriteEngine on
Redirect permanent / https://www.new.com/
複雑な条件を指定する場合はRewiteRuleを使います。
ただ、RewiteRuleはURLが変更されないため、ユーザーには気づきにくくなります。
RewriteEngine on
RewriteCond %{http_host} ^www.old.com
RewriteRule ^(.*) https://www.new.com/$1 [R=301,L]
WordPressを使っている場合でプラグインを使いたくない場合にもこの方法を使うかもしれません。その倍はサーバールートにある .htaccess ファイルの「# BEGIN WordPress」よりも前の行に記述しないとうまく動かない場合があります。
SSL対応をする場合
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [R=301,L]
wwwなしに統一する
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.ドメイン名\.com
RewriteRule ^(.*)$ http://ドメイン名/$1 [R=301,L]
ディレクトリを変更する場合
RewriteEngine on
RewriteRule ^old(.*)$ /new$1 [R=301,L]
特定のページをリダイレクトする場合
RewriteEngine on
RewriteRule ^old.html$ /new.html [R=301,L]
PHPを使ったリダイレクト
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://url.com");
exit();
?>
.htaccessファイルが使えない場合におすすめなのがPHPを使ったリダイレクトです。
PHPファイルの先頭に、上記を記述します(URL部分は自分のサイトに書き換えてください)。
metaタグを使ったリダイレクト
<meta http-equiv="refresh" content="0;URL=’http://www.example.com/'" />
HTMLの<head>タグ内に上記のコードを書く方法でもリダイレクトは可能です。
この方法はサーバーサイドのリダイレクトではなく、クライアントサイドのリダイレクトになります。クライアントサイドのリダイレクトは、サーバーサイドのリダイレクトよりも閲覧状況によりうまく機能しない可能性が高まるためあまり推奨されません。
実際、W3Cでは2000年ごろからこの方法でリダイレクトをするのはやめようと呼びかけており、Googleもサポートはしていますが、推奨していません(ウェブマスターツールのアドレス変更ツールを使う場合にはサーバーサイドの301リダイレクトが推奨されるため)。
なお、使用する際はcontentの部分で0の部分が秒数にあたり、0秒だとGoogleは301扱い、1秒以上だと302扱いになりますので、基本的には0にしておきましょう。
JavaScriptを使ったリダイレクト
<script type="text/javascript">
<!–-
setTimeout("link()", 0);
function link(){
location.href='転送先URL';
}
-->
</script>
JavaScriptを使ってリダイレクトすることも可能です。
ただし、JavaScriptが実行できない環境では当然リダイレクトされなくなるのでこの中ではよほどのことがない限りは使うべきではない方法です。
まとめ
リダイレクトはユーザーのブックマーク・被リンク・SNSでの共有といった、外部からのアクセスがあった際に404ページが表示されるのを防ぐのと、SEOでの評価の引継ぎが目的です。
そもそもURLとはUniform Resource Locatorの略で、リソースの存在する位置を示すものという意味になります。
URLの変更が必要と感じた際には、本当に変更が必要なのか十分検討し、変更する場合は確実に新URLにリダイレクトするように設定しましょう。
不用意なURL変更は、ユーザーにとっても、Googleにとっても、運営者にとっても無駄になることがほとんどです。
URLの変更を行わなくても済むような運用を心がけたいものですね。