2015.12.01SEO記事一覧

ステージング環境(開発環境・デモ環境・テストサイト)を検索結果から削除する方法

  • このエントリーをはてなブックマークに追加

to-delete-staging-environment-from-search-results

みなさんこんにちは。SEOまとめこと片川と申します。

先日デジタルマーケティング研究所さんに寄稿させていただきましたコラムが想像以上の反響をいただきまして(ありがとうございます!)、おかげさまで再びSEOの記事を掲載していただくこととなりました。

ステージング環境(もしくは開発環境)用ドメインがGoogleにインデックスされてしまっている問題

前回はSEOのアクセス解析に関する比較的旬なトピックを取り扱わせていただいたわけですが、今回はそれと全く関係の無い話題です(すいません)。

実は、私のお客様ではここ最近立て続けに「Webサイトのステージング環境(もしくは開発環境)用ドメインがGoogleにインデックスされてしまっている」という問題が確認されております。

一般的に、Webサイト開発のステージングでは本番サイトと同等のサーバー環境を用意し、サブドメイン(「www2.」や「staging.」などをよく使いますね)もしくは別立ての独自ドメインを用いてコピーサイトを作成するケースがほとんどかと思います。このドメインがGoogleに認識され、検索結果に出現するのが可能な状況になってしまっていることがとても多いのです。

to-delete-staging-environment-from-search-results_01

※「www2.」サブドメインで構築されたステージング環境内のページがGoogleにインデックスされてしまっている様子。
 
実際、多忙を極めるWebサイトの開発段階では考えることが多すぎるため与件外であるSEO、よもやGoogleのロボット(クローラー)のことまで気にかけている暇は無いというのが多くの制作関係者様の本音かと思います。

しかし、後述いたします通りステージング環境や開発環境用ドメインがインデックスされてしまいますと、SEOだけの問題にとどまらずセキュリティ的にもかなりのリスクとなります。知ってさえいれば対策そのものはほとんど工数のかからない処理ですので、決して目新しくはないものの重要なこのテーマについてWeb担当者さんや開発サイドの皆様にあらためて認識を深めていただければと思い、コラムにて取り上げさせていただくことといたしました。

なぜステージング環境がインデックスされてしまうことがまずいのか?

ステージング環境(開発環境・デモ環境・テストサイト)がインデックスされてしまうことの問題点は主に以下の2点です。

  1. Googleが「本当のドメイン」を認識することを難しくしてしまい、本番環境でない方のサイトを検索結果に表示させてしまう可能性がある。場合によっては管理が低品質なサイトとして評価を下げられる恐れがある。(SEOの問題)
  2.  

  3. 上記の経路にて、ステージング用サイト経由を閲覧したユーザーがメンテナンスされていない情報に触れたり、届くことのない問い合わせや既に売り切れとなった商品を購入しトラブルになる可能性がある。(セキュリティの問題)

実際、先ほどキャプチャにてご覧いただいたECサイトではテスト用ドメインから購入が発生してしまい、本番環境と異なるDBに顧客情報が格納されたためお客様対応が遅れるという事案が発生しています。

なぜGoogleはどこからもリンクされていないドメイン・URLをインデックスすることができるのか?

さて、ここでどうしてGoogleがステージング環境をインデックスすることができるのかという疑問を思い浮かべた方はなかなかのSEO通ですね。

というのも、一般的にGoogleは全世界のWebサイトに埋め込まれているリンクのURLをたどってインデックスするものと言われており、どこからもリンクされていないはずのステージング環境をクロールできるはずが無いからです。

先ほど例として取り上げたECサイトのテスト用ドメインも公開されたリンクを1本も持っていないサイトでしたが、結果としてGoogleに認識されてしまっています。
この疑問に対して私も明確な回答をすることができないのですが、いくつかの理由が考えられると思います。

  • ドメイン管理会社が保有するWebサイトで公開されていた
  • GoogleはGoogle Chrome等を使ってリンク以外のリソースからURLの収集を行っている

などなど。

ここでは「URLを知っているのは社内のメンバーだけだから大丈夫」ということは決して無い、ということをご認識いただければと思います。

制作段階で取るべき対策

to-delete-staging-environment-from-search-results_02

前置きが長くなってしまい申し訳ございません、それでは具体的にステージング環境に施すべき対策をご案内いたします。

対策としては「特定のIPアドレス(お客様と制作会社、など)以外はステージング環境にアクセスできないように制御してしまう」というのが最もシンプルかつ簡単な方法となるかと思います。

ここで特定のIPアドレスを指定する方法(いわゆるホワイトリスト型)の設定を取らざるを得ないのは、Googleのロボットが保有するIPアドレスは日夜変動しており非公開となっているためです。さらに合わせてベーシック認証を設定しておけば盤石かと思います。
 
しかし、諸事情によりIP制限をかけられないことも考えられます。例えば以下ようなケースです。

  • 無線LANが整備されておらずスマホでの動作確認がしにくくなる
  • 制作担当者のタスクがたまりすぎていてすぐの設定が難しい(あるいは頼みづらい)

このような場合、理想とはいいがたいものの「robots.txt」を使ってGoogleを制御する方法が代替案として考えられます。

その場合、ステージング環境用ドメインのrobots.txtファイル(http://staging.example.com/robots.txt)に以下のように記述してください。

User-agent: *
Disallow: /

これで、Googleはステージング環境内のあらゆるURLをクロールしなくなります。(念のため付け加えておきますが本番環境のrobots.txtには間違っても上記の記述で設定しないようにご注意ください!)

すでにステージング環境や開発環境がインデックスされてしまった場合

さて、ひとつ注意点があります。上記の処理はまだGoogleに認識されていない(インデックスされていない)ドメインでは有効なのですが、開発と同時に対策するのをうっかり忘れてしまったなどの事情で既にインデックスされてしまった場合は少々面倒な対応が必要です。(ステージング環境がインデックスされてしまっているかどうかはGoogle検索から「site:」演算子を使って確認してください)

この場合、前述の処理でGoogleのクロールを拒否するだけで良いというのもひとつの考え方かと思いますが、自称SEOにうるさい私といたしましては既にGoogleに認識されてしまっている以上「本命のサイトはどちらなのか」を伝えるシグナルを明確に送信する必要があると考えます。

そのためまず以下のいずれかの設定を施すことを検討してください。

正規化用タグを埋め込む

ステージング環境全ページのセクションに正規化用タグを埋め込みます。その後、定期的に「site:」演算子を用いてステージング用ドメインのインデックス状況を確認し、インデックスがゼロ件になった段階でIP制限をかける。

※正規化用タグ(<link rel=”canonical”>)

<link rel=”canonical” href=”ここに本命サイトのURLを必ず1ページ1ページ、1対1の関係で出力”>

301リダイレクトを設定する

現在使用中のステージング環境の利用を諦め、本命サイトへ1対1の関係で301リダイレクトを設定する。

※.htaccessファイルを使って1対1の関係で301リダイレクトする時用の記述例

RewriteCond %{HTTP_HOST} ^( staging.example.com)? [NC] RewriteRule ^(.*) http://www.example.com /$1 [R=301,L]

上記の(1)(2)共に少なからず負担のかかる処理で、このコラムをご覧になって「え~!そんなの面倒臭い!」とお感じになる開発者の方も多いかと思います。

そのような場合の事前の策として、(自称SEOにうるさい私としては心からオススメできるものではないのですが)ここでもrobots.txtを使ったコストのかからない代替案をご紹介しておきます。

robots.txtを使用する

ステージング環境用ドメインのrobots.txtファイル(http://staging.example.com/robots.txt)に以下のように記述してください。

User-agent: *
Noindex: /

※ここでは「Noindex:」部分を「Disallow:」としないように注意。また、前述のcanonicalや301リダイレクトと併用する必要はありません、むしろcanonicalや301リダイレクトを使える場合は併用を避けてください。前者の設定の意味が無くなってしまいます。(canonicalや301リダイレクト設定はWebサイトをGoogleのロボットに開放しないと意味が無いためです)

まとめ

少し技術的な内容を含んでしまいましたが、ここまでご覧いただいた皆様にはステージング環境がGoogleにインデックスされてしまうと様々な不利益を被ることや、その後の処理に手間がかかることを十分にご理解いただけたのでは無いでしょうか。

これからサイトを構築しようと意気込んでいらっしゃる方は、開発段階でGoogleのクロールを拒否する設定の準備ができているかどうか、今一度ご確認ください。

また、サイト運営者の皆様にはこれを機に保有サイトのステージング環境がインデックスされていないかどうかあらためてご確認いただき、無用なトラブルを未然に防いでいただければと思います。このコラムが皆様のお役に立てば幸いです。
 

  • このエントリーをはてなブックマークに追加
The following two tabs change content below.
片川 創太

片川 創太

2014年12月までディーエムソリューションズ株式会社SEO対策チームに所属。「SEOは実装」を信条に、コミュニケーションを重視するスタイルで数多くのサイトのコンサルティングを手がける。内部施策に関して造詣が深く、「SEOまとめ」というtwitterアカウントを通じて日々情報発信を続けている。 Twitter: SEOまとめ