2016年4月9日土曜日

むーさんのURL転送設定解説

むーさんが301・302とかmeta refreshとかの転送全般を、Googleさんをはじめとした検索エンジンがどう処理するかをわかりやすくまとめてくれました。


○要点:

■転送はあくまでも「正規URLを選ぶヒントの一つ」

他の正規化シグナルとの矛盾は避けましょう。
「301転送してるのにインデックスされるURLがおかしい!」→Canonicalが矛盾してましたとか割とありがちですよね。

■転送方法

  • できれば301・302かJS転送使いましょう。
  • JS転送の場合、URL正規化も忘れずに。L
  • meta refreshは一応使ってもいいけど…くらい。


以下全訳。

=============================

各種転送のガイドライン


いろいろな転送方法がありますが、それぞれの違いを理解しましょう。それぞれの使いどころもわかるし、間違って実装していることを見つけられるようにもなります。Googleは皆さんが間違って実装していても、結構うまく処理するので安心してね :)

転送は基本的に「転送元ページ」から「転送先ページ」に向けて行います。以下では転送元ページをR、転送先ページをSと呼びます。RとSはHTMLページだけじゃなくて、https://example.com/filename.aspみたいな拡張子のページなこともあります。以下の説明は、そうした様々なURLの大半にあてはまります。
写真
転送とは簡単に言うと「ユーザーがRにアクセスしたら、”このページのコンテンツはSにあるよ”と教えてあげて、ブラウザにもSのコンテンツが表示される」というだけです。そんな簡単なことに、なんでいろいろなタイプがあるのでしょう?それぞれの意味を確認してみましょう。

① サーバ―側での転送

サーバー側で転送するため、ユーザーがR側のコンテンツを見ることはありません。

■301転送(恒久的な転送)

サーバーが「永遠に転送を行います。中止したり、転送先が変わることはありません。」と言っているパターン。将来的にはSを利用してください、キャッシュもSにしてくださいと言っています。

Googleをはじめとした検索エンジンは大抵”S”をインデックスして、各種シグナルもRからSに移転させます。サイト移転・サイト改装・HTTPS化などでURLが永遠に切り替わる場合や、「まだ最終的なURLをどうするか決めていないけど、決まるまではこのURLに転送する」という場合にはおすすめです。

■302転送(一時的な転送)

「一時的」という通り、永遠にSに引っ越すわけではないということです。将来的にURLを元に戻したり、ユーザー・デバイス・ユーザーの所在地などに応じて転送を行う場合に使います。キャッシュはできません。

検索エンジンは大抵”R”をインデックスします。常に”S”に転送するつもりがあるのか判断できないためです。ルートURLから下層URLへの転送(例:example.com→example.com/aaa/bbb.php)や、国・デバイス・言語設定などのユーザー属性に応じて転送する場合に使いましょう。


② クライアント側での転送

サーバーはR/S両方のコンテンツを返しますが、ブラウザ側で転送を認識します。

■JavaScript転送

サーバー側での転送ができない場合、次善策としてJavaScriptを使いましょう :)
また、サイトがJavaScriptフレームワークを使っている場合、JavaScript転送以外の方法がないこともあるでしょう。

キャッシュはサーバーの設定に応じて変化します。検索エンジンは「RとSのどちらをインデックスしたらいいのかな?」と頭をひねることになります。シグナルは検索エンジンが正規URLだと判断したほうに帰属します。


■meta refresh転送

JavaScript転送の一種ですが、推奨はしません。
使ってる人もいるので、Googleがサポートを打ち切ることはないと思うけど他の方法を使ったほうがいいよ。

■307転送

「これってサーバ側転送じゃないの?」と思った人もいるよね。でも、実際にはブラウザ側で転送しているんです。例えば「HTTPS化して、HTTP→HTTPSの301を設定して、HSTSも有効にしたサイト」に対して、ブラウザでHTTP版にアクセスした場合。ブラウザはHTTPS版にアクセスするけれど、307転送として記録します。この場合、307っていうのは嘘 :)

○FAQ

■PageRankの処理は?

インデックスされたほうのバージョンに帰属します。どの転送方法を使った場合でも同じ。


■303とか304.5とかの処理は?

使う理由があるなら使っていいよ。
その場合、Google側で正規URLをどちらにするか決めることになる。「こちらをGoogleにインデックスしてほしい」という場合は、Canonicalとかの他の正規化処理も忘れずにね。


■転送数の上限は?

「RからSまでの間の転送」、つまり転送チェーンのことなら、Googleは5回までなら認識する。でも、できるだけ少なくしてね。
「1ウェブサイトあたり何件」という意味なら、上限はないです。

■RankBrainは転送をどう処理する?

RankBrainとは無関係です。


○ 最後に

ウェブページがすべて完全な設定を使っているわけではないので、検索エンジンもそれをうまく処理しないといけません。恒久的転送なのに、一時的転送の設定を利用しているサイトもありますし、逆のパターンもあります。だから、転送も検索エンジンからすると正しいURLを選び出す(=URLの正規化)のためのシグナルの一つにすぎません。

簡単に言うと、301と302の場合
301:原則的にはSをインデックス、転送をキャッシュする
302:原則的にはRをインデックス、転送をキャッシュしない

以上の点を理解して、適切な転送方法を選んでください。
わかりにくいところがあったら言ってね :)

URLの正規化についてより詳しく知りたい場合はこちらも。
=============================

以上。

正規URLを選ぶヒントとしては転送・canonicalタグなどのシグナル全般も使っているし、HTTPステータスコードについては出している期間も使っています。
「ずーっと302転送してるけど、これってもう元に戻す気ないよね。これからは転送先をインデックスするね」とか
「503(一時的に利用不能)がずーっと出てるけど、これって実質404だよね。そのうちインデックスから消すね」とか。出しっぱなしに注意。