ホームページを運営していると、URLの転送が必要になることは多々あります。
その際、旧URLが持っているGoogleからの評価を引き継いで転送することができる(悪い評価も引き継ぎます)のが「301リダイレクト」です。

この記事では、301リダイレクトの意味と、mod_Rewriteを使った301リダイレクトのやり方を紹介します。

▼合わせてチェック▼
Web担当者なら必須!SEOに適したケース別リダイレクト方法

目次

  1. 301リダイレクトとは
  2. 301リダイレクトはSEOにおいても重要
  3. 301リダイレクトの前提条件
  4. 301リダイレクトのやり方(mod_Rewriteが使える場合)
    1. htaccessファイルを作成する
    2. 転送処理の記述をする
    3. アップロードする
  5. まとめ

301リダイレクトとは

301リダイレクトとは、Webサイトを引っ越しさせたり、ページURLを恒常的に変更したい場合にユーザーを転送させる仕組みのことです。301リダイレクトを設定しておくことにより、ユーザーは元のページを訪れた際、新しいページへ自動的に転送されるようになります。

301リダイレクトはSEOにおいても重要

301リダイレクトには、ユーザーを転送させるだけではなく、「検索エンジンURLを変更したことを伝える」という役割もあります。これにより、リダイレクト先のWebページは元々のページGoogleの評価を引き継ぐことができるのです。

元あったページの評価を落とさずにURLを変更するためにも、301リダイレクトの設定はとても重要だと言えます。ただしここで言う「Googleの評価」は良い評価だけではありません。元のページに悪い評価がある場合、その評価も引き継がれることとなります。

301リダイレクトの前提条件

301リダイレクトを使うには以下の前提条件があります。

  • .htaccessが使えるサーバーであること
  • Apache(アパッチ)というウェブサーバーを使っていること
  • 「mod_Rewrite」という機能をサポートしているウェブサーバーであること(推奨)

下記レンタルサーバーの対応状況を一部掲載しておきます。
ご自分のサーバーが対応しているかどうかは、サーバー会社のホームページなどに載っているので確認しましょう。

レンタルサーバー Apache対応 mod_rewirteサポート
さくらインターネット
ロリポップ
Xserver
WADAX

301リダイレクトのやり方(mod_Rewriteが使える場合)

1. htaccessファイルを作成する

「●●.htaccess(●●は適当な文字列)」というファイルを作成します。
テキストエディタを用いて、ファイルを作成し名前を●●.htaccessとして保存してください。

参考:
Webサーバーの動作を制御するファイル".htaccess"の作成支援ツール「.htaccessEditor」とは?

2.転送処理の記述をする

1で作成した●●.htaccessの中に下記のケースから行いたいサイトのリダイレクトに合わせて修正した上で保存してください。

2-1.ページ単位のリダイレクト

「old.html」にアクセスがあった際に「http://www.example.com/new.html」へ301リダイレクトさせる記述です。


RewriteEngine on
RewriteRule ^old.html$ http://www.example.com/new.html [L,R=301] 

Lは「この処理はここで終わり(LAST)」の意味で、R=301は「301リダイレクトをしなさい」という指定になります。
ちなみに、Rだけだと302リダイレクトになるので、301リダイレクトを行いたい場合は必ずR=301の指定をするようにしてください。

2-2.ディレクトリ単位のリダイレクト

「old」ディレクトリにアクセスがあった際、「new」ディレクトリに転送をかけたい場合の記述です。
ディレクトリ以下にファイルがある場合は、newでもファイルを置いておかないと404エラーになってしまいます。


RewriteEngine on
RewriteRule ^old(.*)$ /new$1 [L,R=301] 

2-3.http→https のリダイレクト

HTTPアクセスされたページをSSLでリダイレクトをする方法です。SSLを使いたいディレクトリに以下を記述したファイルを入りします。
GoogleがSSL化を推奨していることもあり、SSL対応を行う人も増えていますが、この場合もHTTPでのアクセスをHTTPSにリダイレクトしたほうが良いです。


RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

SSLでリダイレクトするページを個別で指定する場合
a.htmlとb.htmlというページだけSSLへリダイレクトしたい場合は以下となります。


RewriteEngine on

RewriteCond %{REQUEST_URI} .*/a.html$ [OR]
RewriteCond %{REQUEST_URI} .*/b.html$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
RewriteCond %{REQUEST_URI} !(.*/a.html$)
RewriteCond %{REQUEST_URI} !(.*/b.html$)
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2-4.https→http のリダイレクト


RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2-5.wwwなしURLを、wwwありURLへリダイレクトする記述

http://example.com/へアクセスがあった際に、http://www.example.com/リダイレクトをかける記述です。
こちらはリンクポピュラリティの分散を防ぐという考えもありますので、どちらかに統一しておいたほうがいいでしょう。また忘れずにGoogle Search Consoleでも統一するようにしてください。


RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

2-6.wwwありURLを、wwwなしURLへリダイレクトする記述

5の逆です。


RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example\.com
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] 

2-7. TOPページのindex.htmlをindex.html無しに統一する記述


RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [L,R=301] 

3.アップロードする

2で作成し保存した●●.htaccessをサーバー上にアップロードをします。アップロードするためにFTPソフトを使用します。
.htaccessの有効範囲は、.htaccessをアップロードディレクトリと、その子階層に対して有効になります。

まとめ

リダイレクト処理はホームページ運営を行っていると必ず発生します。

しかし、転送処理を間違えるとページが見れなくなるなど大きな問題です。必ずエンジニアなどの技術の分かる人と一緒に対応を行うようにしてください。

▼合わせてチェック▼
Web担当者なら必須!SEOに適したケース別リダイレクト方法