エンジニア

リダイレクト設定の方法とは?評価を引き継いでサイト移転するポイントを解説

2021年01月12日

リダイレクト設定

Webサイトの運営を行っていると、サイトの移転やディレクトリ構成の変更などの様々な理由からURLが変わることがあります。そのような際に重要なのがリダイレクト設定となります。ユーザビリティだけでなくSEOの観点からも行うべき設定ですが、正しく設定を行わなければ効果がないだけでなく、ユーザーの混乱にも繋がってしまうため注意が必要です。
そこで今回の記事では、Googleが推奨している設定方法をベースに、リダイレクトの意味、具体的な設定の方法を詳しく解説していきます。自社サイトのリダイレクト設定を行う際の参考にしていただければ幸いです。

リダイレクトとは

リダイレクトとはWebサイトやWebページを訪れた際、自動的に別のページに移動する仕組みを指します。例えば、外部サイトやSNSからのリンク、もしくはブラウザのブックマークなどのURLの編集や修正を、被リンクされる側から行うことは不可能です。しかし、リダイレクト設定をすることで、Webサイトを運営する側が古いURLおよび古いWebページへのアクセスを、新しいURL、もしくは新しいWebページなどの適切なページに誘導できるようになります。
また、リダイレクト設定を適切に行うことで、元のURLに対する検索エンジンの評価をリダイレクト先のURLに引き継ぐことが可能なことから、SEO的にも重要視すべき仕組みです。その他にも存在しないURLを指定されることによる404エラーへの対策にも役立ちます。これらのことからWebサイトやWebサービスを運営する側として、リダイレクトの仕組みを理解し、必要に応じてリダイレクト設定できるようにしておくべきと言えます。

リダイレクト設定が必要な状況

次にリダイレクト設定が必要な状況について見ておきましょう。

サイトの引っ越し

サイトの引越しとはWebサイトを構築するサーバーやWebサイトを構築するオンラインサービスから、他のサーバーやサービスへの移転すること、もしくはドメインの変更を伴うサーバーやサービスの移転を指します。
古いURLに訪れたユーザーを新しいURLおよびドメインのサイトに誘導することで、古いURLへのアクセスを失わずに済むのが利点です。また、前述したように古いURLの評価を引き継ぐことができるため、サイトの移転や引越しのタイミングにありがちな大幅なアクセス減や評価の低下を防ぐことにつながります。
逆に言えばリダイレクト設定を行わない場合、古いURLと新しいURLへの評価が2つに分かれてしまい、場合によってはアクセス減や検索エンジンからの評価の低下を招く可能性があることも留意しておきましょう。

URLの正規化

URLの正規化とは同じページなのにURLが異なる場合にリダイレクトによって統一することを意味します。

http://example.com
http://www.example.com
http://example.com/index.html
http://www.example.com/index.html
https://example.com
https://www.example.com
https://example.com/index.html
https://www.example.com/index.html

例えば上記はwwwの有無、暗号化の有無、index.htmlの有無などによる同一ページのURLです。これらは本来バラバラのURLとして扱われますが、リダイレクト設定によって統一し、正規化することができます。

リダイレクトの種類

次にリダイレクトの種類をご紹介します。

301リダイレクト

301リダイレクトとは恒久的および永続的な転送(リダイレクト)を意味します。ドメインの変更や新規取得によるサーバー移転やWebサイト構築サービスおよびブログサービスから別のサービスに引越しなど「元のURLでは更新しない」ような状況で用いられます。
301リダイレクトはリダイレクト先のページやサイトがインデックスされ、検索エンジンの評価になります。恒久的かつ永続的に転送するのであれば、301リダイレクトを用いることで評価を引き継ぎながら適切なサイトやページへの誘導ができるということです。
逆に言えば恒久的かつ永続的な転送なのに、後述する302
リダイレクトの設定をしてしまうと新しいサイトやページがインデックスされず、検索エンジンに評価されないので注意しましょう。

302リダイレクト

302リダイレクトは一時的な転送(リダイレクト)を意味まします。スマホページへの転送やサイトのリニューアルやメンテナンス時に用いられるのが一般的です。
スマホページへの転送とはユーザーエージェントでデバイスを振り分けることを指しており、ユーザーは同じURLでデバイスごとに見やすいデザイン配置でサイトを閲覧できるようになる仕組みです。
サイトのリニューアルやメンテナンスは一時的に各種ページへのアクセスをメンテナンスページなどに転送することであり、元のURLへの評価を下げずにアナウンスや説明を行うことができます。
302リダイレクトはリダイレクト元のページやサイトがインデックスされるということを押さえておきましょう。

リダイレクトの手法

次にリダイレクトの手法についてご説明します。

クライアントサイドリダイレクト

クライアントサイドリダイレクトとはhtmlのヘッダー部分にmeta refreshを記載して転送したり、JavaScriptによって転送したりする手法が該当します。
一部のWebサイト構築サービスやブログサービスにおいては.htaccessファイルへのアクセスや編集ができない場合がありますが、ヘッダーやJavaScriptの設置が可能なら利用できる手法と言えます。
注意点としてはSEOの評価が引き継がれない可能性があることです。基本的には.htaccessによる301リダイレクトでなければリダイレクト先に評価が引き継がれないものだと覚えておきましょう。
しかし、後述するサーバーサイドリダイレクトが行えない状況においては利用せざるを得ないこともあり、状況に応じて利用を検討すべき手法とも言えます。

サーバーサイドリダイレクト

サーバーサイドリダイレクトとは.htaccessにリダイレクトの設定を記述することでページ単位ではなくサーバー側でリダイレクトを制御する手法です。
Googleが推奨する手法であり、検索エンジンからの評価が適切に引き継がれるため、よほどの理由がなければサーバーサイドリダイレクトを行うべきと言えます。
.htaccessへの記述もパスの概念を理解していれば、そこまで難しいものではなく、簡単な記述で確実にリダイレクトが行えるため、サイトやサーバーを運営管理する立場であれば必ず覚えておくべき手法です。
注意点としてはサイトの移転やURLの正規化のタイミングで大幅にディレクトリ構造やファイル名およびページ名が変更してしまうと、.htaccessへの記述が膨大になってしまい管理が大変なことです。
既に被リンクがあるような状況ですと大幅なアクセス減や評価の低下を招くため、記事数やコンテンツ数が多い場合こそ、大変であるとしてもしっかりとリダイレクト設定を行いましょう。

リダイレクト設定をしてみよう

次にリダイレクトの設定方法をご紹介します。

ページ単位のリダイレクト

ページ単位でリダイレクトする場合はリダイレクト元とリダイレクト先のファイル名を明確に指定します。

RewriteEngine on
RewriteRule ^ help.html$ http://www.examplel.com/question.html[R=301,L]

上記はリダイレクト元が「help.html」リダイレクト先が「question.html」となる場合の記述方法です。
注意点としては.htaccessを設置するディレクトリの階層によって動作が異なる点です。ドメイン直下にhelp.htmlファイルがない場合はディレクトリパスを記述することも忘れてはなりません。
また、ドメイン直下の.htaccessはサーバー全体に影響があること、ディレクトリ階層が下がれば下がるほど上記のディレクトリには影響しない点も覚えておきましょう。

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

ディレクトリ単位でリダイレクトする場合はリダイレクト元とリダイレクト先を明確に指定します。

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

上記はリダイレクト元が「songs」リダイレクト先が「music」になる場合の記述方法です。

example.com/songs/
example.com/music/

上記のようにドメイン直下のディレクトリ名の変更であれば適切にリダイレクトされます。ページ単位のリダイレクトと同様に.htaccessを配置するディレクトリ階層に注意し、パスの記述を間違えないようにしましょう。

サブドメインのリダイレクト

サブドメインにアクセスがあった場合にルートドメインへの転送、もしくは特定のディレクトリへの転送を行うこともできます。

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

上記はsub.example.comへのアクセスをexample.comに転送する場合の記述方法です。

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

上記はsub.example.comへのアクセスをexample.com/subのディレクトリに転送する場合の記述方法です。
例えば、サブドメインで運用していたけれどルートドメインに統合する場合に役立ちます。逆にルートドメインへのアクセスをサブドメインやサブドメインの特定のディレクトリへ転送することも可能です。

404ページのリダイレクト

ページやファイルが存在しない場合に404ページへリダイレクトさせたい時も.htaccessへ記述することで転送可能です。

ErrorDocument 404 /404.html

上記は「404.html」がドメイン直下のディレクトリに存在し、HTTPステータスコードが404の場合に404.htmlに転送させるという記述です。
内部リンクや管理運営するサーバーやサイト内であれば修正や変更はできますが、外部リンク、すなわち被リンクは修正や変更など制御ができないため、404ページを設置することでユーザビリティを向上させることができます。

URLの正規化

次にURLの正規化に関するリダイレクト設定を見てみましょう。

www有無の場合

wwwをドメインに付けたい、またはwwwをドメインから外したい時の記述をご説明します。

RewriteEngine on

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

上記はexample.comへのアクセスをww.example.comに転送する場合の記述方法です。

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

上記はwww.example.comへのアクセスをexample.comに転送する場合の記述方法です。
単純に短いドメインの方が見やすいから、またはドメイン名を覚えてもらうためにwwwを外すというパターンもあるようです。逆に企業や組織によっては、wwwが付いていたほうがしっかりとしたイメージを与えられるという理由でwwwを付けているケースもあります。

wwwの有無については賛否両論ありますので、ドメイン上のサイトやサービスにおいてどちらの方が適切かしっかりと検討した上で正規化しましょう。

index.html有無の場合

ディレクトリごとのindex.htmlへのアクセスをディレクトリ名などで正規化する場合もリダイレクト設定が必要です。

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

上記はexample.com/index.htmlへのアクセスをexample.comに転送する場合の記述方法です。
index.htmlの有無については、index.htmlがなくても基本的にはindex.htmlを参照する仕組みになっていること、同時にindex.htmlの分、URLが短く済むことから特に理由がなければindex.html無しにしておくほうが無難と言えます。

リダイレクト設定のポイント

次にリダイレクト設定のポイントをご説明します。

リダイレクト先はひとつずつ設定する

リダイレクト先はひとつずつ設定するのがポイントです。例えば、100ページあれば100ページ全てが適切にリダイレクトされるようにすべきです。個別のファイル名やディレクトリ名の命名規則を変更したような場合は面倒でもひとつひとつリダイレクト設定することをおすすめします。
間違ってもリダイレクト元のドメインやWebページから一括でリダイレクト先のトップページに転送するようなことは避けましょう。なぜなら、リダイレクト元の評価が引き継がれるのは同じページへ転送された場合のみであり、トップページに集中的に転送したからといって評価が引き継がれるわけではないからです。
URLの正規化と同様にリダイレクト元のページ=リダイレクト先のページが必ず一対になるよう丁寧に設定することが大切です。

リダイレクトを行うページを限定する

ページやコンテンツによっては、評価が低い場合もあります。低い評価をそのまま受け継ぐよりは新しいページとしてインデックスしてもらったほうが良い評価になるケースもあることから、リダイレクトを行うページを限定するという方法も検討すべきです。
基本的にはコンテンツ数やページ数ごとにリダイレクトすべきですが、あえて評価の高いページ、もしくはアクセス数が多いページのみリダイレクト設定を行うことで、大幅なアクセス減を防ぎながら、新しい評価によるアクセス増が期待できます。
また、質が低い外部からの被リンクが多いページも同様であり、あえてリダイレクトしないことで新しいURLでは被リンクを外すこともできます。
アクセスや被リンクの状況を見ながら、場合によってはリダイレクトしないという選択肢があることも理解しておきましょう。

リダイレクト設定が正しく出来ているか確認する

リダイレクト設定を行ったら、Google Chromeのデベロッパーツールなどでリダイレクト設定が正しくできているか確認しましょう。Google Chromeであれば右クリックの検証を開いて、NetWorkをクリックするとStatusの項目で状況をチェックできます。同時に、直接リダイレクト元のページを開いてリダイレクト先に転送されるかどうかもチェックすべきです。
また、.htaccessの記述ミスによって無限ループしてしまうような状況に陥ることがあります。閲覧するユーザーからはクリックしてもページに何も変化がないように見えたり、何もできないような状況になってしまいます。ユーザーにネガティブな影響を与える可能性がありますので、設定には充分に注意しましょう。
その他にも.htaccessを配置する位置の間違い、.htaccessを配置した位置と設定したパスの間違いなど、ちょっとしたことで転送ミスとなり、誤ったリダイレクト=404エラーとなりがちですので、ディレクトリ構造やパスに関する理解についても深めておくことをおすすめします。

まとめ

今回はリダイレクトに関する基礎知識、リダイレクト設定方法やリダイレクト設定する時のポイントをご紹介しました。
リダイレクト設定は今まで積み上げた評価やアクセスを失わないために必須の知識と言えます。多少、面倒なように感じても、ページ数が多いから、または少ないからとリダイレクトをしないという考えを持つのはやめましょう。
特に外部サイトやSNSからの被リンクは昨今においてアクセスを増やすため、または安定してアクセスしてもらうための重要な鍵でもあります。何らかの理由でURLを変更する場合はきちんとリダイレクトを行い、閲覧するユーザー側の利便性を損ねず、ユーザビリティを低減させないよう意識することをおすすめします。
最後までお読みいただきありがとうございました。
この記事がリダイレクトについて知りたかった方のお役に立てれば幸いです。

この記事を書いた人

QEEE編集部

QEEEmagazineはマーケター、人事、エンジニア、営業企画などの企画者に役立つコンテンツをそれぞれ領域のスペシャリストが発信していきます。

投稿一覧へ

他サービスはこちら