301リダイレクトとは、httpステータスコードの1つで、URLが恒久的に変更される転送処理のことを言います。
「リダイレクトをする必要がある」と、サイト運営の中でその必要性を理解していても、リダイレクトの種類や、その方法についてはまだあまりわかっていないという方もいらっしゃるのではないでしょうか。
SSL化に伴うURL正規化をする際などは、この301リダイレクトが必要になります。
301リダイレクトは、SEO内部対策の1つです。
この記事では、「301リダイレクトとは何か」「301リダイレクトの設定方法」について解説します。
目次
301リダイレクトとは
301リダイレクトとは、httpステータスコードの1つで、URLが恒久的に変更される転送処理のことを言います。
例えば、サイト移転などに伴ってURLが変更された場合、変更後のURLに転送するための方法として301リダイレクトが使われます。
301リダイレクトと302リダイレクトとの違い
301リダイレクトと302リダイレクトの違いは、その転送期間が「永続的か」、「一時的か」の違いにあります。
URLが変更された場合は、永続的に転送を行うべきであるので、一般的に301リダイレクトが使用されます。
検索エンジンの結果に表示されるページのURL を変更する必要がある場合は、可能な限りサーバー側の永続的なリダイレクトを使用することをおすすめします。これは、Google 検索とユーザーを確実に正しいページに導くための最善の方法です。ステータス コード 301 と 308 は、ページが別の場所に完全に移転したことを意味します。
リダイレクトと Google 検索 - Google検索セントラル
301リダイレクトを設定すべき理由
旧URLのSEO効果を転送後のURLに引き継ぐため
SSL化をした場合など、それまで使っていたURLに対するSEO効果を、新しいURLにも引き継ぎたいことがあります。
301リダイレクトによって転送すると、ユーザーが自動的に新しいURLに訪れることができるだけではなく、SEO効果を引き継ぐことができます。
しかし、そのSEO効果の引き継ぎは、完全に100%引き継がれることがないことにはご注意ください。
クローラビリティを下げないため
存在しないURLをそのままにしておくと、クロールエラーが生じます。
また、そういった無駄なクロールが強いられるため、本来優先的にクロールされるべきURLがされなくなるため、新しいURLがインデックスされにくくなるなども問題に繋がります。
クローラビリティが下がることは、SEO対策の観点から回避すべきことであるので、正しく301リダイレクトを行うべきであると言えます。
ユーザビリティを下げないため
URLが変更されたことに気づかずにユーザーがそのページを訪れてしまった場合、ページが存在せず、閲覧することができなくなる可能性があります。
せっかくのアクセスを離脱させてしまうことに繋がるので、URLを変更した場合には301リダイレクトを行い、スムーズにユーザーを新URLへと案内しましょう。
また、URL変更に伴い、そのページを削除する場合には、404エラーページを表示させ、そのページがないことをユーザーに伝えましょう。
301リダイレクトの設定方法
では、301リダイレクトの設定方法を解説します。
301リダイレクトを実施するには、「.htaccessファイル」に記述し、そのファイルをサーバーにアップロードする必要があります。
その「.htaccessファイル」に記述すべき内容が、ケースによって変わるので、その内容を以下から分けて説明します。
ドメイン単位で転送
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.old-example.jp)(:80)? [NC]
RewriteRule ^(.*) https://www.new-example.jp/$1 [R=301,L]
この例では、「www.old-example.jp」から「www.new-example.jp」にリダイレクトさせることを想定します。
- 「RewriteEngine on 」の宣言文を記述します。
- 「RewriteCond」の文に転送前のURLを含めた文を記述します。
- 「RewriteRule」に転送後のURLを含めた文を記述します。
もしくは以下のようにも記述することができます。
Redirect permanent / https://www.new-example.jp/
この記述でも、ドメイン単位で301リダイレクトをすることができます。
ページ単位で転送
複数のURLで重複コンテンツが生じてしまった場合などでは、そのページ単位で転送する必要があります。
例えば、「https://example.jp/a.html」と「https://example.jp/b.html」のコンテンツが重複しており、それを「a.html」の方に転送させたいとします。
RewriteEngine on
RewriteRule ^/b.html$ https://example.jp/a.html [R=301,L]
- 「RewriteEngine on 」の宣言文を記述します。
- 「RewriteRule」に「/(スラッシュ)」から始まる転送前のURLを記述します。
- それに続けて、転送後のURLを記述します。
ディレクトリ単位で転送
ディレクトリ単位で、転送を行うことも可能です。
例えば、「https://example.jp/before/sample.html」のページURLのディレクトリ名を「before」から「after」に変更し、「https://example.jp/after/sample.html」とURLを変更したいとします。
RewriteEngine on
RewriteRule ^before(.*)$ /after$1 [R=301,L]
以上のように書くことで、ディレクトリ単位で転送することができます。
SSL化に伴った転送
SSL化とは、セキュリティ性の高い送受信の仕組みを採用することです。
それに伴い、URLが「http」から始まるものが、「https」に変更されます。
このSSL化をする際には、このURLの変更に対応する必要があり、この変更後のURLに転送することでこの問題を解決することができます。
この例では、「http://example.jp」をSSL化し、「https://example.jp」に変更します。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.jp/$1 [R=301,L]
- 「RewriteEngine on」の宣言文を記述します。
- 「RewriteCond」で「HTTPSでなければ」という条件を記述します。
- 「RewriteRule」で転送後のURLを含めた文を記述します。
WordPressのプラグインを使って転送
WordPressでサイトを運営し、リダイレクトの必要が生じた場合には、プラグインを使うことでも可能です。
「Redirection」というプラグインを使うと、URLを入力するだけで簡単にリダイレクトを行うことができます。
「ソースURL」に転送元URLを入力し、「ターゲットURL」に転送後URLを入力します。
301リダイレクトの確認方法
301リダイレクトの設定を行ったら、それが実際に機能しているかを確認しましょう。
「リダイレクトチェッカー」を使うと、検証したいURLを入力するだけで、 リダイレクトが実施されているかを確認することができます。
リダイレクトができている場合は、以上のように表示され、「301」などのステータスの確認もすることができます。
301リダイレクト設定時の注意点
.htaccessファイルが使えるサーバーかを確認する
リダイレクトを行うために、本記事では「.htaccessファイル」をアップロードができる前提で解説しました。
サーバーの問題で、「.htaccessファイル」の記述がうまく機能しない場合は、リダイレクトやそれによるSEO効果の引き継ぎも行われません。
SEO効果を引き継ぐには、少なくとも1年間は301リダイレクトを設定する
301リダイレクト設定によってSEO効果の引き継ぎを期待しますが、いつまでこのリダイレクト設定を維持すべきか気になる方もいらっしゃると思います。
If they're no longer needed after a while (usually I recommend keeping them at least a year), and you don't see traffic to them, then removing them is fine since it makes long-term maintenance easier.
— 🦇 johnmu: cats are not people 🦇 (@JohnMu) January 18, 2019
hands up if you asked us recently for how long you should keep redirects in place!
— Gary 鯨理/경리 Illyes (@methode) July 21, 2021
i have a concrete answer now: at least 1 year.
(but try keeping them indefinitely if you can for your users).
Googleの関係者によれば、リダイレクト期間は少なくとも1年以上であることが望ましいことがわかっているので、最低でも1年間はリダイレクトを行うことをお勧めします。
URL変更があったら、301リダイレクトを忘れずに
重複コンテンツや、URL変更がある場合など、301リダイレクトが必要になる場面があります。
こうした場合に、「301リダイレクトが必要だ」という観点がないまま、計画を立ててしまうと、SEO的に損失を被る可能性があるので、注意したいものです。
当サイトでは、他にもSEO内部対策などのコンテンツを掲載しているので、ご興味のある方は併せてご覧ください。