robots.txtとは何か
robots.txtは、サイトのルートに置くテキストファイルで、検索エンジンのクローラーに対して「どこを巡回してよいか/控えてほしいか」を伝えます。クローラーがサイトに来たとき、最初に読みにくる案内板のような存在です。
代表的な指示は、対象とするクローラーを示すUser-agentと、巡回を控えてほしい場所を示すDisallowです。これらを組み合わせて、巡回の対象範囲を案内します。
あくまで巡回の方針を伝えるもので、サーバーへのアクセスを物理的に止める仕組みではありません。ここを誤解すると後述のトラブルにつながります。
robots.txtが果たす役割
主な役割は、クロールの効率化です。検索に出す必要のない管理用ページや、無限に組み合わせが増える検索結果ページなどへの巡回を控えてもらうことで、重要なページにクローラーのリソースを向けやすくします。
サイトマップの場所をrobots.txtに書いておく使い方も一般的です。これによりクローラーがサイトマップを見つけやすくなり、ページ発見の助けになります。
実務ではどこで関係する?
robots.txtは言葉の意味だけ覚えても、HTML共有の判断にはつながりません。実務では「表示に関係する話か」「検索に関係する話か」「アクセス制限に関係する話か」を分けて考えると整理しやすくなります。
robots.txtについて迷ったら、相手が安全に開けるか、検索に出してよいか、ブラウザや環境差で壊れないかを順番に確認します。用語理解は、その判断を早くするための道具として使います。手順が決まったら、HTML/ZIPをアップロードして共有URLを発行し、相手に確認してほしい観点と期限を添えて送ります。
- 表示の話: HTML/CSS/JS、パス、ブラウザ互換性を確認する
- 検索の話: noindex、canonical、sitemap、robots.txtの役割を分ける
- 制限の話: URL共有、パスワード、メール認証、会社ドメイン認証を混同しない
- 運用の話: 期限、差し替え、削除、共有メッセージまで決める
robots.txtの限界に注意
最も誤解されやすいのが「Disallowにすれば検索結果から消える」「見られなくなる」という思い込みです。これは正しくありません。
Disallowはクロールを控えてもらう指示であって、検索結果からの除外を保証しません。他サイトからリンクされていれば、内容を読まずにURLだけが検索に出ることもあります。検索に出したくないならnoindexが適切です。
さらに重要なのは、robots.txtはアクセス制御ではないという点です。ファイル自体は誰でも閲覧でき、Disallowに書いた場所はむしろ「ここに何かある」と知らせてしまう面もあります。本当に見せたくない情報は、robots.txtではなく認証で守る必要があります。
robots.txtを書くときの手順
シンプルなファイルですが、書き間違えると全ページを巡回禁止にしてしまうこともあるため慎重に進めます。
特にDisallowの一行で、サイト全体を検索から遠ざけてしまう事故が起こりがちです。次の流れで、影響範囲を確認しながら設定します。
- 対象のクローラーをUser-agentで指定する(全体なら * )
- 巡回を控えてほしいパスをDisallowで指定する
- 全体を誤って禁止していないか(Disallow: / になっていないか)確認する
- サイトマップの場所をSitemap行で記載する
- サイトのルートに配置し、ブラウザで開いて内容を検証する
見せたくないものは認証で守る
robots.txtやnoindexは「検索に出さない」ための手段であって、「関係者以外に見せない」ための手段ではありません。確認用のページを内輪だけに見せたいなら、クロール制御だけに頼るのは危険です。
ギガサイト便の一時公開ページにはnoindexが付き検索結果には出ませんが、それはアクセス制御ではありません。関係者以外に見せたくない場合は、URLのみ/パスワード/メール認証(ワンタイムコード)/会社ドメイン認証から認証方式を選んで併用します。検索対策と閲覧制限を分けて考えるのが安全です。
よくある質問
robots.txtでDisallowすれば検索結果から消えますか?
消えるとは限りません。Disallowはクロールを控える指示で、除外は保証しません。リンクがあればURLだけ表示されることもあります。検索から消したいならnoindexを使います。
robots.txtは見せたくないページを守れますか?
守れません。robots.txtはアクセス制御ではなく、ファイル自体も誰でも見られます。本当に見せたくない情報は認証で保護してください。
robots.txtとnoindexはどう使い分けますか?
クロール自体を控えてほしいならrobots.txt、検索結果に出したくないならnoindexです。なおDisallowされたページはnoindexが読まれないことがあるため、確実に除外したい場合は注意が必要です。
robots.txtは必ず用意すべきですか?
必須ではありません。特に制御したい範囲がなければ無くても問題ありません。むしろ誤った記述で全ページを禁止する事故の方がリスクが大きいため、必要なときに正しく置くのが安全です。
実務ではどこで関係する?はHTML共有で必ず理解しておく必要がありますか?
細かな仕様を暗記する必要はありません。ただし、検索に出るか、閲覧者を制限できるか、表示が崩れないかに関わる用語は、共有前の判断材料として押さえておくと安全です。