多くのウェブサイトはスクレイパーをブロックすることだけを意図していますが、結果として検索エンジンのクローラーまでブロックしてしまうことがあります。
また、robots.txt に非常にプロフェッショナルに見える User-Agent をたくさん書いたケースも見ましたが、実際にはどれも機能せず、サーバーは依然として大量にクロールされていました。
次に、実務的なウェブマスターの視点から、robots.txt の User-Agent は実際にどのように書くべきか、落とし穴を最小限に抑え問題を回避する方法について説明します。

User-Agent は、検索エンジンやクローラーに対して「このルールは誰に適用されるのか」を伝える方法です。
例えば、最も一般的なケース: User-agent: * Disallow: /admin/
ここでの * は、検索エンジンのボット、スクレイピングツール、特定の自動化スクリプトを含むすべてのクローラーを表します。
そして、もしこのように書いた場合: User-agent: Googlebot Disallow: /test/
これは Google のクローラーのみが制限され、他のクローラーには影響しません。
したがって、User-Agent が正しく書かれているかどうかは、robots.txt のルールが実際に機能するかどうかを直接決定します。
多くの初心者は、クローラー名だけで正体を判断する間違いを犯します。例えば、リクエストヘッダーに Googlebot が表示されると、それは必ず Google のクローラーだと仮定します。
実際には、現在多くのツールが User-Agent を偽装できるため、文字列だけに頼るのは信頼できません。
ここで User-Agent の解析が重要になります:
• 公式 UA 仕様に準拠しているか
• 適切なシステム情報を含んでいるか
• IP 範囲と一致しているか
• 通常の検索エンジンクローラーの挙動に似ているか
これが、あるウェブマスターが Googlebot を robots.txt に許可しても、サーバーが異常なクロールで圧倒される理由です。
この形式は問題ありませんが、本当にどのクローラーも制限するつもりがない場合のみです。
管理パネルやテストディレクトリ、重複コンテンツページがある場合は、個別のルールを追加する方が良いです。
より安全な方法は:
この方法の利点は以下の通りです:
• 読みやすさが向上
• トラブルシューティングが簡単
• ワイルドカードルールによる誤ブロックを防止
一部のオンラインチュートリアルでは「高級そうに見える」UA をブロックする方法を教えていますが、多くは実際には存在しません。robots.txt はエラーを出しませんが、これらのルールは事実上無意味です。
現代のスクレイパーや自動化ツールは、robots.txt を全く気にしません。彼らが本当に注目しているのは:
• ブラウザフィンガープリントの検出
• 行動パターン
• リクエスト頻度
• JavaScript 実行能力
つまり、User-Agent が完璧に書かれていても、基本的なブラウザフィンガープリント検出がなければ、攻撃者は「完全に正規に見える」クローラーをシミュレートできます。
これが、多くのサイトがフィンガープリント識別と行動分析を組み合わせてアクセス制御を行う理由です。
ToDetect のフィンガープリント検索ツールを利用すると、次のことが確認できます:
• UA が多数のツールで再利用されているか
• 異常なフィンガープリントの組み合わせがあるか
• 通常のブラウザ環境に一致しているか
• 明らかな自動化の特徴があるか
このステップは「本物のクローラーと偽物のクローラー」を判別するのに非常に役立ちます。特に中規模から大規模のウェブサイトでは重要です。
• robots.txt は大文字小文字を区別します。User-Agent 名は公式の大文字表記に従うべきです。
• 同じ User-Agent の下で矛盾するルールを書かない
• robots.txt を変更した後はキャッシュをクリアして再テストする
• 検索エンジンは robots ルールを遅延適用するため、即座には効果が現れません
これらの詳細を無視すると、多くの人が「robots.txt は機能しない」と誤解してしまいます。
もしあなたのウェブサイトが既に大量にスクレイプされていたり、トラフィックで溢れている場合、1つの User-Agent ルールだけで「すべてをブロックできる」と期待してはいけません。
robots.txt の User-Agent エントリは実在し、標準化されている必要があります。User-Agent だけに頼らず、解析と行動分析を組み合わせる方がはるかに信頼性があります。
スクレイピング防止は robots.txt から始まりますが、ToDetect のブラウザフィンガープリント検出が真の鍵です。サイトが大規模であれば、フィンガープリントと行動分析に一歩進むべきです。