Robots.txt: 2026年のSEO完全ガイド
· 12分で読めます
目次
Robots.txtは、ウェブサイトのルートディレクトリに配置されるシンプルなテキストファイルで、検索エンジンのクローラーにアクセス可能なページとスキップすべきページを指示します。単なるプレーンテキストファイルですが、誤って設定されたrobots.txtは、SEOの取り組みを完全に台無しにする可能性があります。重要なページのインデックス登録を誤ってブロックしたり、無関係なコンテンツに貴重なクロールバジェットを浪費したり、非公開にしたい機密エリアを公開してしまったりする恐れがあります。
この包括的なガイドでは、基本的な構文から高度な最適化テクニックまで、robots.txtファイルについて知っておくべきすべてをカバーしています。小規模なブログを管理している場合でも、数百万ページを持つ大規模なeコマースサイトを管理している場合でも、robots.txtの理解は効果的なSEOに不可欠です。
🛠️ クイックツール: 今すぐrobots.txtファイルを生成する必要がありますか?Robots.txtジェネレーターを使用して、数秒で適切にフォーマットされたファイルを作成できます。
Robots.txtとは?
robots.txtファイルはyoursite.com/robots.txtに配置され、1994年に確立された標準であるRobots Exclusion Protocolに従います。検索エンジンのクローラーがウェブサイトにアクセスすると、最初に行うのがこのファイルの確認です。ウェブサイトの玄関に掲示された指示書のようなものと考えてください。
このファイルには、特定のクローラー(またはすべてのクローラー)がアクセスできるURLパスとアクセスを避けるべきURLパスを指示するディレクティブが含まれています。robots.txtは勧告的であり、必須ではないことを理解することが重要です。Google、Bing、その他の主要な検索エンジンからの適切に動作するクローラーはこれらのディレクティブを尊重しますが、悪意のあるボットやスクレイパーは完全に無視する可能性があります。
robots.txtができることとできないことは次のとおりです:
| Robots.txtができること | Robots.txtができないこと |
|---|---|
| クローラーがアクセスするページを制御する | ページが検索結果に表示されるのを防ぐ |
| クロールバジェットの割り当てを管理する | パスワード保護を提供する |
| サイトマップの場所を指定する | 悪意のあるボットを停止する(無視される) |
| 特定のボットのクロール遅延を設定する | 既にインデックスされたページを削除する |
プロのヒント: 検索結果からコンテンツを削除する必要がある場合は、代わりにnoindexメタタグまたはX-Robots-Tag HTTPヘッダーを使用してください。robots.txtでブロックすると、実際にはクローラーがnoindexディレクティブを見ることができなくなり、逆効果になる可能性があります。
Robots.txtの仕組み
クローラーのワークフローを理解することで、robots.txtを効果的に使用できます。検索エンジンボットがサイトにアクセスしたときに正確に何が起こるかを以下に示します:
- 初期リクエスト: クローラーは他のページにアクセスする前に
/robots.txtの取得を試みます - ファイルの解析: 見つかった場合、クローラーはそのユーザーエージェントに関連するディレクティブを読み取り、解析します
- ルールの適用: クローラーは最も具体的に一致するルールを適用して、アクセスできるURLを決定します
- クロールの開始: クローラーはcrawl-delayディレクティブを尊重しながら、許可されたページの取得を進めます
- キャッシュ期間: ほとんどのクローラーは、更新を確認する前に24時間robots.txtをキャッシュします
robots.txtファイルが404エラーを返す場合、クローラーはすべてにアクセスする許可があると想定します。5xxサーバーエラーを返す場合、通常は一時的にクロールを一時停止し、後で再試行します。
ユーザーエージェントのマッチング優先順位
複数のユーザーエージェントブロックが単一のクローラーに適用される可能性がある場合、検索エンジンは特定の優先順位に従います。たとえば、Googleは最も具体的なユーザーエージェントマッチを使用します。User-agent: *とUser-agent: Googlebotの両方がある場合、GooglebotはGooglebot固有のルールのみに従います。
単一のユーザーエージェントブロック内で、AllowルールとDisallowルールの両方がURLに適用される可能性がある場合、最も具体的なルールが優先されます。具体性はパスの長さによって決定されます。長いパスほど具体的です。
構文ルールとディレクティブ
Robots.txtはシンプルですが正確な構文を使用します。すべての文字が重要であり、小さなミスが大きな結果をもたらす可能性があります。各ディレクティブとその正しい使用方法を詳しく見ていきましょう。
基本構造
# コメントはハッシュ記号で始まります
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /admin/public/
User-agent: Googlebot
Disallow: /private/
Crawl-delay: 10
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-images.xml
コアディレクティブの説明
User-agent: 以下のルールが適用されるクローラーを指定します。すべてのクローラーをターゲットにするには、ワイルドカードとして*を使用します。一般的なユーザーエージェントには次のものがあります:
Googlebot— GoogleのメインクローラーGooglebot-Image— Googleの画像クローラーBingbot— Microsoft BingのクローラーSlurp— Yahooのクローラー(現在はBingを使用)DuckDuckBot— DuckDuckGoのクローラーBaiduspider— Baiduのクローラー(中国の検索エンジン)
Disallow: 特定のURLパスへのアクセスをブロックします。パスは大文字と小文字を区別し、/で始まる必要があります。空のDisallow(Disallow:)はすべてを許可することを意味します。
Allow: 禁止されたパス内に例外を作成します。これは、ディレクトリをブロックしたいが、その中の特定のファイルまたはサブディレクトリを許可したい場合に特に便利です。
Sitemap: クローラーにXMLサイトマップを指示します。複数のSitemapディレクティブを含めることができます。これは、異なるコンテンツタイプ用に複数のサイトマップを持つサイトに特に役立ちます。
Crawl-delay: クローラーがリクエスト間で待機すべき秒数を指定します。Googlebotはこのディレクティブを無視することに注意してください。代わりにGoogle Search Consoleを使用してクロール速度を調整してください。
ワイルドカードを使用したパターンマッチング
最新のrobots.txtは、パターンマッチング用の2つの特殊文字をサポートしています:
| 文字 | 意味 | 例 | マッチするもの |
|---|---|---|---|
* |
任意の文字列にマッチ | Disallow: /*.pdf$ |
サイト上のすべてのPDFファイル |
$ |
URLの末尾にアンカー | Disallow: /private$ |
/privateのみ、/private/pageは除外 |
実用的なパターンの例
# クエリパラメータを含むすべてのURLをブロック
Disallow: /*?
# 特定のパラメータを含むすべてのURLをブロック
Disallow: /*?sessionid=
# すべてのPDFファイルをブロック
Disallow: /*.pdf$
# 特定の拡張子で終わるすべてのURLをブロック
Disallow: /*.php$
# 特定の文字列を含むURLをブロック
Disallow: /*sort=
# 複数のファイルタイプをブロック
Disallow: /*.json$
Disallow: /*.xml$
Disallow: /*.txt$
クイックヒント: Robots.txtテスターでパターンマッチングをテストして、本番環境にデプロイする前にワイルドカードが期待どおりに機能することを確認してください。
一般的な使用例とルール
robots.txtが非常に役立つ実際のシナリオを見てみましょう。これらの例は、ウェブサイトのクロールディレクティブを管理する際に遭遇する最も一般的な状況をカバーしています。
管理エリアのブロック
すべてのCMSには、検索結果に表示されるべきではない管理エリアがあります。これらのページはクロールバジェットを浪費し、サイトのインフラストラクチャに関する機密情報を公開する可能性があります。
# WordPress
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Allow: /wp-content/uploads/
# Drupal
Disallow: /admin/
Disallow: /user/
Disallow: /node/add/
# Magento
Disallow: /admin/
Disallow: /downloader/
Disallow: /customer/account/
重複コンテンツの問題の防止
eコマースサイトやブログは、ソート、フィルタリング、ページネーションを通じて重複コンテンツを生成することがよくあります。これらのバリエーションをブロックして、ランキングシグナルを統合します。
# ソートとフィルタリングパラメータをブロック
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?color=
Disallow: /*?size=
# 検索結果ページをブロック
Disallow: /search
Disallow: /?s=
Disallow: /search-results/
# タグとカテゴリのページネーションをブロック
Disallow: /tag/*/page/
Disallow: /category/*/page/
# 印刷バージョンをブロック
Disallow: /*/print$
Disallow: /*?print=
ステージング環境と開発環境の管理
ステージングサイトが公開アクセス可能な場合(異なるサブドメインであっても)、重複コンテンツのペナルティを避けるために、インデックス登録から絶対にブロックする必要があります。
# ステージング環境全体をブロック
User-agent: *
Disallow: /
# またはステージングサブディレクトリをブロック
Disallow: /staging/
Disallow: /dev/
Disallow: /test/
レンダリングに重要なリソースの許可
Googleは、ページを適切にレンダリングして理解するために、CSSおよびJavaScriptファイルにアクセスする必要があります。特定の理由がない限り、これらのリソースをブロックしないでください。
User-agent: *
# wp-contentのほとんどをブロック
Disallow: /wp-content/
# ただし、重要なレンダリングリソースを許可
Allow: /wp-content/uploads/
Allow: /wp-content/themes/*.css
Allow: /wp-content/themes/*.js
Allow: /wp-content/plugins/*.css
Allow: /wp-content/plugins/*.js
サイトマップの宣言
robots.txtには常にサイトマップの場所を含めてください。これにより、Search Console経由でサイトマップを送信した場合でも、クローラーがコンテンツをより効率的に発見できます。
# 単一のサイトマップ
Sitemap: https://example.com/sitemap.xml
# 異なるコンテンツタイプ用の複数のサイトマップ
Sitemap: https://example.com/sitemap-pages.xml
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-products.xml
Sitemap: https://example.com/sitemap-images.xml
プロのヒント: サイトマップジェネレーターを使用して、robots.txt設定を補完する包括的なXMLサイトマップを作成してください。
クロールバジェット最適化の理解
クロールバジェットとは、検索エンジンのクローラーが特定の期間内にサイトでアクセスするページ数を指します。1,000ページ未満の小規模サイトの場合、クロールバジェットはほとんど問題になりません。Googleはサイト全体を定期的に簡単にクロールします。
ただし、数万または数百万のページを持つ大規模サイトの場合、クロールバジェットの最適化