Robots.txtファイルジェネレーター — 概要と作成方法
robots.txtファイルの役割、クロールルールの仕組み、そしてコードを書かずにWebサイト用の正しいrobots.txtを生成する方法を解説します。
インターネット上のすべてのWebサイトは、Googlebot、Bingbot、AIクローラーなど数十種類のボットから訪問を受けます。robots.txtファイルは、それらのボットに対してインデックスしてよいページとそうでないページを伝える手段です。正しく設定すれば検索結果に表示されるコンテンツをコントロールできますが、誤って設定するとサイト全体をGoogleからブロックしてしまう可能性があります。
robots.txtファイルとは?
robots.txtファイルは、Webサイトのルートに設置するプレーンテキストファイルで、Webクローラーに対してどのページやセクションをクロールすべきか、またスキップすべきかを指示します。これはRobots Exclusion Protocol(ロボット排除プロトコル)に従っており、主要なクローラーのほぼすべてが尊重する非公式な標準です。
GooglebotがWebサイトを訪問する際、最初にリクエストするURLは次のとおりです:
https://yourdomain.com/robots.txt
このファイルが存在する場合、ボットはルールを読み取り、それに従ってクロールを調整します。ファイルが存在しない場合、ボットはすべてのページがクロール可能であると判断します。
重要: robots.txtはあくまでも指示であり、セキュリティ対策ではありません。行儀のよいボットに対してクロールしないよう伝えるものであり、アクセスそのものを防ぐものではありません。悪意あるボットやスクレイパーは完全に無視する場合があります。機密コンテンツを隠す手段としてrobots.txtに頼らないでください。
robots.txtファイルの構造
robots.txtファイルは1つ以上のレコードで構成されます。各レコードは次の要素からなります:
User-agent行 — ルールを適用するボットの指定- 1つ以上の
DisallowまたはAllow行 — クロールルール - オプションの
Crawl-delayディレクティブ - オプションの
Sitemapディレクティブ(ファイルレベル)
User-agent: Googlebot
Disallow: /admin/
Allow: /admin/public/
User-agent: *
Disallow: /private/
Crawl-delay: 10
Sitemap: https://yourdomain.com/sitemap.xml
主なディレクティブの説明
| ディレクティブ | 役割 |
|---|---|
User-agent |
以降のルールを適用するクローラーを指定します。*はすべてのボットを意味します。 |
Disallow |
指定したパスのクロールをブロックします。 |
Allow |
ブロックされた親ディレクトリ内であっても、特定のパスを明示的に許可します。 |
Crawl-delay |
リクエスト間にN秒待つようボットに要求します(Googleはサポートしていません)。 |
Sitemap |
クローラーにXML sitemapの場所を示します。 |
User-agentの値 — 誰に向けて話しているのか?
各クローラーには固有のUser-agent文字列があります。主な一覧:
| User-agent | クローラー | エンジン |
|---|---|---|
* |
すべてのクローラー | — |
Googlebot |
GoogleのWebクローラー | Google Search |
Googlebot-Image |
Google画像クローラー | Google Images |
Googlebot-Video |
Google動画クローラー | Google Video |
Bingbot |
Microsoft Bingクローラー | Bing Search |
Slurp |
Yahoo!クローラー | Yahoo Search |
DuckDuckBot |
DuckDuckGoクローラー | DuckDuckGo |
Baiduspider |
Baiduクローラー | Baidu Search |
YandexBot |
Yandexクローラー | Yandex Search |
GPTBot |
OpenAI学習用クローラー | ChatGPT |
ClaudeBot |
Anthropic学習用クローラー | Claude |
CCBot |
Common Crawlボット | 各種AIデータセット |
ルールはUser-agentごとに適用されます。ボットが特定のUser-agentレコードに一致する場合、そのルールが適用されます。該当するレコードが存在しない場合は、*(ワイルドカード)のルールが適用されます。
DisallowとAllow — パスマッチングの仕組み
Disallow
Disallow: /path/は、そのパスとその配下のすべてをブロックします。
Disallow: /admin/ # /admin/、/admin/users、/admin/login などをブロック
Disallow: /private.html # そのファイルのみをブロック
Disallow: / # サイト全体をブロック
Disallow: # 空の値 = すべてを許可(制限なし)
Allow
Allowは、より具体的なパスに対してDisallowを上書きします。より具体的なルールが優先されます。
User-agent: Googlebot
Disallow: /products/
Allow: /products/featured/ # 上記のDisallowにもかかわらず、Googlebotは/products/featured/をクロール可能
ワイルドカード
ほとんどのクローラー(Googleを含む)は2種類のワイルドカード文字をサポートしています:
| パターン | 意味 | 例 |
|---|---|---|
* |
任意の文字列に一致 | Disallow: /*.pdf$ |
$ |
URLの末尾に一致 | Disallow: /*.pdf$ — .pdfで終わるURLをブロック |
Disallow: /*? # クエリ文字列を含むすべてのURLをブロック
Disallow: /*.pdf$ # すべてのPDFファイルをブロック
Disallow: /tag/*/page/ # ページネーションされたタグアーカイブページをブロック
robots.txtの一般的なパターン
すべてを許可(デフォルトの動作)
User-agent: *
Disallow:
Disallowが空の場合、制限はありません。これはrobots.txtを設置しない場合と同等ですが、後でルールを追加できるよう、ファイル自体を用意しておくことがベストプラクティスです。
サイト全体をブロック(例:ステージング環境)
User-agent: *
Disallow: /
開発環境、ステージング環境、またはプレビュー環境でインデックスされないようにする場合に使用します。
特定のディレクトリをブロック
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /checkout/
Disallow: /cart/
Disallow: /account/
AIトレーニング用クローラーをブロック
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
ECサイト — インデックス不要なページをブロック
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /wishlist/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?ref=
Allow: /products/
Allow: /collections/
Sitemap: https://yourdomain.com/sitemap.xml
WordPressサイト
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search/
Disallow: /trackback/
Sitemap: https://yourdomain.com/sitemap.xml
コードを書かずにrobots.txtファイルを生成する方法
robots.txtを手書きするとミスが発生しやすく、タイプミス一つで許可するつもりだったページをブロックしてしまうことがあります。Robots.txt Generatorを使えば、以下の操作が簡単にできます:
- 対象とするボットを選択
- シンプルなフォームからallowおよびdisallowルールを追加
- 必要に応じてcrawl delayを設定
- sitemapのURLを追加
- 完成したファイルを即座にコピーまたはダウンロード
生成後は、Robots.txt Testerを使ってデプロイ前にルールが意図どおりに機能するか確認してください。
robots.txtファイルの設置場所
ファイルはドメインのルートに設置する必要があります:
https://yourdomain.com/robots.txt ✓ 正しい
https://yourdomain.com/robots/robots.txt ✗ 誤り
https://subdomain.yourdomain.com/robots.txt ✓ 正しい(サブドメインの場合)
サブドメインごとに独自のrobots.txtが必要です。www.yourdomain.com/robots.txtのファイルはblog.yourdomain.comには適用されません。
robots.txtのデプロイ方法
静的サイト(HTML): Webサーバーのパブリックディレクトリのルートにのルートにrobots.txtをアップロードします(/public_html/、/dist/、/public/など)。
WordPress: WordPressインストールのルートに設置します。多くのSEOプラグイン(Yoast、RankMath)は管理パネルから自動的に管理します。
Next.js: /publicフォルダにrobots.txtを設置するか、Next.js 13以降では/app内のrobots.jsファイルを使ってプログラムで生成します。
Vercel / Netlify: /publicに設置すると、デプロイ時に自動的にルートから配信されます。
robots.txtとSEO — 押さえておくべきポイント
CSSとJavaScriptをブロックしない
過去には、クロールバジェットを節約するために/wp-content/や/assets/をブロックする手法が一般的でした。しかしこれは逆効果です。GoogleはページをレンダリングしてWebサイトを理解する必要があり、CSS/JSをブロックするとそれが妨げられます。本当にインデックスさせたくないものだけをブロックしてください。
robots.txtはインデックスを防がない — noindexが必要
DisallowはGoogleがURLをクロールすることを防ぎますが、他のサイトからリンクされている場合にGoogleがそのURLをインデックスすることは防げません。インデックスを防ぐには、ページ自体にnoindexメタタグまたはX-Robots-Tag HTTPヘッダーを使用してください。
sitemapの宣言
robots.txtには必ずsitemapのURLを記載してください。クローラーに確実に見つけてもらう最も信頼性の高い方法です:
Sitemap: https://yourdomain.com/sitemap.xml
Sitemap: https://yourdomain.com/sitemap-images.xml
複数のsitemapを記載することもできます。
クロールバジェット
大規模サイト(数千ページ)はrobots.txtの最適化から最も大きな恩恵を受けます。低価値なページ(フィルタリングされたURL、サイト内検索結果、重複した薄いコンテンツ)をブロックすることで、Googleが本当に重要なページにクロールバジェットを使えるようになります。
robots.txtファイルの検証
ファイルを作成したら、デプロイ前に必ず確認してください:
- Robots.txt Tester — ファイルを貼り付けて特定のURLをテストし、allow/disallowの動作を確認
- Google Search Console — クロール統計レポートでGoogleがどのようにサイトをクロールしているか確認;URLインスペクションツールで特定のページがブロックされているかを確認
- 手動確認 — デプロイ後に
https://yourdomain.com/robots.txtにアクセスし、ファイルが正しく公開・配信されているかを確認
よくある質問
GoogleはrobotS.txtを必ず従いますか?
Googleはクロールに関してDisallowディレクティブを尊重します。ただし、ブロックされたURLへのリンクが見つかった場合、そのURLをインデックスすることがあります。Disallowはクロールをブロックするものであり、インデックスのエントリーをブロックするものではありません。インデックスを防ぐにはページ自体にnoindexを使用してください。
同じボットに対して複数のUser-agentブロックを設定できますか? いいえ。各User-agentは1つのブロックにのみ記載してください。複数のブロックに同じボットに対する競合するルールがある場合、動作は未定義となります。特定のUser-agentに対するすべてのルールを1つのレコードにまとめてください。
robots.txtに構文エラーがある場合はどうなりますか? ほとんどのクローラーは、不正なルールを無視するか、エラーが発生した時点でパースを停止します。Googleは通常、エラーより前に正常にパースできたルールを引き続き適用します。デプロイ前にファイルをテストしてください。
Googlebot-Imageをブロックすべきですか? 画像をGoogle Imagesの検索結果に表示させたくない場合のみブロックしてください。写真販売サイトや画像が多いサイトの場合、Googlebot-Imageをブロックするとトラフィックが大幅に減少する可能性があります。
クローラーはrobots.txtをどのくらいの頻度で再読み込みしますか? Googleは通常、robots.txtを最大24時間キャッシュします。ファイルを更新しても、Googleのクロール動作への反映には最大1日かかる場合があります。
robots.txtはページの読み込み速度やCore Web Vitalsに影響しますか? いいえ。robots.txtはクロールの動作にのみ影響し、実際のユーザーに対するページの読み込みやパフォーマンスには影響しません。
robots.txtファイルのサイズと制限
- Googleはサイズが500 KB以内のrobots.txtファイルをサポートしています
- 500 KBを超えるファイルは切り捨てられ、それ以降のルールは無視されます
- ルール数に公式な上限はありませんが、ファイルは整理された簡潔な状態に保ってください
- UTF-8エンコーディングを推奨します。ASCIIも使用可能です
関連ツール
- Robots.txt Generator — フォームベースのインターフェイスでrobots.txtファイルを生成
- Robots.txt Tester — ルールを検証し、特定のURLをテスト
- Sitemap Generator — robots.txtと組み合わせるXML sitemapを生成
- Meta Tag Generator — ページ用のSEOメタタグを生成