みなさんこんにちは。SEOまとめこと片川と申します。
先日デジタルマーケティング研究所さんに寄稿させていただきましたコラムが想像以上の反響をいただきまして(ありがとうございます!)、おかげさまで再びSEOの記事を掲載していただくこととなりました。
目次
前回はSEOのアクセス解析に関する比較的旬なトピックを取り扱わせていただいたわけですが、今回はそれと全く関係の無い話題です(すいません)。
実は、私のお客様ではここ最近立て続けに「Webサイトのステージング環境(もしくは開発環境)用ドメインがGoogleにインデックスされてしまっている」という問題が確認されております。
一般的に、Webサイト開発のステージングでは本番サイトと同等のサーバー環境を用意し、サブドメイン(「www2.」や「staging.」などをよく使いますね)もしくは別立ての独自ドメインを用いてコピーサイトを作成するケースがほとんどかと思います。このドメインがGoogleに認識され、検索結果に出現するのが可能な状況になってしまっていることがとても多いのです。
※「www2.」サブドメインで構築されたステージング環境内のページがGoogleにインデックスされてしまっている様子。
実際、多忙を極めるWebサイトの開発段階では考えることが多すぎるため与件外であるSEO、よもやGoogleのロボット(クローラー)のことまで気にかけている暇は無いというのが多くの制作関係者様の本音かと思います。
しかし、後述いたします通りステージング環境や開発環境用ドメインがインデックスされてしまいますと、SEOだけの問題にとどまらずセキュリティ的にもかなりのリスクとなります。知ってさえいれば対策そのものはほとんど工数のかからない処理ですので、決して目新しくはないものの重要なこのテーマについてWeb担当者さんや開発サイドの皆様にあらためて認識を深めていただければと思い、コラムにて取り上げさせていただくことといたしました。
ステージング環境(開発環境・デモ環境・テストサイト)がインデックスされてしまうことの問題点は主に以下の2点です。
実際、先ほどキャプチャにてご覧いただいたECサイトではテスト用ドメインから購入が発生してしまい、本番環境と異なるDBに顧客情報が格納されたためお客様対応が遅れるという事案が発生しています。
さて、ここでどうしてGoogleがステージング環境をインデックスすることができるのかという疑問を思い浮かべた方はなかなかのSEO通ですね。
というのも、一般的にGoogleは全世界のWebサイトに埋め込まれているリンクのURLをたどってインデックスするものと言われており、どこからもリンクされていないはずのステージング環境をクロールできるはずが無いからです。
先ほど例として取り上げたECサイトのテスト用ドメインも公開されたリンクを1本も持っていないサイトでしたが、結果としてGoogleに認識されてしまっています。
この疑問に対して私も明確な回答をすることができないのですが、いくつかの理由が考えられると思います。
などなど。
ここでは「URLを知っているのは社内のメンバーだけだから大丈夫」ということは決して無い、ということをご認識いただければと思います。
前置きが長くなってしまい申し訳ございません、それでは具体的にステージング環境に施すべき対策をご案内いたします。
対策としては「特定のIPアドレス(お客様と制作会社、など)以外はステージング環境にアクセスできないように制御してしまう」というのが最もシンプルかつ簡単な方法となるかと思います。
ここで特定のIPアドレスを指定する方法(いわゆるホワイトリスト型)の設定を取らざるを得ないのは、Googleのロボットが保有するIPアドレスは日夜変動しており非公開となっているためです。さらに合わせてベーシック認証を設定しておけば盤石かと思います。
しかし、諸事情によりIP制限をかけられないことも考えられます。例えば以下ようなケースです。
このような場合、理想とはいいがたいものの「robots.txt」を使ってGoogleを制御する方法が代替案として考えられます。
その場合、ステージング環境用ドメインのrobots.txtファイル(http://staging.example.com/robots.txt)に以下のように記述してください。
これで、Googleはステージング環境内のあらゆるURLをクロールしなくなります。(念のため付け加えておきますが本番環境のrobots.txtには間違っても上記の記述で設定しないようにご注意ください!)
さて、ひとつ注意点があります。上記の処理はまだGoogleに認識されていない(インデックスされていない)ドメインでは有効なのですが、開発と同時に対策するのをうっかり忘れてしまったなどの事情で既にインデックスされてしまった場合は少々面倒な対応が必要です。(ステージング環境がインデックスされてしまっているかどうかはGoogle検索から「site:」演算子を使って確認してください)
この場合、前述の処理でGoogleのクロールを拒否するだけで良いというのもひとつの考え方かと思いますが、自称SEOにうるさい私といたしましては既にGoogleに認識されてしまっている以上「本命のサイトはどちらなのか」を伝えるシグナルを明確に送信する必要があると考えます。
そのためまず以下のいずれかの設定を施すことを検討してください。
ステージング環境全ページのセクションに正規化用タグを埋め込みます。その後、定期的に「site:」演算子を用いてステージング用ドメインのインデックス状況を確認し、インデックスがゼロ件になった段階でIP制限をかける。
※正規化用タグ(<link rel=”canonical”>)
現在使用中のステージング環境の利用を諦め、本命サイトへ1対1の関係で301リダイレクトを設定する。
※.htaccessファイルを使って1対1の関係で301リダイレクトする時用の記述例
上記の(1)(2)共に少なからず負担のかかる処理で、このコラムをご覧になって「え~!そんなの面倒臭い!」とお感じになる開発者の方も多いかと思います。
そのような場合の事前の策として、(自称SEOにうるさい私としては心からオススメできるものではないのですが)ここでもrobots.txtを使ったコストのかからない代替案をご紹介しておきます。
ステージング環境用ドメインのrobots.txtファイル(http://staging.example.com/robots.txt)に以下のように記述してください。
※ここでは「Noindex:」部分を「Disallow:」としないように注意。また、前述のcanonicalや301リダイレクトと併用する必要はありません、むしろcanonicalや301リダイレクトを使える場合は併用を避けてください。前者の設定の意味が無くなってしまいます。(canonicalや301リダイレクト設定はWebサイトをGoogleのロボットに開放しないと意味が無いためです)
少し技術的な内容を含んでしまいましたが、ここまでご覧いただいた皆様にはステージング環境がGoogleにインデックスされてしまうと様々な不利益を被ることや、その後の処理に手間がかかることを十分にご理解いただけたのでは無いでしょうか。
これからサイトを構築しようと意気込んでいらっしゃる方は、開発段階でGoogleのクロールを拒否する設定の準備ができているかどうか、今一度ご確認ください。
また、サイト運営者の皆様にはこれを機に保有サイトのステージング環境がインデックスされていないかどうかあらためてご確認いただき、無用なトラブルを未然に防いでいただければと思います。このコラムが皆様のお役に立てば幸いです。
この記事をご覧いただいている皆様へ。 このページは、SEO情報ブログ「ディーエムソリューションズの社員が作った、【SEOまとめ】」にて公開さ…
この記事をご覧いただいている皆様へ。 このページは、SEO情報ブログ「ディーエムソリューションズの社員が作った、【SEOまとめ】」にて公開さ…
この記事は、The Moz Blogに掲載された以下の記事を日本語訳したものです。 原文:「The New Link Building Su…
Webサイトへの集客は、どんな企業にとっても重要なものです。 リスティング広告・ディスプレイ広告・コンテンツマーケティングなど手法は多々あり…
Webサイトやメディアのコンテンツを制作し、Google(検索エンジン)に表示されるようにするには、Googleからクローリングしてもらう必…
SEO対策やサイト・ブログ運用をしていると「インデックス」というワードをよく耳にする方が多いのではないでしょうか?インデックスは、これからも…
今話題のAIによるコンテンツ自動生成機能も!SEO対策に本当に必要な機能だけを搭載した使いやすさとコストパフォーマンスに優れたWeb集客支援ツールです。
Webマーケティングに関わる施策全般をワンストップで
ご提供します。
お気軽にご相談ください。
Webマーケティング最新ニュースのレポートや無料セミナーの先行案内が届く、お得なメルマガ配信中!