robots.txt
は、Webサイトの管理者が検索エンジンやその他のクローラーに対して、特定のページやフォルダのアクセスを許可または禁止するためのテキストファイルです。このファイルを正しく使用することで、サイト全体や特定のページのインデックスやスクレイピングの管理が可能になります。この記事では、robots.txt
の書き方や設置場所、注意点などについて詳しく解説します。
robots.txtとは?
robots.txt
は、サイトのルートディレクトリ(例:https://example.com/robots.txt
)に設置され、検索エンジンのクローラー(ロボット)がどのページにアクセス可能かを指示するためのファイルです。検索エンジンは、まずこのファイルの内容を確認してからクロールを行い、サイト内の情報をインデックス化します。
robots.txt の書き方
robots.txt
の基本的な構成は以下の通りです。
User-agent: [クローラー名] Disallow: [禁止するパス] Allow: [許可するパス] Sitemap: [サイトマップのURL]
- User-agent – クローラーの名前を指定します。例えば、Googleのクローラーは
Googlebot
です。全てのクローラーに対して指示を出す場合は*
を使います。特定のファイル形式を制御するには拡張子の末尾に$をつけます。 - Disallow – クローラーにアクセスさせたくないページやフォルダを指定します。
/
を使うと、サイト全体がブロックされます。 - Allow –
Disallow
でブロックした中でも、特定のパスを許可したい場合に使います。 - Sitemap – サイトマップのURLを指定します。この項目は
robots.txt
に指定することで、検索エンジンにサイト全体の構造を知らせる手段となります。
robots.txtの具体例
具体的な設定例を以下に示します。
- 例1:全てのクローラーに対して全てのページを許可
User-agent: * Disallow:
- 例2:全てのクローラーに対して全てのページをブロック
User-agent: * Disallow: /
- 例3:特定のフォルダ(例:/private/)のみをブロック
相対パスしか指定できません。直接アドレスを指定することはできません。
User-agent: * Disallow: /private/
- 例4:特定のファイル形式(例:pdfファイル)などをブロック
User-agent: * Disallow: /*.pdf$
- 例5:特定のページ(例:/test/page.html)をブロックしつつも、特定のファイル(例:/test/public.html)にはアクセスを許可
User-agent: * Disallow: /test/ Allow: /test/public.html
robots.txt の設置場所
robots.txt
ファイルは、サイトのルートディレクトリに配置します。例えば、https://example.com/robots.txt
のように、サイトのルートからアクセス可能である必要があります。サブディレクトリに置かれた場合、クローラーは認識できないため、必ずルートディレクトリに設置しましょう。
確認方法とValidatorの利用
robots.txtの確認方法 – Googleなどの検索エンジンには、robots.txt
の設定を確認するためのツールが用意されています。例えば、Google Search Consoleの「robots.txt テスターツール」を使用すると、ファイルの内容を直接確認し、誤りがないかをチェックできます。
Validatorの利用 – ファイルの正確性を確認するため、無料のrobots.txt validator
ツールを使うと便利です。これにより、構文エラーや無効な指示を見つけやすくなります。
noindexとの違い
robots.txt
は、特定のページへのアクセスを制限しますが、インデックスの有無を直接制御するものではありません。ページがインデックスされないようにするためには、noindex
タグを使用するのが一般的です。具体的には、<meta name="robots" content="noindex">
タグをHTML内に追加することで、検索エンジンに対しインデックスしないよう指示できます。
robots.txt によるスクレイピング対策
robots.txt
はサイトへの不正アクセスやスクレイピングの防止に役立ちますが、法的拘束力があるわけではありません。一般的には善意のクローラーに対してのアクセス制限に使用されるものの、悪意のあるスクレイパーは無視することもあります。そのため、厳密な対策が必要な場合は、サーバーレベルでのIPブロックやCAPTCHA認証などを併用するのが効果的です。
sitemapの指定方法
検索エンジンにサイトの全体構造を効率的に伝えるために、robots.txt
に Sitemap
の指定を行うと良いでしょう。以下のように書くことで、サイトのXMLサイトマップを検索エンジンに知らせることができます。
Sitemap: https://example.com/sitemap.xml
robots.txtによりブロックされた際の対応方法
「robots.txtによりブロックされました」というメッセージが出る場合、そのページはクロールを拒否している可能性があります。ページが検索エンジンから除外されてしまう場合は、robots.txt
の設定を確認し、適切なパスに対してアクセスを許可するように変更しましょう。
robots.txtファイルの読み方
クローラーは、ファイル内の命令を上から順に解釈します。複数の User-agent
セクションがある場合、それぞれのセクションが適用されるクローラーに対して命令が実行されます。また、特定のクローラーに対して異なる指示を出す場合は、そのクローラー名を指定してから個別に設定します。
User-agent: Googlebot Disallow: /private/ User-agent: * Disallow: /public/
この例では、Googlebotは /public/
にアクセスできるが、全てのクローラーに対して /private/
へのアクセスが制限されています。
まとめ
robots.txt
は検索エンジンやクローラーに対して、特定のコンテンツへのアクセスを管理するための重要なファイルです。設定のミスはSEOやサイトの可視性に大きく影響を与える可能性があるため、正確な設定が求められます。また、ファイルの内容は公開されるため、セキュリティが必要な情報は robots.txt
ではなく、サーバー側でのアクセス制御を考慮することも重要です。