検索エンジンのクロールをブロックし、インデックスさせない方法
私は仕事上、多くのホームページを制作・管理しています。基本的にどのサイトも検索エンジンにインデックスされ、検索にかかりやすくなって欲しいのですが、特定のサイトやページを検索エンジンにインデックスしたくないこともあります。
例えば以下のような場合があります。
- テスト公開しているページ
- 管理画面やシステムに関わるページ
- 会員向けページ
今回はrobots.txt、noindex、.htaccessを使い検索エンジンのクロールをブロックする方法を紹介していきます。
1.3つの記載方法
検索エンジンのクロールをブロックするにはrobots.txt、noindex、.htaccessの3つの方法があり、Search Console ヘルプにもこの3つの方法が推奨されています。
https://support.google.com/webmasters/answer/6062602?hl=ja&ref_topic=4598466
Google 検索の検索結果に表示したくないページやその他のコンテンツがある場合は、次のような方法でブロックできます。
robots.txt ファイル
メタタグ
ウェブサーバー ファイルのパスワード保護
robots.txt ファイル
robots.txtファイルをテキストエディタで作成します。
例えば/sample/
以下をブロックする場合は下記のようにコードを記載します。
※Disallow
にはクロールを拒否するディレクトリを指定します。
User-Agent: *
Disallow: /sample/
ただし、robots.txtは万能ではありません。
クローラをブロックしているページでも他のサイトからリンクされていればインデックス登録が可能となってしまいます。
メタタグのnoindex
利点:ページごとに設定できる 欠点:時間がかかる⇒次にgoogleがクローリングするまで更新されない
対象のページの
セクションに下記のコードを記載する<meta name="robots" content="noindex" />
.htaccess
.htaccessファイルを作成し、サーバー上のディレクトリをパスワードで保護します。 .htaccessの作り方は.htaccessでベーシック認証を設定する方法をご覧ください。
注意事項
robots.txtによるブロックとnoindexを併用してはいけない
その理由はSearch Console ヘルプに記載されています。
https://support.google.com/webmasters/answer/93710
重要: noindex ディレクティブが有効に機能するようにするために、robots.txt ファイルでページをブロックしないでください。ページが robots.txt ファイルでブロックされると、クローラは noindex ディレクティブを認識しません。そのため、たとえば他のページからリンクされていると、ページは検索結果に引き続き表示される可能性があります。
2.クローラーの動き
robots.txt、noindex、.htaccessの3通りの方法を紹介してきましたが、どのような違いがあるのでしょうか?
詳しく調べてみるとクローラーの動きが3つとも異なるようです。
robots.txtの場合
クローリングしない。
Disallow
で記載されたディレクトリはクローリングを拒否します。
noindexの場合
クローリングするが検索インデックス登録はブロックされる。
noindexを記載したページはインデックス登録されないが、そのページのリンク先ページはクローリングするので
インデックスされることになります。
.htaccessの場合
クローリングできない。
パスワードで保護された領域なので、IDとパスワードが無い見られません。
当然検索エンジンもクロールできないことになります。
3.どうしても、早急にインデックスを削除したい場合
Search ConsoleのURLの削除を使います。
あくまで一時的なもので、約90日間ブロッされますが、その後復活します。
4.ブロックされているか確認する方法
インデックスの状況はgoogleのsite:
コマンドを利用する。
この方法は昔からありますが、インデックスの状況を確認するには一番正確です。
ちなみに、このサイトは現在30ページがインデックスされています。
5. 【補足】404エラーについて
今回の記事の補足的な情報になりますが、404エラーについてです。
Search Consoleのクロールエラーのところで、404エラーがたくさん出るので改善しなくてはと思ってたんですが、よく調べてみると404エラーは検索順位に影響しないということが分かりました。
詳細はSearch Console ヘルプにに記載されています。
404 エラーのほとんどは、そのサイトの Google 検索結果でのランキングに影響を及ぼすことはないため、エラーを無視しても問題はありません。このエラーの一般的な原因としては、スペルミスやサイトの設定の誤り、Google が JavaScript のような埋め込みコンテンツの中のリンクを認識してクロールしようとしてエラーが発生することもあります。
ただ、検索エンジンに影響はないと言っても。同じ404エラーが繰り返し表示される場合は、何か原因があるので、改善できる場合はした方がいいと思います。