web-dev-qa-db-ja.com

robots.txtはサーバーのサブディレクトリにありますか?

検索エンジンのWebクローラーから隠したいサブディレクトリがあります。

これを行う1つの方法は、サーバーのルートディレクトリでrobots.txtを使用することです(標準的な方法)。ただし、WebサイトのURLを知っていて、基本的なWeb知識がある人は、robots.txtのコンテンツにアクセスして、許可されていないディレクトリを見つけることができます。

これを回避する方法を考えましたが、うまくいくかどうかはわかりません。

Xを除外するサブディレクトリの名前にします。 WebクローラーがXディレクトリのインデックス作成を停止すると同時に、誰かがルートのrobots.txtからXディレクトリを特定しにくくする1つの方法は、robots.txtを追加することですルートディレクトリの代わりにXディレクトリ。

この解決策に従う場合、次の質問があります。

  1. Webクローラーは、サブディレクトリでrobots.txtを見つけますか? (その場合、robots.txtはすでに存在し、ルートディレクトリにも存在します)
  2. robots.txtXサブディレクトリにある場合、相対パスまたは絶対パスを使用する必要がありますか?:

    User-agent: *
    Disallow: /X/
    

    または

    User-agent: *
    Disallow: /
    
14
Rafael

いいえ、ウェブクローラーはサブディレクトリ内のrobots.txtファイルを読み取ったり従ったりしません。準公式 robotstxt.org サイトで説明されているように:

どこに置くか

簡単な答え:Webサーバーの最上位ディレクトリ。

または Googleのヘルプページ emphasis mine):

robots.txtファイルは、サイトのルートにあるファイルであり、検索エンジンクローラーがアクセスしたくないサイトの部分を示します。

いずれにしても、 検索エンジン can indexsページはrobots.txtで許可されていません 他のページがリンクしている場合。または、上記のGoogleヘルプページに記載されているとおり:

Google検索結果からWebページを隠す手段としてrobots.txtを使用しないでください。これは、他のページがページを指している可能性があるためです。 robots.txtファイルを使用せずに、ページがそのようにインデックス付けされる可能性があります。

では、代わりに何をすべきでしょうか?

  • 検索エンジンにページをクロールさせることができます(見つかった場合)が、コンテンツnoindex,nofollowロボットメタタグ を含めることができます。これにより、検索エンジンがそれらのページへのリンクを見つけたとしても、それらのページのインデックスを作成せず、それらのページからリンクをたどらないように指示します。 (もちろん、これはHTML Webページでのみ機能します。)

  • 非HTMLリソースの場合、同じコンテンツで X-Robots-Tag HTTP header を送信するようにWebサーバーを構成できます(たとえば、.htaccessファイルを使用)。

  • パスワード認証を設定して、機密ページを保護できます。許可されていない人間の訪問者からページを保護するだけでなく、Webクローラーを効果的に遠ざけます。

16
Ilmari Karonen

robots.txtはルートディレクトリにある必要があり、他の名前を付けないでください。 標準仕様 によると:

このファイルは、ローカルURL「/robots.txt」でHTTP経由でアクセスできる必要があります。

4
Andrew Lott