開発中サイトを検索結果にインデックスさせない方法: 推奨はユーザー認証かIP制限

[レベル: 初級]

公開前の開発中サイトが検索にインデックスされないようにするにはどうしたらいいか?

オフィスアワーで出たこの質問に Google の John Mueller(ジョン・ミューラー)氏が回答しました。

推奨: ユーザー認証・IP 制限

開発中サイトのインデックスを防止するための最良の方法として次の 2 つをミューラー氏は提案しました。

  • ユーザー認証
  • IP アドレス制限

ユーザー認証

ユーザー名とパスワードでアクセス制限をかけます。
Googlebot は、適切なユーザー名とパスワードを送信できないのでそのサイトのページをクロールもインデックスもできません。
加えて、関係者以外のユーザーのアクセスも防げます。

最も手堅い方法です。

ユーザー認証は、簡単なものであれば .htaccess で設定できるし CMS の機能を使ってもいいでしょう。
検索すれば、たくさんの情報が見つかります。

IP アドレス制限

開発中サイトにアクセスできるコンピュータの IP アドレスを制限します。
許可された PC からのみ閲覧できます。

アクセスするコンピュータの IP が固定されているならこの方法も悪くありません。

ただし、自宅からアクセスするとかデータ回線のスマホからアクセスするといった場合には割り振られる IP アドレスが通常は固定ではないので、運用が難しい場面が出てくるかもしれません。

非推奨: robots.txt・noindex タグ

開発中のサイトのインデックス阻止策として、よく使われる別の 2 つの方法にもミューラー氏は言及しました。
とはいえ、おすすめの方法ではありません。

robots.txt でブロック

robots.txt で、開発中サイトのクロールをブロックします。

たいていの場合、検索結果に出てくることはありません。
しかし、そのサイトのページにどこかからリンクが張られていて、そのリンクを Googlebot が発見すると検索結果に出てくることがありえます。

ページタイトルやスニペットは(そのページをクロールできないので)出てきませんが、URL が検索結果に出てきます。
robots.txt では完全にインデックスを防ぐことはできません。

また、ありがちなミスとしてあるのが、正式公開後も robots.txt でブロックしたままにしておくことです。
今度は反対に、検索結果に出てほしいのに出てこないトラブルが発生してしまいます。

さらに、ユーザー認証や IP アドレス制限とは異なり、URL を知っていればだれでもアクセスできます

noindex タグでインデックス拒否

noindex robots meta タグでインデックスを防ぐこともできます。

クロールを制御する robots.txt とは違い、noindex はインデックスを制御する仕組みなので、確実にインデックスさせなくできます(注: robots.txt と noindex の併用は無意味なのでやらないこと)。

ただし、noindex によるインデックス防止も robots.txt と同じ欠点があります。

公開したあとも noindex をつけっぱなしにしておくミスが発生します。
こうした例は珍しくありません。
URL を知っていれば、関係者以外でも開発中サイトにアクセスできます。

ブラウザで閲覧する際には目には見えない robots.txt や noindex とは異なり、公開後にもユーザー認証や IP アドレス制限がかかったままだったらさすがに誰かがすぐに気づくでしょう。
ということで、robots.txt や noindex ほど手軽ではありませんが、開発中サイトを検索結果に出ないようにするにはユーザー認証か IP アドレス制限がもっとも推奨される手段です。