サーバにテスト環境を準備した時に検索エンジンの巡回(クロール)を拒否する


Web制作においてテスト環境を準備することはよくあることです。サイト内の修正をする際に本番環境で直接作業をして、もし記述を間違えて表示を壊してしまったとなると壊れたWebサイトが見られてしまいます。

しかし、テスト環境でも公開してしまうと検索エンジンに引っかかって見られてしまいます。これからリリースするまだ世に公開しない情報などもあるでしょうし、サイト内のコンテンツも本番環境とさほど変わらないので重複したコンテンツとしてみなされる可能性もあります。テスト環境を見られるのはよくありません。

ですのでテスト環境は検索エンジンに巡回(クロール)されないようにする必要があります。

ここでは、実際にサーバにテスト環境を準備した時に検索エンジンの巡回(クロール)を拒否する方法をご紹介します。
方法はhtaccessとrobots.txtの2パターンあります。


.htaccessでクローラーを拒否


.htaccessは、テスト環境のディレクトリに設置してファイルに記述します。
ファイルの作り方は、「htaccess.txt」というファイルを作成して記述したらその後「.htaccess」にリネームしてください。

間違えてすでに公開している本番環境のルートディレクトリにある.htaccessに書かないように。
本番のサイトが検索エンジンに引っかからなくなりますので。

SetEnvIf User-Agent "Googlebot" shutout
SetEnvIf User-Agent "Slurp" shutout
SetEnvIf User-Agent "msnbot" shutout
 
order Allow,Deny
Allow from all
Deny from env=shutout



GooglebotはGoogle、SlurpはYahoo、msnbotはBingのクローラーになります。

SetEnvlfは、環境変数を定義しています。
Envは「Environment = 環境」、Ifは「もし〜なら」です。
SetEnvIf User-Agent “Googlebot” shutoutは、「もし、環境変数User-Agentが”Googlebot”だったらshutoutをsetする」という意味になります。

order Allow,Denyでは、デフォルト拒否を設定。
Allow from allでは、デフォルト拒否だけどAllowですべて許可。
つまりデフォルト拒否だけどAllowですべて許可させることになります。

そして最後の行、これが一番重要。
Deny from env=shutoutは、shutoutがsetされていたら拒否するということになります。
Deny from env=shutoutの後、最後は改行してください。

これで上記の内容が書かれているhtaccessファイルが置いてあるディレクトリは検索エンジンの巡回を拒否します。


robots.txtでクローラーを拒否


robots.txtでも検索エンジンの巡回を拒否することができます。
ファイルの作成は簡単で「robots.txt」とrobotsという名前のtxtファイルを作るだけです。こちらも.htaccess同様、テスト環境のディレクトリに設置します。

User-agentの*(アスタリスク)ですべての検索エンジンを拒否するという意味になります。Disallowの後に禁止するディレクトリを書きます。

サイト全体をクロール禁止

User-agent: *
Disallow: /



あるディレクトリだけクロール拒否したい場合もあります。
例えば、textディレクトリ以下の全てのページがクロール禁止

User-agent: *
Disallow: /test/



他にも、サイトのpdfファイルだけ

User-agent: *
Disallow: /*.pdf$




そんなに使わないと思いますが一応。
Googlebotだけクロール禁止みたいなことも。

User-agent: Googlebot
Disallow: /



Disallowでうまく設定していくことで、もし本番環境のディレクトリ内でも非公開にしておきたいディレクトリまたはファイルがあれば、臨機応変に対応することができます。


まとめ


.htaccessとrobots.txtの2パターンご紹介しました。
ただ、robots.txtは完璧ではありません。
まさかそんなことはないと思いますが、テスト環境がすでにインデックスされている別のサイトからリンクが貼られているとなると検索エンジンにインデックスされることがあります。

お気をつけください。