301リダイレクトとは?「.htaccess」を使用して設定する方法

301リダイレクトとは?「.htaccess」を使用して設定する方法

301リダイレクトはサイト運営をしていると必ずいつかは必要になることだと思うようになりました。

WordPressを私が使い始めてhttpからhttpsに変更したSSL化もそうですし、パーマリンク設定を途中で変更してしまいURLが変更になることも気づかず重複になってしまったときも301リダイレクトが関係してきました。

なので301リダイレクトとはどのような場合にどのような事ができるのか?そして301リダイレクトを設定する方法や書き方も覚えておきたいと思ったので記事にしておこうと思います。

このページに訪問していていただいた方にも記事の内容の一つでも参考になる部分があれば幸いです。

 

301リダイレクトとは

 

301リダイレクトはサイトURLやページURLが移転するURLに恒久的(継続的)に変更される転送処理コードです。

転送処理コードが301の場合は恒久的なのに対して転送処理コードに302リダイレクトがありますが302リダイレクトは一時的なリダイレクトとして使う場合です。

今回の知りたいリダイレクトの転送処理コードは302ではなく301なので301リダイレクトとは、どのようなときに役立つのか下記の場合を参考にしてください。

 

ドメイン変更をしたときの301リダイレクト

現在のサイトを新しいドメインに変更したときにスムーズに移行したい場合(サイト移転してすぐは旧サイトは検索エンジンに表示されることになる)

 

ユーザーの利便性を考えた301リダイレクト

ユーザーが複数の異なるURLからサイトにアクセスできてしまうので異なるURLを一つにまとめることでユーザーの利便性を向上するために使う場合。

たとえばwebサイトに異なるURLが3つあるとします。

 

  • http://exampe.com/home
  • http://home.example.com
  • http://www.example.com

 

上記の3つのURLでアクセスできる場合には、どれか一つのURLを優先的な(URL正規化)リンク先に送ることができます。

 

サイト移転での301リダイレクト

移転前と移転後のサイトの2つのウェブサイトを結合し、移転前の無効になったURLへのリンクが移転後の正しいページに301リダイレクトされるようにしたい場合(サイト移転の場合、旧サイト側に301リダイレクトを設定する)

 

上記はどれも301リダイレクトで解決することができるし重複ページになったときにも有効です

重複ページに関してSearchConsoleヘルプの「重複したURLを結合する」で見たのですが、それぞれの方法にはデメリットが書いてありました。

その方法の中にあった301リダイレクトにはデメリットが書いてありません。

デメリットがないことやGoogleもおすすめしていることを考えても301リダイレクトを使う方法は最善の方法なのだと思います。

 

 

Advertisement

 

 

301リダイレクトの必要性

 

サイト移転や異なるURLがあるときに301リダイレクトを設定しないで、そのままの状態でサイト運営してしまった場合にどんな機会損失や影響が出てしまうのか?

機械損失や影響から301リダイレクトの必要性を考えたときに思い浮かんだのは下記のことでした。

 

  • ユーザー面での影響
  • SEO面での影響

 

一番に考えなくてはいけないのがユーザー面での影響ですが、それと同じくらいに考えなくてはいけないことがSEO面での機械損失です。

どちらもWebサイトにおいては重要なことなのでユーザーとSEOのそれぞれの301リダイレクトについて説明してみます。

 

ユーザー面での影響

 

異なるURLがある場合それぞれのURLからサイトにアクセスができると、統一性がなくなりユーザーはどのURLからアクセスすればいいか迷うことになるかもしれません

それにアクセスしてくれたユーザーがそのページを紹介したいと思ったとしましょう。異なるURLがあると、どのURLを紹介したらいいか悩んでしまうかもしれません。

ドメイン変更したときでは移転前のサイトに301リダイレクト設定がしてないと、移転前のサイトにユーザーがアクセスしたときエラー表示だけで移転先へ転送できなければ親切とは言えないです。

それに対して移転前のサイトに301リダイレクトを設定しておくことでユーザーを丁寧にスムーズに新しい移転先のサイトに誘導(転送)できるのです

301リダイレクトをしておけばユーザービリティが向上します。

 

301リダイレクトをしてないSEOの影響

 

検索エンジンは移転前のページに301リダイレクトの設定がないと、その移転前のサイトのページを別ページとして扱います。

検索エンジンが移転前のページを別ページとして扱うということは移転後のページも当然に別ページとしてクロールしてるということです。

そうすると自然に評価も別になるので移転前のページに被リンクが付いていてページランクが高かったとしても、移転後のページには評価が引き継がれないので評価が消失してしまう影響が出てるし機械損失してるとも言えます、

これに対して301リダイレクトをしておけば自動で恒久的に検索エンジンからの評価(被リンクやpagerank)も新しいページへ誘導できるのです。

削除するリンクの評価(被リンク評価が出てきましたが100%は引き継げないのでアクセスが減る場合もある事に注意です)

 

 

Advertisement

 

 

301リダイレクトの設定方法

 

「301リダイレクトとは」「301リダイレクトの必要性」の説明をしてきましたが、次は実際に301リダイレクトを設定する方法を紹介したいと思います。

301リダイレクトをするときの最適な方法が「.htaccess」を使った301リダイレクトです。

 

.htaccessとは

 

.htaccess(ドット エイチティーアクセス)とはWebサーバーで使用されるApache(アパッチ)のコントロールする設定ファイル

 

「Apache」とは?

Webサーバーに入っているソフトの名前がApacheといいます。

Apache Software Foundation(Apacheソフトウェア財団)が開発していて世界で最も使用されているオープンソースソフトウェアです

 

.htaccess使用での条件

  • webサーバーにApache(アパッチ)を使用している
  • .htaccessが使える環境にある
  • mod Rewriteという機能を利用できるwebサーバー

 

.htaccessファイルの作成方法はテキストエディタで必要な記述内容をテキストエディタで記述して、そのファイルを「.htaccess」という名前で保存すると作成することができます。

.htaccessファイルを作成したら、FTPソフトを使ってサーバーへアクセスしてファイルを反映させたいディレクトリのトップに設置します。

 

.htaccessを使用した301リダイレクトの書き方

 

URLの正規化

最初にURLが二種類になってしまうのでURLの正規化をしておきます。

RewriteEngineon
RewriteCond%{HTTP_HOST}^(word-url.com)(:80)?[NC]
RewriteRule^(.*)http://www.word-url.com/$1[R=301,L]
RewriteCond%{THE_REQUEST}^.*/index.html
RewriteRule ^(.*)index.html$ http://www.word-url.com/$1 [R=301,L]

 

 

ドメインが変更になる場合

ドメインが変更になるけど下層ページは変わらない場合はURLの正規化をした後に以下を記述する

RewriteCond %{HTTP_HOST} ^(www.word-url.com)(:80)? [NC]
RewriteRule ^(.*) http://www.word-url.com/$1 [R=301,L]

 

 

ページ単位のリダイレクトをする場合

「word_page.html」にアクセスがあった場合に、「http://url.com/press_page.html」へ301リダイレクトさせる、という記述です。

同一ドメイン内でURLが変わった場合でも、別のドメインのURLであっても指定は可能です。

RewriteEngine on
RewriteRule ^word_page.html$ http://www.url.com/press_page.html [R=301,L]

 

 

ディレクトリ単位のリダイレクトの場合

「word_dir」というディレクトリにアクセスがあった場合「press_dir」にリダイレクトするという記述です。

これはディレクトリ名が書き換わるだけなのでファイル名が変更されている場合には404エラーになってしまうので注意してください。

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

 

 

wwwありに統一する場合

「http://word.com」にアクセスされたら「http://www.word.com」に301リダイレクトする記述です。

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

 

 

wwwなしに統一する場合

「http://www.word.com/」にアクセスされたら「http://word.com/」に301リダイレクトする記述です。

 

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.word\.com)(:80)? [NC]
http://word.com/$1 [R=301,L]

 

 

301リダイレクトをするときの注意点

301リダイレクトするときは301リダイレクト先の指定を全く関係ないページに誘導しないようにします。

旧ページ全てを新ページのトップページに301リダイレクトしないようにして旧ページごとに同じ内容のページに転送処理を行うように設定して「不正なリダイレクト」にならないように気をつけます。

 

不正なリダイレクトとは?

検索エンジンを騙すリダイレクトや人間のユーザーとクローラ―にそれぞれ異なるコンテンツを表示するための301リダイレクトはしない。

SearchConsoleヘルプ 不正なリダイレクト

上記はGoogleのウェブマスター向けガイドライン(品質に関するガイドライン)への違反になります。詳しくはSearchConsoleヘルプの不正なリダイレクトを参考にしてください。

 

310リダイレクトの確認方法

 

301リダイレクトが問題なく実装できているか確認したい場合は301リダイレクトチェッカーツールで簡単に確認ができます。

 

 

 

 

 

301リダイレクトのチェッカーツールでリダイレクト前のURLを入力してチェックします。

301リダイレクトができてる場合は「301リダイレクトするURL」と「301リダイレクト先のURL」を確認できます。

ステータスも確認します

301リダイレクトをするURLには「301」のステータスを返していることを確認して、301リダイレクトされた移転先のURLにはリクエストが正常に取得されている「200」のステータスも確認してみてください。

 

Googleカテゴリの最新記事