SEO研究所サクラサクラボ

SEO・コンテンツマーケティングを成功に導くパートナー

  • SEO・コンテンツマーケティングなら
    サクラサクマーケティングにお任せください。

JavaScriptでリダイレクト(転送)を行う方法と注意点

【無料】ねぎお社長のSEOメールマガジン※30秒で登録完了
購読者数は既18000人を突破!
SEO業界20年のねぎお社長が最新情報、ノウハウ、考え方などこのメルマガでしが入手できない情報を配信。SEO,コンテンツマーケティングで売上を上げたい方は、是非、ご購読下さい。
詳細はこちら

リダイレクトとは

リダイレクトという言葉はリダイレクション(向きを変える)という意味で、Webページに訪れたユーザーを別のWebページに転送することを言います。
主にWebページが移転した時や、メンテナンスの時や一時的に封鎖したい場合など、Webページを転送するために使われます。
リダイレクトには大きく分けて3つの方法があります。

HTTPによるリダイレクト

HTTPによるリダイレクトは移転前のページ評価を移転後のページに最も確実に引き継ぐと言われているため、SEO上最もおすすめされているのがこの方法です。
こちらはサーバーを経由してリダイレクトを実行する方法で、一般的によく使われています。
ただし、サーバーの種類によっては実行できない可能性があります。

HTTPによるリダイレクトはサーバーのレスポンスコードに応じて301や302などに分けられます。

・301リダイレクト(恒久的な転送)
多くの方が利用するリダイレクト方法です。
恒久的な転送を目的として利用するので、家の引越しをして住所変更をしたようなイメージです。

・302リダイレクト(一時的な転送)
301リダイレクトに比べあまり使う頻度は少ないのですが、一時的にWebページを移転する時などに利用されています。
出張で一時的に家を引越ししたけど、住所はそのままの状態というイメージです。301の代わりに誤用されているような場合であっても、Googleは理解して評価を引き継ぎますが、301リダイレクトと比べると評価が移るまでにやや時間を要することがあります。
また、301リダイレクトと同様にページの評価も引き継ぎます。

なお、302リダイレクトは長期間設置し続けると、結果的に301リダイレクトとして扱われる旨もコメントされている為、認識しておいたほうが良いでしょう。

JavaScriptによるリダイレクト

サーバーの関係上、HTTPによるリダイレクトが実行できない場合、JavaScriptは便利な代替策になります。
JavaScriptは、HTTPによるリダイレクトがサーバー上で処理される一方、JavaScriptはブラウザ側で実行されるものです。
GoogleのクローラーもJavaScriptを実行できるため、転送されていることを認識でき、またページ評価を移転後のページに引き継いでくれます。

meta refreshによるリダイレクト

こちらもHTTPによるリダイレクトが実行できない場合に利用されることが多い方法です。
URLの評価を全て引き継ぐ保証が無いので、検索順位に悪影響が出る可能性があるほか、W3C(Webで使用されるHTMLを含む技術の規格化を行っている団体)では2000年からmeta refreshの使用を推奨していません。
依然としてGoogleはサポートを続けていますが、できるだけ避けたい方法です。
どうしても方法がない場合は、ページ遷移させるまでの時間を0秒に指定する必要があります。

metaリフレッシュの0秒指定
<meta http-equiv=”refresh” content=”0;URL=https://exsample.co.jp/”>

※補足ですが、JavaScriptやmeta refreshによる転送はサーバーを経由しない方法なので、厳密にはリダイレクトではありません

JavaScriptでリダイレクトするをする状況とは

JavaScriptのリダイレクトは、301リダイレクトなどのHTTPリダイレクトができない場合に使用する方法です。JavaScriptは、サーバー側で設定するものではなく、HTTPファイルのソースに直接コードを書くことができるため、サーバーにアクセスできないときなどに使用されることが多いです。

Googleの公式にも、サイト移転等には301リダイレクトが最適ですが、サーバーにアクセスできない場合は、JavaScriptを使用したリダイレクトで代用可能であることが明記されています。

なお、リダイレクトの優先順位としては、
1.サーバー側の301リダイレクト
2.meta refresh リダイレクト
3.JavaScript リダイレクト

の順番となっています。
JavaScript リダイレクト図https://developers.google.com/search/docs/crawling-indexing/301-redirects?hl=ja

JavaScriptによる転送方法

JavaScriptはブラウザ上で動くプログラムの1種です。
転送を行う際はHTMLファイルの<head>~</head>内に以下のように記述します。

<script type=”text/JavaScript”>
<!–
setTimeout(“link()”, 0);
function link(){
location.href=’https://(転送先のURL)’;
}
–>
</script>

この時、SEOを考慮するとsetTimeout内の数字は0がお勧めです。

JavaScriptによる転送時の注意点

リダイレクトが実行できない場合がある

現在では、ほとんどのブラウザでJavaScriptを実行することができるものの、サポートしていないブラウザがあると、そのユーザーは転送されません。
また、JavaScriptをサポートするブラウザであっても、意図的にJavaScriptを許可しない設定にしている場合も転送されません。

加えて、ページ移転後もJavaScriptを実行させるために移転前のページを残しておく必要があるというデメリットもあります。

ただ転送するだけではアクセス解析上の問題が生じることがある

転送前のページにどのようなチャネルでたどり着いていたとしても、JavaScriptによって転送された後は流入チャネルがdirectとして計測されてしまう問題があります。

また、リダイレクト前にURLにアクセス解析用等パラメータを付与していた場合であっても、そのままではパラメータは保持されません。(常にJavaScript内に指定された、URLパラメータのないURLに転送されてしまう)

このような点が問題になる場合はJavaScriptに手を加えておく必要があります。
詳しくは以下を参考ください。
https://qiita.com/1987yama3/items/5ff58b6195fe6c3f268b

JavaScriptを使ったリダイレクト(転送)の注意点・デメリット
・リダイレクト前のページがdirectとなる
・ページを残し続けなければならない
・ブラウザの設定状況によって機能しない場合がある

まとめ

サイトのリニューアルや移転など、リダイレクトを使用するケースは多くあります。
JavaScriptを使ったリダイレクトはHTTPリダイレクトに比べてデメリットがあり、Googleもリダイレクト方法の中では、HTTPリダイレクト、metaリフレッシュに次いで、3番目の手段として明記しています。

サーバー環境などの理由でHTTP301リダイレクトが使えない場合の代替手段として、使用するようにしましょう。

【無料ダウンロード】
『いまさら聞けないリダイレクト基礎知識』
リダイレクトの基礎から使い分けまで、
実践的な内容も盛り込んだPDFをダウンロードいただけます。
ぜひご活用ください!
https://www.sakurasaku-marketing.co.jp/labo/free-document/redirect

   

    ねぎお社長のSEOメールマガジン(無料)

    【登録者1.8万人以上】SEOの最新情報をお届け!






    プライバシーポリシー

           

    執筆者 / 監修者

    2013年株式会社ブレインネットに入社し、会社合併を経てサクラサクマーケティング株式会社に合流した後も現在に至るまでSEOコンサルタントとして大小問わず様々なクライアントの集客向上に貢献。
    特に大規模サイトのSEOを得意としているほか、自社メディアのブログの作成・監修を行い、数多くのキーワードで上位表示を達成している。

    その他のブログ記事

    Return Top