
サイトを移転する時やページのURL(スラッグ)を変更した時にリダイレクト設定も一緒にしなくちゃ!と思い。
リダイレクトのやり方を色々と調べてみると情報が色々と出てきて、少しこんがらがったので私なりに必要な情報を精査し、まとめました。
多分ここに書かれていることを抑えておけば、30系列のリダイレクト処理に関しては大丈夫でしょう。
備忘録として残しているので、新たな情報や役立つと思ったことがあれば追記していきます。
もしリダイレクトの設定方法を知りたい方は以下の記事をお読み下さい




301と302の使い分け


リダイレクト設定を行いたいと調べてみると殆どのサイトでは301リダイレクトと302リダイレクトが紹介されています。
普通にサイトを作るだけであればこの2つだけ抑えておけば大丈夫なので、301と302の違いをここでしっかりと理解しておきましょう。
301リダイレクトの特徴
301リダイレクトは301 Permanent Redirect (恒久的な転送)と言われ、設定したら今後永遠に変更の予定はない。転送先のURLを今後は重要視しなさいと命令する宣言です。
検索エンジンは転送先をインデックスし、キャッシュもされます。また転送元の評価を全て転送先に引き継ぎます。
302リダイレクトの特徴
302リダイレクトは302 Temporary Redirect (一時的な転送)と言われ、名前のTemporaryが示すとおり一時的にリダイレクトをしているに過ぎません。
ですから、この転送設定は将来的には変更される可能性があるため、あまり重要視しないで元のURLを重要視しなさいと命令する宣言です。
検索エンジンは転送元をインデックスし、転送先のページはキャッシュされません。また転送元の評価は転送先には引き継ぎません。
301リダイレクト | 302リダイレクト | |
---|---|---|
インデックス | 転送先 | 転送元 |
キャッシュ | する | しない |
評価引き継ぎ | する | しない |
リダイレクト元・リダイレクト先どちらを検索エンジンはインデックスするのかを指してます。
転送先のコンテンツをブラウザがキャッシュ出来るかどうかの事。
しない場合はリダイレクトした先では常に最新のページを取得し表示します。
新URLに前URLの評価や被リンク情報など全て譲渡するかどうかの事。
2つの違いを解説


インデックスと評価引き継ぎ項目を併せて見てみると直ぐ分かるのですが、サイト移転などを行い、前の検索順位を維持したまま新URLを検索エンジンにインデックスして貰いたいと考えるなら301リダイレクトを使わなければ意味がありません。
302リダイレクトは転送先のURLをインデックスはしませんし評価も譲渡せず、転送元URLを重要視したまま一時的なページに飛ばすだけの機能です。
転送先キャッシュに関しては後のキャッシュについての項目で詳しく説明します。
301リダイレクトを使う時とは?
301リダイレクトの使い所はサイト移転の時に使うのが一般的でしょう。
ドメインを新規に取得し、新しいドメインに変える時。
無料ブログを辞めて独自ドメインのWordPressにお引越しする時など。
302リダイレクトを使う時とは?
302リダイレクトの使い所はテンプレートを作る方以外はあまり用途は無いんじゃないかな?と思います。
一時的なリダイレクトのため新しいURLはインデックスされませんし、ブラウザキャッシュもされず常に最新の情報が表示されます。
最近はレスポンシブデザインが主流のため、デバイス毎に専用のページを作成し302リダイレクトするテンプレートはみかけなくなりましたね。
昔よく使われていた振り分け設定では/にアクセスすると
デバイス | 転移先 |
---|---|
PC | /index.html |
タブレット | /tab/index.html |
スマホ | /sp/index.html |
上記のように専用のページへ飛ばしたりすることが多かったのですが、毎回違うページを作ったりするのは手間だったので廃れてきたのでしょう。
レスポンシブデザインでは出来ない詳細なカスタマイズやコンテンツの作り込みがデバイス毎に出来るのは魅力的だったのですが利便性には敵わなかったよ…って事ですね。
302を翻訳振り分けで使う


しかし言語による振り分けは今でも使い所はあるでしょう。
この使い方は機械翻訳に頼らない人間の手で行う完全翻訳にて効果を発揮します。
メイン言語は日本語だけど、英語のページを用意したいなぁと考えた時。
言語だけ変え同一コンテンツのページを新たに作成したら検索エンジンはミラーページ・コピペサイトと見なしてしまう可能性があります。
それを避ける方法が302リダイレクトであり、英語圏のアクセスはIPで振り分け英語ページに飛ばしましょう。
言語 | 転移先 |
---|---|
日本語 | /index.html |
英語 | /english.html[R=302] |
上記の例では日本語のページが検索エンジンにインデックスされ英語のページはインデックスされません。
どの言語の客を集客したいか・優先したいかでインデックスさせるページが変わるかと思いますが、検索エンジンのペナルティを受けず完全翻訳されているマルチサイトを1ドメイン内で作りたいのであれば302リダイレクトを使うと良いでしょう。
まぁグローバル企業に多く見られる自動翻訳を使わない完全翻訳サイトでは302リダイレクトを使わずに、サブディレクトリやサブドメインにja/en/ch/frなどの国名を含めた専用サイトを別途作り。訪問者が自分の言語をプルダウンメニューで勝手に選んで言語切替を行う(専用サイトにアクセスする)方法が多いですね。
そう考えると302リダイレクトで言語を自動振り分けする方法は滅多に使われないのかな。と思ってしまいますね。
年齢認証を302リダイレクトで行う


昔のアダルトサイトは302リダイレクトをよく使ってたと思うんですけど、最近はPHPなどサーバー言語でクッションページを表示するようになり、あまり使われなくなったみたいですね。
今でも使われてると思い、この記事を執筆する際に有名な販売サイトの年齢認証の仕組みを調べてみたら全く見つからない(^^;
最近の年齢認証はcookieやSessionで年齢認証済みか判断をし、確認されていなければ(cookieが存在しなければ)クッションページを表示。確認済みの場合は正しいページを表示する。
上記の処理をPHP内部で行いリダイレクトを使わないのが多いですね。
昔みたいに一ページずつページを作ったECサイトとは違い、今はDBから情報だけ抜き出してページを表示するのが主流ですからPHPで出来ることは全てそちらで処理を済ませるといった感じでしょうか。
まぁ今でも年齢認証に302リダイレクトは使えないことはないので、アダルトサイトを運営する際にリダイレクトを使いたいと思う方は以下の方法で順に作ってみると良いでしょう。
内部処理 | 表示方法 |
---|---|
アクセス | /adult.html |
cookie判定 | 年齢認証済みでなければ302リダイレクト |
年齢確認 | /cushion.html[R=302] |
今はサーバーサイドのプログラムが柔軟になってきたので302リダイレクトを使う機会が少なくなってきましたが、htmlのみで作成された小規模サイトなどで使う場合には使い勝手が良いと思うので使い方を覚えておいて損はないです。
キャッシュについて


キャッシュ機能についてですが、これはブラウザ側でコンテンツを一時保存するか、しないかの問題です。
301リダイレクトは恒久的な遷移ですのでキャッシュを普通に行いますが、302は一時的な遷移のためキャッシュを行いません。
302を使う必要があるデバイスや翻訳の振り分けで301リダイレクトを間違って使用した場合、遷移先では常にキャッシュ済みのコンテンツが表示されるため、設定ミスには気をつけて下さい。
頭の片隅にでも301はキャッシュされる。
302はキャッシュされないと覚えておきましょう。
してはいけない3つのNG


リダイレクト処理を行う上で絶対にしてはいけない3つのお約束
リダイレクト設定を行う上で上記3点は出来る限り辞めましょう。
それでは順に詳しい解説をしていきます。
トップページに全て飛ばさない


ドメイン移転などを行った時に、前のサイトにはあったページが新しいサイトには無い・不要になったから削除した。だから無いページの301リダイレクト設定は全てサイトTOPに飛ばしてしまえ!という事をしてはいけません。
新しいサイトでは要らないからページを削除したけれど、評価や被リンクを捨てるのはもったいない。それならトップページに引き継いで貰おう!と考えるのは分からなくもないのですが、これはマイナス効果になってしまいます。
なぜなら301リダイレクトは恒久的な移動であり、同一コンテンツだけどURLだけ変わったよー。という用途でしか使えない機能ですから、飛んだページが同一コンテンツでなければ間違った使い方となるのです。
例えば、あなたが引っ越し業者に依頼をして荷物を運んで貰ったとしましょうか。仕事が忙しくて引っ越しの立ち会いが出来ないから前もって全て新住居に荷物を届けておいて!とお願いをし、引越し業者も喜んで!と迅速に対応をしました。
さて仕事も一段落し、新住居に行ってみるか!と意気揚々と足を運んでみたらビックリ。届いていた荷物が違う。足りない。別のものに変わっていたら、あなたはどう思いますか?
ふざけんな!何勝手なことしてんねん!と怒るでしょう。まぁ誰でも怒りますよね(笑)
頼んだものをそのまま移動するだけで良いのに、勝手に中身を別物にされていたら誰でも怒りますよ。
でもこれが301リダイレクトだと、意外とみんなやっちゃうんですよね。
検索エンジンからしたら住所(URL)が変わったけど、装飾は前と全て一緒なんですよー。と聞かされて新しいURLに足を運んでみると全くの別物(違うコンテンツ)だったら、どう思われるでしょうか?
違う人の家(サイト)かな?前と全然中身が違うから関連性のない他人の家(関係ないサイト)かな?と思われてもしょうがない。逆に嘘の情報に騙された。と怒るかもしれませんね。
あくまで301リダイレクトは同一コンテンツでURLだけが変わった時のみ使える機能ですから、遷移先が同じコンテンツでないならば、潔く切り捨てるほうがサイト全体の評価としては高くなります。
ページを削除したときの適切な運用例


リダイレクトさせるべき対応するページが新しいサイトには存在しないけれど、削除したページの評価を全て新サイトへ引き継ぎたい。
もったいない精神にあふれる方は以下の方法を取る事をおすすめ致します。
対応するページを新規作成し、301リダイレクトをする
301の用途を遵守した方法です。私も必ずこの方法を取ります。
面倒でも手間でも横着せず、まっとうな運営をしたいならこの方法を取るのがベストです。
404か410でページが無くなったことを伝える。
インデックスからもページが削除され何も残りませんが、横着をしてサイトの評価を下げるよりも潔い方法で適切な対応方法とも言えます。
404はページは一時的に見つかりませんというエラーページで、410は永久的にページが削除されたという事を伝えます。一時的と恒久的な所は301と302に似てますね。
404はクローラーが頻繁に訪れますが、410はキッパリと削除したと通知する方法ですので410の方が早くインデックスから削除されます。もしページを削除したなら404エラーよりも410を使いましょう。
この方法はもったいない。削除するのは・・・という抵抗感があるのであれば横着せずに方法1に取り組んで下さい。
ページがなくなりましたという説明ページを作り、この案内ページへ全て301リダイレクトする。
トップページに全てリダイレクトすると評価を下げる危険性があるため、クッションページとして案内ページを作り、そこに301リダイレクトを集中させる方法です。
まぁなんというか往生際が悪いと言われればそれまでなのですが(笑)
削除するのも嫌だ。新しく作るのも面倒で嫌だ。だけど評価だけは引き継ぎたいというわがままさん向けの対応です。
トップに301リダイレクトを集中させると危険なため、訪問者には親切と思える案内ページ(該当ページは削除されました。他の似た様なページを見てみませんか?というリンク集的なページ)に飛ばしてアクセスを稼ごうという魂胆が見え隠れするやり方です。
トップページに301を飛ばさないので、万が一評価が下がったとしても案内ページだけ被害を受けるので一見大丈夫そうに見えますが、301リダイレクトの目的に沿った対応方法ではないため好ましくないやり方に間違いありません。
案内ページを作成する方法を実行する場合は自己責任の元やって下さい。
おすすめは対応する適切なページを新規に作る方法です。それが出来ないなら410を使い潔く前のサイトの評価を切り捨てましょう。
クライアントサイドのリダイレクトは使わない


リダイレクト処理をする方法は3つあります。
以下おすすめ順に簡単な解説を行います。
リダイレクト処理は基本的にサーバーサイド(.htaccessやPHPなどサーバーの方で処理する方法)で行うのが好ましいです。
アクセスした時点で即実行されるため処理速度や待ち時間など無いに等しく、何か特殊な問題が無い限りはサーバーサイドで行うと覚えておきましょう。
無料ブログを使っていたり、格安レンタルサーバーで.htaccess非対応・プログラム使用禁止など。サーバー側でリダイレクト処理が行えない所があります。その場合に限りjavascriptのリダイレクトを使いましょう。
検索エンジンはjavascriptのリダイレクトにも対応はしている(サーバーサイドが使えない環境があると認識している)のですが、コードが読み込まれるまで処理が実行されないため転送までの待ち時間がある。
閲覧者がブラウザのjavascriptを無効にしていた場合はリダイレクトがされないなど不便な点が含まれているため、サーバーサイドよりもおすすめは出来ません。
location.href = "https://php-labs.com";
無料ブログではjavascriptさえも使えない所が稀にあるため、サーバーサイドやjavascriptを使えない場合に限りhtmlのmeta refreshによるリダイレクトを最終手段として使いましょう。
しかし、これは2000年からW3Cでは非推奨
となっておりGoogleでもあまり推奨していない(上記2点が使えるならそちらを使えと言っている)使い方のため、出来るだけ使わないようにしましょう。
<meta http-equiv="refresh" content="0;URL='https://php-labs.com'">
リダイレクトを行う場合には0秒を指定しておきましょう。
リダイレクトの回数は5回まで


Googleはリダイレクトを最大5回まで追跡します。
これはGoogleが独自に決めた回数ではなく、RFC 1945
上記で定義した3xx系のリダイレクトに関する内容に従っているだけです。
6回以上のリダイレクトは追跡を行わず404として処理されますので、最大5回までにリダイレクトは収めると覚えておきましょう。
ページ評価を引き継ぎたい場合はどっち?


現在Googleはページランクをあまり重要視していないと聞きますが、現在検索エンジンの順位付けに使用されている情報(評価)を全て引き継ぎたいと思った場合は301?302?どちらを使えば良いの?と悩んだら…。
迷わず301を使いましょう。
散々上記の項目で説明を行ってきましたが、301と302の違いは恒久的か一時的かの違いです。301は恒久的ですから、全ての評価を新しいURLに譲渡します。
じゃあ302は一時的だから評価を渡さないのか?と言えば、そうでもありません。
条件によっては302リダイレクトも評価を譲渡します。
その条件とは、一時的なリダイレクトである302リダイレクトを恒久的に設定している場合の時です。
まぁ要するに一時的なリダレクトとして設定されているのに3年や5年、10年などずっと302のままなら一時的じゃないでしょ!?とGoogleが判断した時は301リダイレクトと同等とみなされ、301と同じ措置が行われます。
これは301リダイレクトを設定したと思ったのに間違って302リダイレクトをしてしまった人など向けの救済措置ですね。(この例は新しいURLへ評価を302でも譲渡している)
どんなに正しく設定したと思っても、些細なミスをする人は少なからず居るでしょう。この様な場合を想定して、Googleは状況と照らし合わせて細かな修正作業を常に行っています。
またこの様な措置からして、301や302どちらも評価を引き継ぐと捉えても問題ありません。大きな違いは検索エンジンにインデックス(表示)されるURLが転送先(301)か転送元(302)どちらになるか、という点だけです。
じゃあ、どっちも使っても良いんじゃない?と言うわけではなく、あくまで上記の修正は302の設定ミスによるGoogleの救済措置であり、間違った使い方でもありますから。恒久的にURL移動を行い、評価を譲渡したい場合は301を素直に使いましょう。
Googleが自動的に用途を判断する可能性は極力排除し、適切な設定を常に心がけて下さい。
30*系列のリダイレクトは?


必要であるならば使用しても構いません。
しかし、その使い方・用途がよく分からず混乱するのであれば301と302のリダイレクトのみにしましょう。
たぶん8割か9割ぐらいの人は301か302で事足りると思うので、今回の記事で説明した違いを十分に理解し使い分けるだけで大丈夫でしょう。
リダイレクトはいつまで置いとけば良い?


これに関しては2つの意見を見つけました。
Matt Cutts(マット・カッツ)氏はずっと残しておくべきという意見。
前サイトの情報を引き継ぎたい場合は永遠に残しておくべきだと強調しています。
ジョンミューラー氏の1年後には削除しても良いという意見
Googleが完全に認識するのに1年は余裕を持って残しておいたほうが良い。その後は好きにしたら良いけど、なるべく残しておいたほうが良いよ。との事。
2つの意見の共通点を見てみると、なるべく残しておいたほうが良い。
という点で一致しています。
これは私の意見も完全に同意でして、昨今SNSが主流で、アクセスの流動も多いですよね。
一昔前にみたいにGoogle(検索エンジン)さえ新しいサイトのURLを認識していれば問題ない。と言えない環境になっています。
例えばTwitterやInstagram、Facebook、他サイトなど。
そこで紹介されたURLはずっと残り続けます。
もしリダイレクト処理を削除すれば、上記SNSからのアクセスは前サイトか404エラーページに飛んでしまい、全てのアクセスを取りこぼしてしまいます。
検索エンジンだけ見据えていた昔と今では、ネット環境が大きく変わってきている現象の一つですね。
あなたも一度は経験ありませんか?
お、気になる情報を見つけてURLにアクセスしたらページが存在しません。
このドメインを購入したい方はこちら~。みたいなムカつくページに飛ばされた経験が…。
検索エンジンから流入してくるアクセスよりも、SNSから流入してくるアクセスの方が自主的にリンクをクリックしている分、目的が明確で濃いお客・見込み客になる可能性が高いのに、無駄にするのは少しモッタイナイのは誰が見ても分かりますよね。
SEOの観点から見ると?


SEOの観点からも残しておくのが無難でしょう。
少し前にGoogleの検索順位は何を重要視しているのか?が公式で発言され話題になった時期がありました。
その2つはコンテンツの質と被リンクの数。
ザックリと解説すると・・・。
ためにならない記事やコピペ記事。アフィリエイトリンクだけの記事。嘘の記事は害悪であり、こればかりが上位表示される検索エンジンをあなたは使いたいと思いますか?
検索エンジンの利用価値って、打ち込んだキーワードに対して適切な解決策を提示してくれるサイトを表示してくれる部分に価値があるのであって、それが出来ないのであれば検索エンジンは無価値と言えます。
コンテンツの質が同一であったと仮定した場合、どちらがより良質な記事なのか?一瞬で判断できませんよね。その時に使われる判断要素に被リンクが使われます。
100のサイトからこの記事すごいよ!と評価されている記事と、10のサイトからこの記事すごいよ!と評価されている2つの記事があれば、当然100の方がより良いのでは?という単純な判断方法です。
さて、今回のリダイレクト解説記事で重要なのは被リンクの要素です。
301リダイレクトは被リンクも全て引き継ぐのですが、リダイレクトを削除すると被リンクも削除されたと判断される可能性が高いです。
リダイレクト処理は1年もすればGoogleなどの検索エンジンは新サイトのURLに全て変わっていることでしょう。
ですが他サイトで紹介された被リンクはずっと過去のサイトURLにリンクを飛ばし続けます。
もしリダイレクトを削除していたら、被リンク元からアクセスしても新しいサイトには飛ばなくなるため、Googleが被リンクを外されたと認識し、評価が下がってしまう可能性が高まります。
ですから、どうしてもリダイレクトを削除したい!
と考えるのであれば、過去のサイトの評価・関係は全て断ち切っても良い。と思えた時のみ行うようにしましょう。
またリダイレクトを辞めると決めたなら、前のサイトも完全に削除して下さい。
おわりに


まとめていて思ったのですが、予想以上に長くなりましたね…。
思いついたらまた追記するかも?しれませんが、基本はここに書いていることを守れば問題ないです。
リダイレクトは永久的に残しておくのが最も良く。前の評価はもう完全に要らない。被リンクなんかも要らないと思えるまではずっと前のドメインは保有しとけ!と言うのは特に大事だと考えてます。
過去のドメイン保持による継続的な金銭的負担が発生するデメリットはもちろんありますが、ドメイン代をケチったばかりに新規サイトの評価が下ってしまい、掲載順位下落による金銭的損失の方が大きいと悔やんでも時既に遅しですからね…。
サイトを完全放棄する時までは前のドメインを保持しておく事をお勧めします。
まぁ新規サイトや小規模サイトなら切り捨てても良いでしょうけど、数年運営したサイトや100記事以上のサイトだと、残しておいた方がやはりお得なのは明らかですし、中古ドメインとしての価値も高いですから持っておきましょう。
まとめ
リダイレクトに関する記事一覧
これも一緒に読めばリダイレクトに関する内容はバッチリ!





