バックエンド

Webサイトリニューアル後のSEO対策!301リダイレクトの基本と設定方法

Webサイトをリニューアルした際にURLが変更されたとき、リダイレクトの設定を忘れていませんか?使わなくなったURLを残してリダイレクト設定をしないと、SEOにも影響が出てきてしまうほど、リダイレクトは重要な設定です。今回の記事では、この「301 リダイレクト」の概要と設定方法をご紹介します。

HTTPステータスコードの概要については以下の記事にまとめましたので参照ください。

301リダイレクト

目次

リダイレクトとは

リダイレクトとは、アクセスしたページから別のページへと転送することを言います。Webサイトにおけるリダイレクトには、大きく分けて「301リダイレクト」と「302リダイレクト」の2種類があり、301リダイレクトは永久的なリダイレクトを、302リダイレクトは一時的なリダイレクトをすることを表しています。

Webサイトのメンテナンス中にアクセスしたユーザーを、メンテナンスのお知らせのページに転送したい場合は、メンテナンス中だけリダイレクトができればいいので302リダイレクトを設定することが望ましいです。逆に、WebサイトをリニューアルしてURLが変わった場合は、永久的に前のURLにアクセスしたユーザーを転送する必要があるので、301リダイレクトを設定する必要があります。

SEO対策としてのリダイレクト

リダイレクトの設定は、Webサイトのリニューアルした後のSEO対策として必須です。

検索エンジンの仕組み

Webサイトが検索エンジンの検索結果画面で表示されるには、そのWebサイトがクローリングされる必要があります。クローリングとは、インターネット上のWebサイトをクローラーと呼ばれる巡回プログラムが自動的に訪れ、Webサイトの各種情報を取得することです。このクローリングによって得られた情報によって、URLごとにページのランク付けが行われ、ランクの高い順から検索結果画面で表示されていきます。クローリングが何度も行われ、Webサイトの最新かつ正確な情報を取得してもらうことで評価が蓄積されていき、最終的にページの表示順位に繋がります。これがいわゆる検索エンジンの仕組みです。

リダイレクトによるURL変更後の評価に関する対策

では、WebサイトをリニューアルしてURLが変わった場合は、今までの評価はどうなるでしょうか。例えページ内容が同一のものであっても、URLが変更された場合、URLごとに評価をするクローラーは「新しいWebページ」と判断するため、リニューアル前のWebページで積み上げた評価が無かったものとして扱われてしまいます。 そこで、この問題を解決するのが301リダイレクトです。301リダイレクトを設定することで、ユーザーとクローラーの両方に、リニューアル前のWebサイトとリニューアル後のWebサイトの関連性を示すことが可能です。リダイレクトは、URL変更後もWebサイトの評価を引き継ぐことができます。

301リダイレクトはページランクを下げてしまう?

ページランクはGoogleがWebサイトを評価するために導入した指標のことです。Googleのスパム対策リーダーでSEO対策の問題にあたっているMatt Cutts氏は、過去に「301リダイレクトの使用はページランクを減少させる」という趣旨の発言をしています。

スクリーンショット 2020-08-03 12.28.49_1956x1260

ページランクの何パーセントが301リダイレクトによって失われますか?

というのも、301リダイレクトを行うことによりページランクが10~15%ほど失われてしまうことがあったそうです。しかし現在ページランクの評価基準が変わり、301リダイレクトによってページランクが減少することはないようです。

リダイレクトの設定方法

ではここから、リダイレクトの設定方法について紹介します。

リダイレクトには、

  • htaccessを使ったリダイレクト
  • PHPを使ったリダイレクト
  • HTMLのmetaタグを使ったリダイレクト
  • JavaScriptを使ったリダイレクト

の4つの種類があります。それぞれ設定方法が違うので紹介していきます。

htaccessを使ったリダイレクト

htaccessファイルを使用したリダイレクトはSEO的に最も推奨されている方法です。 手順は以下のようになります。

手順1 .htaccessファイル作成

はじめに、.htaccessファイルを作成します。 メモ帳を開き、ファイル名を「.htaccess」、ファイルの種類を「全てのファイル」に設定し、保存します。

手順2 リダイレクト指示の記述

作成した.htaccessファイルにリダイレクトの記述をします。

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

xxx.htmlというページから、yyy.htmlというページに301リダイレクトをさせる設定は、以下のように記述します。

  1. RewriteEngine on
  2. RewriteRule ^xxx.html$ yyy.html [R=301,L]

上記は同じサーバー内の場合の記述です。異なるサーバーのWebページへリダイレクトさせる場合は、ドメイン名も含めて以下のように記述してください。

  1. RewriteEngine on
  2. RewriteRule ^xxx.html$ http://www.url.com/yyy.html [R=301,L]
ディレクトリ単位でリダイレクトをする場合

XXXというディレクトリから、YYYというディレクトリへ301リダイレクトをさせる設定は、以下のように記述します。

  1. ReweiteEngine on
  2. RewriteRule ^XXX(.*)$ /YYY$1 [R=301,L]

ここで注意したいのは、ディレクトリ名のみの変更にしか対応していないので、ファイル名の変更があった場合は404 Not Found(404エラー)となります。

手順3 アップロード

リダイレクトの記述が完了した.htaccessファイルをサーバーにアップロードします。 設定したリダイレクトは、アップロードした階層以下に適用されます。階層が一番上にあるトップページにアップロードすれば、Webサイト全体に適用されるということですね。

PHPを使ったリダイレクト

PHPを使ったリダイレクトとして、Locationにリダイレクト先のURL(絶対パス)を記述します。記述方法は以下のようになります。

  1. <?php{
  2. header( "HTTP/1.1 301 Moved Permanently" );
  3. header( "Location: http://***.jp/" );
  4. exit;
  5. ?>

もしくは以下のように短縮して記述もできます。

  1. <?php
  2. header("Location: http://***.jp/", true, 301);
  3. exit;
  4. ?>

HTMLのmetaタグを使ったリダイレクト

HTMLのmetaタグを使ったリダイレクトとして、meta refreshを使用します。meta refreshとはHTMLのタグの一種で、サイト内に設置することで、訪れたユーザーを指定したサイトに飛ばすことができます。なおこのmeta refreshを記述する場所は<haed>~</head>内ならどこでも大丈夫です。

  1. <head>
  2. <meta http-equiv="refresh" content="30;URL=http://***.jp/">
  3. </head>

JavaScriptを使ったリダイレクト

JavaScriptを使ったリダイレクトとしてlocation.hrefを使用します。

使用しているサーバーで http のリダイレクトができない場合の代わりとしてjavascriptによるリダイレクトができます。

記述内容は以下のようになります。

  1. <script type=”text/javascript”>
  2. <!–
  3. setTimeout(“link()”, 0);
  4. function link(){
  5. location.href=’https://***.jp/’;
  6. }
  7. –>
  8. </script>

wwwの有無、index.htmlの有無のURL正規化の設定

wwwの有無のURL正規化や、index.htmlの有無のURL正規化の設定にも、リダイレクトを利用できます。

wwwの有無を統一

www有りに統一する場合

http://zzz.comをhttp://www.zzz.comへ301リダイレクトする場合は、以下のように記述します。

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

    このリダイレクトにより、www有りに統一することができます。

    www無しに統一する場合

    http://www.zzz.comをhttp://zzz.comへ301リダイレクトする場合は、以下のように記述します。

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

    このリダイレクトにより、www無しに統一することができます。

    index.html無しに統一する場合

    index.htmlは、基本的に無しで設定することが多いため、index.html無しで統一する記述方法のみご紹介します。

    http://ZZZ.com/index.htmlからhttp://ZZZ.comへ301リダイレクトさせる場合は、以下のように記述します。

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

    このリダイレクトにより、index.html無しに統一することができます。

    リダイレクト設定の注意点

    設定さえすれば、ユーザーを特定のページに遷移させることができるリダイレクトですが、広告目的でのリダイレクトの利用は避けましょう。

    リニューアル前のWebサイトの評価をリニューアル後のWebサイトに引き継げるリダイレクトですが、評価の引継ぎは「同じ内容のWebページ」の場合のみ可能です。 もし、リダイレクトの前後のWebページの内容が全く違うものであれば、悪質なWebページと判断され、逆に評価が落ちてしまうので注意しましょう。

    Webサイトのリニューアル時に注意すべき点は他の記事でも紹介していますので、ご参考ください。

    まとめ

    リダイレクトの概要についてご理解いただけたでしょうか? Webサイトをリニューアルする際は、SEO対策として301リダイレクトの設定を忘れずに行いましょう。


    こういう機能をWebサイトに入れたい、サイトのリニューアルをしたい、など自社サイトで改善したいところはありませんか?

    弊社ホームページでは制作実績をご紹介していますので、サイト改善のお役に立つかと思います。また、フォームからのご相談も承っております。ぜひお気軽にお問い合わせください。

    この記事の著者

    itra
    ITRA株式会社

    官公庁や大手企業を中心とした大規模なWebサイトを総合的にプロデュースするWeb制作会社。デザインからシステム、サーバーまでWebサイトに関わるお客様の悩みを解決します。