ウェブサイトを初めて構築する際、「特定のページを検索エンジンにクロールされないようにするにはどうすればよいか?」と考えるかもしれません。たとえば、バックエンドのログインページ、テストページ、プライベートなコンテンツ、または重複コンテンツなどです。その際に必要となるのが、robots.txt です。これはウェブサイトのルートディレクトリに配置されるシンプルなテキストファイルで、検索エンジンのクローラー(Spider)に対して、どのページにアクセスできるか、どのページにアクセスすべきでないかを伝えます。
robots.txt の存在は、インターネット黎明期におけるクローラーの行動を規律する必要性から生まれました。1994年に**Robots Exclusion Protocol(ロボット排除プロトコル)**が提案されましたが、これは強制力のない紳士協定です。ウェブサイト管理者は robots.txt ファイルを通じてクローラーに指示を出し、Google、Bing、Baiduなどの主要な検索エンジンはこれらのルールを尊重します。法的な強制力はありませんが、ほぼすべての正規のクローラーが従うため、ウェブサイトは基本的なコンテンツ制御権を持つことができます。
たとえば、価格、色、ブランドの組み合わせで生成されるURLなど、何千ものフィルタリングページを持つeコマースサイトを運営していると想像してみてください。これらのページはユーザーにとって役立ちますが、検索エンジンにとっては重複コンテンツの罠となり、クローラーのクロールバジェット(Crawl Budget)を浪費し、ウェブサイト全体のインデックス作成品質に影響を与える可能性があります。robots.txt を使用すると、これらの動的なパラメータページをブロックし、検索エンジンがコア製品ページやカテゴリページに焦点を当てるように促すことができます。
さらに、ウェブサイトにバックエンド管理エントリである /admin/ ディレクトリや、開発テスト用の /test/ フォルダがある場合を考えてみましょう。これらのコンテンツはインデックス作成される必要がなく、検索結果に表示されることも望ましくありません。robots.txt は、これらのパスへのクローラーのアクセスを迅速に禁止し、機密情報の漏洩や無意味なページのインデックス作成を防ぐことができます。
もう一つのシナリオは、ウェブサイトの再構築や移行中に、古いコンテンツがサーバー上に一時的に保持されているが、検索エンジンに引き続きクロールされたくない場合です。robots.txt を使用してこれらの古いディレクトリを一時的にブロックすると、新しいコンテンツと古いコンテンツの混乱を防ぎ、検索結果を整理することができます。
このファイルはウェブサイトのルートディレクトリに配置する必要があり、ファイル名は robots.txt(すべて小文字)で固定されています。アクセスアドレスは通常 https://example.com/robots.txt となります。検索エンジンのクローラーは、ウェブサイトをクロールする前にまずこのファイルを確認し、ルールを読み取った後にどのページをクロールするかを決定します。
ファイルの内容は簡単なディレクティブで構成されており、中心となるのはUser-agent(クローラーを指定)とDisallow(クロールを禁止するパス)です。例:
User-agent: *
Disallow: /admin/
Disallow: /test/
Allow: /test/public/
このルールは、「すべてのクローラー(* はワイルドカードを表す)に対して、/admin/ および /test/ ディレクトリのクロールを禁止するが、/test/public/ サブディレクトリのクロールは許可する」という意味です。ルールはワイルドカードとパスマッチングをサポートしており、柔軟性が非常に高いです。
特定のクローラーに対してルールを設定することもできます。たとえば、Baiduのクローラーのみをブロックしたい場合は、次のように記述します。
User-agent: Baiduspider
Disallow: /
これにより、Baiduのクローラーはウェブサイトを一切クロールできなくなりますが、Googleなどの他のクローラーには影響しません。
さらに、robots.txt はSitemap(サイトマップ)へのポインタを設定することもでき、検索エンジンがページをより効率的に発見するのを助けます。
Sitemap: https://example.com/sitemap.xml
プライバシーと機密コンテンツの保護は最も直接的なニーズです。企業内部のドキュメント、会員限定コンテンツ、支払いプロセスのページは、公開検索結果に表示されるべきではありません。robots.txt を使用してこれらのパスをブロックすることで、情報漏洩のリスクを低減できます。
クローラーバジェットの最適化は、SEO専門家がよく使用する戦略です。検索エンジンは各ウェブサイトに割り当てるクロールリソースが限られており、特に大規模なウェブサイトではその傾向が顕著です。クローラーが無価値なページ(検索結果ページ、フィルタリングページ、ログインページなど)で時間を浪費すると、重要なコンテンツがタイムリーにクロールされない可能性があります。robots.txt を適切に使用することで、クローラーを高品質なページを優先的にクロールするように誘導できます。
重複コンテンツ問題の回避も非常に重要です。eコマースサイト、ブログプラットフォーム、ニュースサイトでは、類似または重複したURLが大量に生成されることがよくあります。これにより、検索エンジンはウェブサイトの品質が低いと判断し、ランキングに影響を与える可能性があります。robots.txt を使用してこれらのページをブロックすることで、インデックスの混乱を軽減できます。
テスト環境の分離は、開発チームのニーズです。ウェブサイトの公開前に、テストバージョンがサーバーにデプロイされている可能性がありますが、検索エンジンに早期にインデックス作成されたくない場合があります。robots.txt を使用してテストディレクトリを一時的にブロックし、正式公開後に解除します。
多くの人が、robots.txt がすでにインデックス作成されたページを完全に削除できると誤解していますが、これは間違いです。robots.txt はクローラーがそれ以上クロールすることを阻止するだけで、ページがすでにインデックス作成されている場合、それを真に削除するにはnoindex タグや Google Search Console の削除ツールと併用する必要があります。
もう一つの誤解は、robots.txt が機密コンテンツを保護できると考えていることです。robots.txt はクローラーに「来るな」と伝えるだけで、誰でも robots.txt ファイルに直接アクセスして、ブロックしているパスを確認できます。これらのパス自体にアクセス権限の制御(パスワード保護など)がない場合、情報は依然として漏洩する可能性があります。真に機密性の高いコンテンツは、サーバーサイドの権限管理によって保護する必要があります。
さらに、すべてのクローラーが robots.txt に従うわけではありません。正規の検索エンジンはルールを尊重しますが、悪意のあるクローラーやデータ収集ツールは、このファイルを完全に無視する可能性があります。robots.txt は紳士協定であり、ファイアウォールではありません。
あなたがウェブサイト管理者やSEO担当者であれば、robots.txt は必須のツールです。ウェブサイトの規模に関わらず、適切に設定することで、クロール効率を向上させ、不要な問題を回避できます。
あなたがコンテンツクリエーターやブロガーであれば、複雑なrobots.txt 設定は必要ないかもしれませんが、少なくともその役割を理解しておくべきです。たとえば、作者のログインページ、下書きディレクトリ、プライベートページなどをブロックすることができます。
あなたがeコマースプラットフォームや大規模ウェブサイトの運営者であれば、robots.txt はほぼ必須です。膨大なページ数と複雑な構造に直面した場合、クローラーの行動を細かく制御することで、インデックス品質と検索パフォーマンスを大幅に改善できます。
robots.txt を設定したら、ルールが有効かどうかを必ずテストしてください。Google Search Console は、robots.txt テストツールを提供しており、特定のURLがブロックされているかどうかを確認したり、構文エラーをチェックしたりできます。Bing Webmaster Tools にも同様の機能があります。
一般的なエラーには、パスのスペルミス、ワイルドカードの不適切な使用、ルールの競合(同じパスに対して Disallow と Allow が同時に作用する)などがあります。これらの問題により、重要なページが誤ってブロックされたり、無効なページがクロールされ続けたりする可能性があります。
また、robots.txt ファイルはプレーンテキスト形式である必要があります。Wordやリッチテキストエディタで保存すると、隠し文字が挿入されて解析に失敗する可能性があるため避けてください。
検索エンジンの技術が進歩するにつれて、robots.txt の役割の境界線も変化しています。Google は、robots.txt が noindex タグの代わりにはならないことを明確に示しており、後者こそがインデックスを制御する正しい方法です。しかし、robots.txt は依然としてクローラーの行動を管理するための基本的なツールであり、特に大規模サイトの処理やクローラーリソースの節約においては不可欠です。
通常のウェブサイトであれば、シンプルな robots.txt 設定で十分です。複雑なサイトでは、Sitemap、Canonical タグ、noindex など、他のSEO技術と組み合わせて使用し、包括的なコンテンツ管理戦略を形成する必要があります。robots.txt の原理と限界を理解することで、初めてその価値を最大限に引き出し、検索エンジンが公開したいコンテンツを効率的にクロールできるようにすると同時に、公開すべきでない部分を保護することができます。