Webサイトの運用管理を行う担当者にとって、リダイレクトの知識を身に付けておくことは非常に重要です。誤ったリダイレクト設定は、Webサイトで提供すべき正常なユーザー体験を妨げたり、検索エンジンの表示順位に悪影響を及ぼす可能性があります。
そこで本記事では、正しいリダイレクト設定が行えるように、リダイレクトの概要、種類、設定方法、注意点などを分かりやすく解説します。これらの知識はエンジニアや外注に設定を依頼する場合にも役立ちます。ぜひ最後まで読んでみてください。
今すぐメールマーケティングを始めたい方は、 |
【目次】
リダイレクトとは、ユーザーまたは検索エンジンのクローラーが、Webサイトの特定のURLにアクセスしようとした時に、その要求を自動的に別のURLに転送する機能のことを指します。
リダイレクトには、Webサーバー側で転送処理を行う「サーバーサイドリダイレクト」と、ユーザーの使用しているブラウザ側で転送処理を行う「クライアントサイドリダイレクト」の2つの方法があります。
サーバーサイドリダイレクトと、クライアントサイドリダイレクトのどちらを使用するべきかについては、リダイレクトの目的や用途に依存します。以下、2つのリダイレクトの特徴を簡易的にまとめた表になります。
サーバーサイド | クライアントサイド | |
---|---|---|
検索エンジン評価 | 引き継げる | 引き継げない |
リダイレクト速度 | 早い | 遅い |
セキュリティリスク | 低 | 高 |
ページの永続的な変更時 | ◯(向いている) | ×(向いていない) |
ページの一時的な変更時 | ◯ | ◯ |
ドメイン変更時 | ◯ | × |
URL正規化の実施時 | ◯ | × |
サーバーサイドリダイレクトは、SEO、セキュリティ、ドメイン変更、URL正規化など、多くの場面で使用されます。クライアントサイドリダイレクトは、主にサーバー側の設定が制限されている場合に使用されます。
検索エンジンの検索結果に表示されるページURLを変更したい場合は、検索エンジンの評価を引き継ぎぐことができる、サーバーサイドのリダイレクトを使用することをお勧めします。
リダイレクト設定を行う理由は多岐に渡ります。主な理由には以下のようなものが挙げられます。
リダイレクト設定は「ユーザービリティの向上」と「検索エンジンの評価維持」という2つの側面から見て、非常に重要だと言うことを理解しておきましょう。
リダイレクト設定は、サイトでのユーザービリティに大きな影響を与えます。正しいリダイレクト設定は、ユーザーが古いURLや削除されたページにアクセスした場合に、正しいページへと誘導することができます。サイトの回遊率を高め、顧客満足度も向上します。
リダイレクトが適切に設定されていない場合は、ユーザーは404エラーページに誘導されたり、求めているコンテンツへ辿り着くことができません。結果として、サイトからの離脱率が上がり、顧客満足度やCVを下げる原因に繋がります。
リダイレクト設定は、ユーザーと同じように、検索エンジンのクローラーに対しても、正しいURLに誘導する役割を果たしています。
正しいリダイレクト設定を行うことで、クローラーはサイトをスムーズ巡回し、正確なインデックス情報を収集することができます。結果として検索エンジンの評価が高まり、SEO対策を強化することに繋がります。
リダイレクトが適切に設定されていない場合は、Webサイトのコンテンツが正確にインデックスされません。Googleサーチコンソールなどのツールでリダイレクトエラーとして警告されます。リダイレクトエラーが多くなると、Webサイトの評価が下がり、検索エンジンの表示順位にも悪影響を及ぼす可能性があります。
参考:Google検索セントラル「リダイレクトとGoogle検索について」
リダイレクトにはいくつかの種類があり、それぞれ用途に合致する「30X系のHTTPステータスコード」を付けてリダイレクト設定を行います。
301リダイレクトは、「永続的なリダイレクト」と呼ばれ、主に古いページから新しいページへの移動が、今後ずっと継続される予定の場合に使用されます。例えば、サイトリニューアルでドメインを変更し、旧ドメインはもう使用しない場合などは、301リダイレクトを使用します。
また、301リダイレクトは、古いページの検索エンジンの評価を、転送先ページに引き継ぎたい場合にも有効です。一定の評価を引き継ぐことができるため、新規作成したページ(URL)のSEOを強化することができます。
302リダイレクトは、「一時的なリダイレクト」とも呼ばれ、一時的に違うページに遷移させたい場合に使用されます。例えば、サイトのメンテナンスを実施している間だけ、トップページからメンテナンス告知ページに遷移させたい場合などは、302リダイレクトを使用します。
302リダイレクトの場合、検索エンジンは一時的な変更であることを理解するため、正しい使い方をすれば、ページ評価に大きな悪影響を及ぼす心配はありません。ただし、将来的にページを元の状態に戻し忘れたり、リダイレクト設定を外し忘れるなど、間違った使い方をしてしまうと、ページ評価に悪影響を及ぼす可能性があります。
303、307、308リダイレクトについて 最も使用頻度が高く、検索エンジンの評価に影響するのは「301リダイレクト」と「302リダイレクト」です。この2つのリダイレクトは確実に覚えておきましょう。 その他、30X系リダイレクトには、「303(一時的)」「307(一時的)」「308(永続的)」リダイレクトが存在します。今回は詳しくは解説しませんが、主にフォーム送信後のページ遷移などに使用されます。 |
今すぐメールマーケティングを始めたい方は、 |
以下、主な5つのリダイレクト設定方法をご紹介します。
最も一般的でお勧めのリダイレクト設定方法が、.htaccessファイルで設定する方法です。Apacheウェブサーバーを使用していて、.htaccessファイルの変更が可能な場合に使用できます。
.htaccessリダイレクトの特徴 | |
---|---|
リダイレクト方法 | サーバーサイド |
30X系リダイレクト | 可 |
ページ評価引継 | ◯ |
転送前ページ有無 | 不要 |
以下、用途別のリダイレクト設定の記述例です。.htaccessファイルに記述します。
ドメイン名を変更した場合の301リダイレクト設定
ドメイン名を変更したが、ディレクトリ構造に変化が無い場合に使用します。
RewriteEngine On RewriteCond %{http_host} ^www.旧ドメイン.co.jp RewriteRule ^(.*) https://www.新ドメイン.co.jp/$1 [R=301,L]
ディレクトリ単位での301リダイレクト設定
旧サイトと新サイトでディレクトリ構造が変わった場合などに使用します。
RewriteEngine on RewriteRule ^▲▲▲(.*)$ /●●●$1 [L,R=301] ※備考: ▲▲▲ → 転送前のディレクトリ名を記述 ●●● → 転送後のディレクトリ名を記述
ページ単位での301リダイレクト設定
特定のページから任意のページへリダイレクトさせる場合に使用します。
RewriteEngine on RewriteRule ^/転送前.html$ https://www.sapana.co.jp/転送先.html [L,R=301]
URLの正規化を実施する場合のリダイレクト設定
URLの「index.htmlの有無」「wwwの有無」「httpsとhttp」などの正規化(統合)したい場合の記述例です。
# 「index.html有り」を「index.html無し」にリダイレクトする RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ https://www.sapana.co.jp/$1 [R=301,L]
# 「www無し」を「www有り」にリダイレクトする RewriteEngine on RewriteCond %{ HTTP_HOST} ^https://sapana.co.jp RewriteRule ^(.*)$ https://www.sapana.co.jp/$1 [L,R=301]
# 「http」を「https」にリダイレクトする RewriteEngine on RewriteCond %{ HTTPS} off RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [R=301,L]
404エラーページへのリダイレクト設定
ページ削除等の理由で存在しないページにアクセスした場合に、404エラーページにリダイレクトさせる場合の記述例です。
ErrorDocument 404 /404.html
※事前にオリジナルの404エラーページ(404.html)を作成しておく必要があります。
※本記事でご紹介するソースコードは動作を保証するものではありません。事前にファイルのバックアップを取って、ご利用環境での動作確認を行なってください。
PHPファイルにリダイレクト設定を記述する方法です。主に.htaccessファイルの使用が制限されている場合や、.htaccessでは設定が難しい複雑な条件分岐が必要な場合などに使用されます。
PHPリダイレクトの特徴 | |
---|---|
リダイレクト方法 | サーバーサイド |
30X系リダイレクト | 可 |
ページ評価引継 | ◯ |
転送前ページ有無 | 必要 |
PHPでは、header関数を使ってリダイレクト処理を行います。header関数は、HTMLのDOCTYPE宣言よりも上に記述し、リダイレクトする前にHTMLが読み込まれないようにする必要があります。空白や改行、echoで出力のもNGです。また、exit();で処理を停止することも忘れないようにしましょう。エラーの原因になる場合があります。
以下、転送前のページを訪れたユーザーを転送先ページに移動させるための記述例です。転送前ページ(phpファイル)の先頭部分に記述します。
<?php header('Location: https://転送先URL.co.jp', true, 301); exit(); ?>
※本記事でご紹介するソースコードは動作を保証するものではありません。事前にファイルのバックアップを取って、ご利用環境での動作確認を行なってください。
HTMLファイル内に、JavaScriptを記述してリダイレクトを設定する方法です。主にサーバーサイドでのリダイレクト設定ができない場合に使用されます。
Google検索は、JavaScriptのリダイレクト設定を認識することができるため、一定のページ評価を引き継げるとも言われています。ただし、ブラウザのJavaScriptが無効の場合など、完全ではない可能性があります。また他の検索エンジンがJavaScriptのリダイレクト設定を認識できない可能性もあります。
JavaScriptリダイレクトの特徴 | |
---|---|
リダイレクト方法 | クライアントサイド |
30X系リダイレクト | 不可 |
ページ評価引継 | △ |
転送前ページ有無 | 必要 |
以下、転送前のページを訪れたユーザーを転送先ページに遷移させるための記述例です。転送前ページのheadタグ内に記述します。
<head> <script> window.location.href = "https://転送先URL.co.jp"; </script> </head>
※本記事でご紹介するソースコードは動作を保証するものではありません。事前にファイルのバックアップを取って、ご利用環境での動作確認を行なってください。
転送前のページのmetaタグにmeta refreshという記述方法でリダイレクトを設定する方法です。主にサーバーサイドでのリダイレクト設定ができない場合に使用されます。
meta refreshのリダイレクトは、HTMLのみで実装が可能なことや、転送前のページからリダイレクトするまでの秒数を指定できるという特徴があります。ただし、ページ評価が引き継がれないというデメリットがあるため、SEOを考慮する必要がある場合には不向きな方法です。
meta refreshリダイレクトの特徴 | |
---|---|
リダイレクト方法 | クライアントサイド |
30X系リダイレクト | 不可 |
ページ評価引継 | × |
転送前ページ有無 | 必要 |
以下、転送前のページを訪れたユーザーを●秒後に、転送先ページに遷移させるための記述例です。転送前ページのheadタグ内に記述します。
<head> <meta http-equiv="refresh" content="秒数;URL=https://転送先URL.co.jp"> </head>
※本記事でご紹介するソースコードは動作を保証するものではありません。事前にファイルのバックアップを取って、ご利用環境での動作確認を行なってください。
WordPressを使用している場合は、プラグインを使ってリダイレクトの設定を行うことができます。リダイレクトの専門的な知識が無い場合や、頻繁にリダイレクト設定の追加・更新を行う必要がある場合はプラグインの使用がお勧めです。
WPプラグインリダイレクトの特徴 | |
---|---|
リダイレクト方法 | サーバーサイド |
30X系リダイレクト | 可 |
ページ評価引継 | ◯ |
転送前ページ有無 | 不要 |
WordPressで最も一般的なリダイレクトプラグインは、「Redirection」というプラグインになります。30X系リダイレクト設定にも対応しており、転送履歴や404エラー履歴もログとして出力してくれます。
最後にリダイレクト設定を行う際の注意点をいくつかご紹介しておきます。
リダイレクト設定を追加・変更する場合には、作業前に必ずバックアップを取るようにしましょう。特に.htaccessファイルは、サーバー設定に関わる重要なファイルであるため、設定を間違えるとサイト自体が表示されなくなる危険性もあります。
バックアップを取っておけば、何らかの問題が発生した場合でも、迅速にサイトを元の状態に戻すことができます。
リダイレクト設定に問題がある場合、リダイレクトの無限ループが発生する場合があります。例えば、転送元ページが転送先ページからリダイレクト設定されている場合、リダイレクト処理は延々と繰り返されることになります。
リダイレクトの無限ループが発生すると、ユーザーはページを表示できず、検索エンジンのクローラーも正常な巡回ができません。ユーザービリティとSEOに悪影響を及ぼします。
無限ループを回避するためには、リダイレクト設定を行ったら、必ずブラウザで表示テストを実施しましょう。定期的にGoogleサーチコンソールでリダイレクトエラーの有無を確認することも有効です。
リダイレクト設定が多すぎると、ユーザービリティやサイトのパフォーマンスが低下する可能性があるため、リダイレクト設定は最小限にとどめましょう。削除できるページは削除して、リダイレクト設定も削除しましょう。
また、前述した通り、302リダイレクト(一時的なリダイレクト)については、一時的な期間が終わった時点で必ずリダイレクト設定を削除しましょう。もし一時的な変更ではなくなったのであれば、302リダイレクト(永続的なリダイレクト)に変更をしましょう。
◆コラム:メールのリダイレクト設定について Webサイトと同様に、メールにもリダイレクト設定が存在します。一般的に「転送設定」と呼ばれているものです。ある条件に該当するメールを自動的に別のメールアカウントに自動転送する機能のことです。 ここで一つの疑問として「HTMLメールにmeta refreshリダイレクトは設定できるの…?」 答えは、HTMLメールのソースに、metaタグを組み込むこと自体は可能です。ただし、多くのメールクライアントは、meta refreshリダイレクトをサポートしていないため、リダイレクトは機能しないでしょう。そればかりか、メール内容の改竄だと見なされ、迷惑メール判定を受ける可能性もあります。 では、もう一つの疑問として、「HTMLメール内のリンク先ページにリダイレクトが設定されていても大丈夫…?」 答えは、リンク先には転送先のURLをはじめから設定するべきです。理由は、ユーザーに不安を抱かせる可能性があるからです。例えば、HTMLメールのリンクをクリックしたら、「3秒後にリダイレクトします…」というページが表示されたらどう思うでしょうか?フィッシングメールだと勘違いされても仕方ありません。 また、リンク先のページにクライアントサイドのリダイレクト設定がされている場合、クリック後のランディングページは転送前のページとしてアナリティクスに記録されるため、正確なメール分析を妨げる可能性があります。 |
▼【人気記事】Web担当者、マーケティング担当者の方におすすめ!
いかがでしたでしょうか。リダイレクト設定を行う場合には、用途や目的に合った適切な方法を選択することが重要だということがお分かりいただけたかと思います。間違ったリダイレクト設定は、ユーザービリティの低下や、SEOに悪影響を及ぼす可能性があります。
本記事でご紹介してきた「サーバーサイド or クライアントサイド」、「301 or 302」、「.htaccess設定 or php設定…」といったいくつかの選択肢の中から、最も適したリダイレクト設定を選択できるようにしましょう。
今すぐメールマーケティングを始めたい方は、 |