robots.txt は、ロボット排除プロトコルを実装するために使用されるファイル名です。ロボット排除プロトコルは、Web サイトが、訪問するWeb クローラーやその他のWeb ロボットに、Web サイトのどの部分の訪問が許可されているかを示すために使用する標準です。
1994年に開発されたこの標準規格は、自主的なコンプライアンスに依存しています。悪意のあるボットは、このファイルをどのページを訪問するかのディレクトリとして使用できますが、標準化団体は、これを隠蔽によるセキュリティで対抗することを推奨していません。一部のアーカイブサイトはrobots.txtを無視します。この標準規格は、1990年代にサーバーの過負荷を軽減するために使用されました。2020年代には、多くのWebサイトが、生成型人工知能のために情報を収集するボットを拒否し始めました。[引用が必要]
「robots.txt」ファイルは、ウェブサイトの別のロボット組み込み標準であるサイトマップと組み合わせて使用できます。
歴史
この標準は、Martijn Koster [1] [2]がNexor [3]で働いていた1994 年 2 月[4]に、当時の WWW 関連活動の主なコミュニケーション チャネルであったwww-talkメーリング リストで提案したものです。Charles Stross は、 Koster が動作の悪い Web クローラーを作成したために、Koster のサーバーにサービス拒否攻撃が誤って発生したため、Koster に robots.txt を提案するよう促したと主張しています。[5]
この標準規格は当初RobotsNotWanted.txtと呼ばれ、Web開発者がどのボットが自分のWebサイトにアクセスできないようにするか、どのページにアクセスできないようにするかを指定できるようにした。1994年当時のインターネットは、すべてのボットの完全なリストを維持できるほど小さく、サーバーの過負荷が主な懸念事項だった。1994年6月までに、この標準規格は事実上の標準となり、[6] WebCrawler、Lycos、AltaVistaなどの検索エンジンが運営するサイトを含め、ほとんどのサイトが準拠した。[7]
2019年7月1日、Googleはインターネット技術タスクフォースの下でロボット排除プロトコルの公式標準の提案を発表しました。[8]提案された標準[9]は2022年9月にRFC 9309として公開されました。
標準
サイト所有者が Web ロボットに指示を与える場合、Web サイト階層のルートにrobots.txtというテキスト ファイルを配置します (例: https://www.example.com/robots.txt )。このテキスト ファイルには、特定の形式で指示が含まれています (以下の例を参照)。指示に従うことを選択したロボットは、Web サイトから他のファイルを取得する前に、このファイルを取得して指示を読み取ろうとします。このファイルが存在しない場合、Web ロボットは、Web サイト所有者がサイト全体のクロールに対して制限を設けたくないと想定します。
robots.txt ファイルには、ボットがアクセスできる Web ページとアクセスできない Web ページを示す指示が含まれています。robots.txt ファイルは、Google などの検索エンジンの Web クローラーにとって特に重要です。
ウェブサイト上の robots.txt ファイルは、サイトをクロールする際に特定のロボットが特定のファイルやディレクトリを無視するように要求するものとして機能します。これは、たとえば、検索エンジンの結果からプライバシーを優先する場合、または選択されたディレクトリの内容が誤解を招く可能性がある、またはサイト全体の分類とは無関係である可能性があるという確信から、またはアプリケーションが特定のデータのみで動作することを望む場合などです。robots.txt にリストされているページへのリンクは、クロールされたページからリンクされている場合、検索結果に表示されることがあります。[10]
robots.txt ファイルは 1 つのoriginをカバーします。複数のサブドメインを持つ Web サイトの場合、各サブドメインには独自の robots.txt ファイルが必要です。example.com にはrobots.txt ファイルがあり、a.example.comにはない場合、 example.comに適用されるルールはa.example.comには適用されません。また、各プロトコルとポートには独自の robots.txt ファイルが必要です。http://example.com/robots.txt はhttp://example.com:8080/またはhttps://example.com/のページには適用されません。
コンプライアンス
robots.txtプロトコルはボット運営者によって広く遵守されています。[6]
検索エンジン
この標準に準拠している主要な検索エンジンには、Ask、 [11] AOL、[12] Baidu、[13] Bing、[14] DuckDuckGo、[15] Kagi、[16] Google、[17] Yahoo!、[18] Yandex [19]などがあります。
アーカイブサイト
一部のウェブアーカイブプロジェクトはrobots.txtを無視します。Archive Teamは、サイトマップなどのリンクをさらに発見するためにこのファイルを使用します。[20]共同創設者のジェイソン・スコットは、「robots.txtファイルをチェックせずにそのままにしておくと、ウェブサイトのコンテキストを超えて一般的な用途や意味を持つ可能性のあるアイテムのミラーリングや参照が行われなくなります」と述べています。 [21] 2017年、インターネットアーカイブはrobots.txtの指示に従わなくなると発表しました。[22] [6] Digital Trendsによると、これは検索エンジンの結果から歴史的なサイトを削除するためにrobots.txtが広く使用されたことを受けてのものであり、以前存在していたインターネットの「スナップショット」をアーカイブするという非営利団体の目的とは対照的でした。[23]
人工知能
2020年代から、ウェブ運営者はrobots.txtを使用して、生成AIのトレーニングデータを収集するボットのアクセスを拒否し始めました。2023年、Originality.AIは、最も訪問数の多い1000のウェブサイトのうち306がrobots.txtファイルでOpenAIのGPTBotをブロックし、85がGoogleのGoogle-Extendedをブロックしていることを発見しました。多くのrobots.txtファイルでは、すべてのページで明示的に禁止されている唯一のボットとしてGPTBotが指定されていました。GPTBotへのアクセスを拒否することは、BBCやThe New York Timesなどのニュースウェブサイトでは一般的でした。2023年、ブログホストのMediumは、「AI企業がインターネットの読者にスパムを送信するためにライターから価値を吸い上げている」として、すべての人工知能ウェブクローラーへのアクセスを拒否すると発表した。[6]
GPTBotはrobots.txt標準に準拠しており、ウェブ運営者にそれを禁止する方法についてアドバイスを提供しているが、The VergeのDavid Pierce氏は、これは「それを非常に強力にした基礎モデルをトレーニングした後」に始まっただけだと述べた。また、一部のボットは検索エンジンと人工知能の両方に使用されており、これらのオプションの1つだけをブロックすることは不可能である可能性がある。[6] 404 Mediaは、 AnthropicやPerplexity.aiなどの企業が、人気のあるブロックリストに表示されたスクレーパーの名前を変更したり、新しいスクレーパーを起動したりしてrobots.txtを回避したと報じた。[24]
安全
allowとdisallowという用語が使用されているにもかかわらず、このプロトコルは純粋に助言的であり、Web ロボットのコンプライアンスに依存しています。ファイルに記載されている内容を強制することはできません。[25]悪意のある Web ロボットが robots.txt を尊重する可能性は低く、robots.txt をガイドとして使用して、許可されていないリンクを見つけ、直接そこにアクセスするロボットもいます。これはセキュリティ上のリスクであると主張されることもありますが、[26]標準化団体はこのような隠蔽によるセキュリティを推奨していません。米国の国立標準技術研究所(NIST) は、この慣行を特に推奨していません。「システム セキュリティは、実装またはそのコンポーネントの秘密性に依存すべきではありません。」 [27] robots.txt ファイルのコンテキストでは、隠蔽によるセキュリティはセキュリティ手法として推奨されていません。[28]
代替案
多くのロボットは、コンテンツを取得する際に特別なユーザーエージェントをウェブサーバーに渡します。[29]ウェブ管理者は、ロボットのいずれかを使用した接続を検出したときに、自動的に失敗を返す(または代替コンテンツを渡す)ようにサーバーを設定することもできます。 [30] [31]
Googleなどの一部のサイトでは、humans.txt人間が読むための情報を表示するファイルをホストしています。[32] GitHubなどの一部のサイトでは、 humans.txtをAboutページにリダイレクトします。[33]
以前、グーグルは、ターミネーターに同社の創設者であるラリー・ペイジとセルゲイ・ブリンを/killer-robots.txt殺さないように指示するジョークファイルをホストしていた。[34] [35]
例
*この例では、ワイルドカードはすべてのロボットを表し、ディレクティブDisallowには値がない
ため、すべてのロボットがすべてのファイルにアクセスできることを伝えます。つまり、ページは許可されません。
ユーザーエージェント: * 許可しない:
この例は同じ効果があり、何も禁止しないのではなく、すべてのファイルを許可します。
ユーザーエージェント: * 許可する: /
robots.txt ファイルが空または存在しない場合でも、同じ結果が実現されます。
この例では、すべてのロボットに Web サイトにアクセスしないように指示します。
ユーザーエージェント: * 許可しない: /
この例では、すべてのロボットに 3 つのディレクトリに入らないように指示します。
ユーザーエージェント: * 許可しない: /cgi-bin/ 許可しない: /tmp/ 禁止: /junk/
この例では、すべてのロボットに特定のファイルから離れるように指示します。
ユーザーエージェント: * 許可しない: /directory/file.html
指定されたディレクトリ内の他のすべてのファイルが処理されます。
ユーザーエージェント: BadBot # 'BadBot' をボットの実際のユーザーエージェントに置き換えます 許可しない: /
この例では、2 つの特定のロボットに、特定のディレクトリに入らないように指示します。
ユーザーエージェント: BadBot # 'BadBot' をボットの実際のユーザーエージェントに置き換えます ユーザーエージェント: Googlebot 禁止: /private/
コメントの使用方法を示す例:
# コメントは行頭の「#」記号の後、またはディレクティブの後に表示されます ユーザーエージェント: * # すべてのボットに一致 Disallow: / # 許可しない
複数のロボットをそれぞれ独自のルールでリストすることも可能です。実際のロボット文字列はクローラーによって定義されます。Googleなどのいくつかのロボットオペレーターは、複数のユーザーエージェント文字列をサポートしており、オペレーターは特定のユーザーエージェント文字列を使用してサービスのサブセットへのアクセスを拒否できます。[17]
複数のユーザーエージェントを示す例:
ユーザーエージェント: googlebot # すべての Google サービス Disallow: /private/ # このディレクトリを許可しない ユーザーエージェント: googlebot-news # ニュースサービスのみ Disallow: / # すべてを許可しない ユーザーエージェント: * # 任意のロボット Disallow: /something/ # このディレクトリを許可しない
非標準の拡張機能
クロール遅延指令
crawl-delay 値は、ホストへの訪問を絞るために一部のクローラーでサポートされています。この値は標準の一部ではないため、解釈はクローラーの読み取りに依存します。これは、ボットからの複数の訪問のバーストによりホストが遅くなっている場合に使用されます。Yandex は、この値を後続の訪問間の待機秒数として解釈します。[19] Bing は、crawl-delay を、BingBot が Web サイトに 1 回だけアクセスする時間ウィンドウのサイズ (1 秒から 30 秒) として定義しています。[36] Google はこの指示を無視しますが、[37] Googlebotの後続の訪問を制御するためのインターフェイスを Web マスター向けに検索コンソールに提供しています。 [38]
ユーザーエージェント: bingbot 許可する: / クロール遅延: 10
サイトマップ
一部のクローラーはSitemapディレクティブをサポートしており、同じサイトに複数のサイトマップを記述できます。ロボット形式:[39]Sitemap: full-url
サイトマップ: http://www.example.com/sitemap.xml
ユニバーサル「*」マッチ
ロボット排除基準では、文中の「*」文字については言及されていないDisallow:。[40]
メタタグとヘッダー
ルートレベルの robots.txt ファイルに加えて、ロボット除外ディレクティブは、Robots メタタグと X-Robots-Tag HTTP ヘッダーを使用して、より細かいレベルで適用できます。robots メタタグは、画像、テキストファイル、PDF ドキュメントなどの非 HTML ファイルには使用できません。一方、X-Robots-Tag は、.htaccess ファイルと httpd.conf ファイルを使用して非 HTML ファイルに追加できます。[ 41 ]
「noindex」メタタグ
<メタ 名= "ロボット" コンテンツ= "noindex" />
「noindex」HTTPレスポンスヘッダー
X-Robots-タグ: noindex
X-Robots-Tag はページがリクエストされサーバーが応答した後にのみ有効であり、robots メタタグはページがロードされた後にのみ有効ですが、robots.txt はページがリクエストされる前に有効です。したがって、ページが robots.txt ファイルによって除外されている場合、ロボットはそもそもそれらを認識しないため、robots メタタグまたは X-Robots-Tag ヘッダーは事実上無視されます。[41]
robots.txt ファイルの最大サイズ
ロボット排除プロトコルでは、クローラーが少なくとも500キビバイト(512000バイト)のrobots.txtファイルを解析することを要求しており、[42] Googleはrobots.txtファイルのファイルサイズ制限を500キビバイトとしています。[43]
参照
ads.txt、認定広告販売業者をリストするための標準security.txtセキュリティ研究者がセキュリティの脆弱性を報告するために従うべきプロセスを記述したファイル- eBay 対 Bidder's Edge
- 自動コンテンツ アクセス プロトコル– robots.txt を拡張する失敗した提案
- BotSeer – robots.txt ファイル用の検索エンジンは現在非アクティブです
- 分散ウェブクロール
- 集中クローラー
- インターネットアーカイブ
- 検索エンジンのメタ要素
- 国立デジタル図書館プログラム(NDLP)
- 国家デジタル情報インフラストラクチャおよび保存プログラム(NDIIPP)
- ノーフォロー
- インデックスなし
- パーマ.cc
- サイトマップ
- クモトラップ
- ウェブアーカイブ
- ウェブクローラー
参考文献
- ^ “Historical”. Greenhills.co.uk . 2017年4月3日時点のオリジナルよりアーカイブ。2017年3月3日閲覧。
- ^ Fielding, Roy (1994). 「分散ハイパーテキスト情報構造の維持: MOMspider の Web へようこそ」(PostScript)。第 1 回 World Wide Web 国際会議。ジュネーブ。2013 年 9 月 27 日時点のオリジナルよりアーカイブ。2013年9 月 25 日閲覧。
- ^ 「The Web Robots Pages」。Robotstxt.org。1994年6月30日。2014年1月12日時点のオリジナルよりアーカイブ。2013年12月29日閲覧。
- ^ Koster, Martijn (1994 年 2 月 25 日). 「重要: スパイダー、ロボット、Web 放浪者」。www -talk メーリング リスト。2013 年 10 月 29 日時点のオリジナル( Hypermailアーカイブ メッセージ)からアーカイブ。
- ^ 「結局、ここに至った経緯、第 5 部: 「物事は良くなる一方だ!」」Charlie's Diary . 2006 年 6 月 19 日。2013 年 11 月 25 日時点のオリジナルよりアーカイブ。2014年4 月 19 日閲覧。
- ^ abcde ピアース、デイビッド(2024年2月14日)。「インターネットを動かすテキストファイル」ザ・ヴァージ。 2024年3月16日閲覧。
- ^ Barry Schwartz (2014年6月30日). 「Robots.txt が検索エンジンをブロックして20周年を祝う」. Search Engine Land . 2015年9月7日時点のオリジナルよりアーカイブ。 2015年11月19日閲覧。
- ^ 「ロボット排除プロトコル仕様の形式化」。公式 Google ウェブマスター向けセントラル ブログ。2019 年 7 月 10 日時点のオリジナルよりアーカイブ。2019年 7 月 10 日閲覧。
- ^ Koster, M.; Illyes, G.; Zeller, H.; Sassman, L. (2022 年 9 月). ロボット排除プロトコル. IETF . doi : 10.17487/RFC9309 . RFC 9309. 提案された標準。
- ^ 「検索結果内のクロールされていない URL」。YouTube。2009 年 10 月 5 日。2014 年 1 月 6 日時点のオリジナルよりアーカイブ。2013年 12 月 29 日閲覧。
- ^ 「About Ask.com: Webmasters」。About.ask.com。2013年1月27日時点のオリジナルよりアーカイブ。2013年2月16日閲覧。
- ^ 「AOL Searchについて」。Search.aol.com。2012年12月13日時点のオリジナルよりアーカイブ。 2013年2月16日閲覧。
- ^ “Baiduspider”. Baidu.com . 2013年8月6日時点のオリジナルよりアーカイブ。2013年2月16日閲覧。
- ^ 「ロボット排除プロトコル: より良いドキュメントを提供するために協力」。Blogs.bing.com。2008年6月3日。2014年8月18日時点のオリジナルよりアーカイブ。2013年2月16日閲覧。
- ^ 「DuckDuckGo Bot」。DuckDuckGo.com。2017年2月16日時点のオリジナルよりアーカイブ。2017年4月25日閲覧。
- ^ “Kagi Search KagiBot”. Kagi Search . 2024年4月12日時点のオリジナルよりアーカイブ。 2024年11月20日閲覧。
- ^ ab 「ウェブマスター: robots.txt の仕様」。Google Developers。2013年 1 月 15 日時点のオリジナルよりアーカイブ。2013 年2 月 16 日閲覧。
- ^ 「ウェブサイトをYahoo!検索に送信する」。2013年1月21日時点のオリジナルよりアーカイブ。2013年2月16日閲覧。
- ^ ab 「robots.txt の使用」。Help.yandex.com。2013年 1 月 25 日時点のオリジナルよりアーカイブ。2013 年2 月 16 日閲覧。
- ^ “ArchiveBot: Bad behavior”. wiki.archiveteam.org . Archive Team. 2022年10月10日時点のオリジナルよりアーカイブ。 2022年10月10日閲覧。
- ^ Jason Scott . 「Robots.txt は自殺メモだ」。アーカイブチーム。2017年2月18日時点のオリジナルよりアーカイブ。 2017年2月18日閲覧。
- ^ “検索エンジン向けのrobots.txtはウェブアーカイブではうまく機能しない | Internet Archive Blogs”. blog.archive.org . 2017年4月17日. 2018年12月4日時点のオリジナルよりアーカイブ。 2018年12月1日閲覧。
- ^ Jones, Brad (2017年4月24日). 「インターネットアーカイブは正確性を維持するためにrobots.txtファイルを無視します」。デジタルトレンド。2017年5月16日時点のオリジナルよりアーカイブ。 2017年5月8日閲覧。
- ^ Koebler, Jason (2024-07-29). 「ウェブサイトが間違った AI スクレイパーをブロックしている (AI 企業が新しいスクレイパーを作り続けているため)」. 404 Media . 2024-07-29閲覧。
- ^ 「robots.txt で URL をブロックする: robots.txt ファイルについて学ぶ」。2015 年 8 月 14 日時点のオリジナルよりアーカイブ。2015 年 8 月 10 日閲覧。
- ^ 「Robots.txt はハッカーに見られたくない場所を知らせる」The Register。2015 年 8 月 21 日時点のオリジナルよりアーカイブ。2015 年8 月 12 日閲覧。
- ^ Scarfone, KA; Jansen, W.; Tracy, M. (2008 年 7 月). 「Guide to General Server Security」(PDF) . National Institute of Standards and Technology . doi :10.6028/NIST.SP.800-123. 2011 年 10 月 8 日時点のオリジナルよりアーカイブ(PDF) . 2015 年8 月 12 日閲覧。
- ^ Sverre H. Huseby (2004)。Innocent Code: Web プログラマーのためのセキュリティの警鐘。John Wiley & Sons。91~92 ページ。ISBN 9780470857472. 2016年4月1日時点のオリジナルよりアーカイブ。2015年8月12日閲覧。
- ^ 「ユーザーエージェント一覧 (スパイダー、ロボット、ブラウザ)」。User-agents.org。2014年1月7日時点のオリジナルよりアーカイブ。 2013年12月29日閲覧。
- ^ 「アクセス制御 - Apache HTTP Server」。Httpd.apache.org。2013年12月29日時点のオリジナルよりアーカイブ。2013年12月29日閲覧。
- ^ 「フィルタリング ルールの拒否文字列 : 公式 Microsoft IIS サイト」。Iis.net。2013 年 11 月 6 日。2014 年 1 月 1 日時点のオリジナルからアーカイブ。2013年 12 月 29 日取得。
- ^ “Google humans.txt”. 2017年1月24日時点のオリジナルよりアーカイブ。2019年10月3日閲覧。
- ^ “Github humans.txt”. GitHub . 2016年5月30日時点のオリジナルよりアーカイブ。2019年10月3日閲覧。
- ^ Newman, Lily Hay (2014-07-03). 「これはGoogleのイースターエッグか、それともSkynetが実際に世界征服を企んでいる証拠か?」。Slate Magazine。2018年11月18日時点のオリジナルよりアーカイブ。 2019年10月3日閲覧。
- ^ “/killer-robots.txt”. 2018年1月10日. 2018年1月10日時点のオリジナルよりアーカイブ。2018年5月25日閲覧。
- ^ 「クロールするかしないか、それが BingBot の疑問だ」 2012 年 5 月 3 日。2016 年 2 月 3 日時点のオリジナルよりアーカイブ。2016年2 月 9 日閲覧。
- ^ 「Google による robots.txt 仕様の解釈」。Google検索セントラル。2024 年 5 月 23 日。2024年 10 月 6 日閲覧。
- ^ 「Googlebot のクロール レートを変更する - Search Console ヘルプ」。support.google.com。2018年 11 月 18 日時点のオリジナルよりアーカイブ。2018 年10 月 22 日閲覧。
- ^ 「Yahoo! 検索ブログ - ウェブマスターはサイトマップを使用して自動検出できるようになりました」。2009 年 3 月 5 日時点のオリジナルよりアーカイブ。2009年 3 月 23 日閲覧。
- ^ 「Robots.txt の仕様」。Google Developers。2019年11月2日時点のオリジナルよりアーカイブ。2020年2月15日閲覧。
- ^ ab 「Robots メタタグと X-Robots-Tag HTTP ヘッダーの仕様 - ウェブマスター - Google Developers」。2013 年 8 月 8 日時点のオリジナルよりアーカイブ。2013年 8 月 17 日閲覧。
- ^ Koster, M.; Illyes, G.; Zeller, H.; Sassman, L. (2022 年 9 月). ロボット排除プロトコル. IETF . doi : 10.17487/RFC9309 . RFC 9309. 提案された規格。セクション 2.5: 制限。
- ^ 「Google による robots.txt 仕様の解釈 | ドキュメント」。Google Developers。2022年 10 月 17 日時点のオリジナルよりアーカイブ。2022年 10 月 17 日閲覧。
さらに読む
- Allyn, Bobby (2024年7月5日). 「人工知能ウェブクローラーが暴走中」. All Things Considered . NPR . 2024年7月6日時点のオリジナルよりアーカイブ。2024年7月6日閲覧。
外部リンク
- 公式サイト
