戻る

Geminiのためのrobots.txt

はじめに

 この文書は、自動化されたクライアント(検索エンジンのクローラー、Webプロキシなど。以下、「ボット」という。)によるアクセスを制御するためのウェブの事実上の標準である「robots.txt」ファイルの、Geminiにおける取扱いについて述べています。

 Geminiサーバー管理者は、ボットに対するアクセスに対し、robots.txtを使用して、機械可読形式でサイトとしての希望を伝えることができます。

 ボットの作者は、そのようなサイトとしての希望を確認し、robots.txtを見つけた場合はそれに従うことが強く推奨されます。

 サーバー管理者は、robots.txtによる完全な制御は不可能であることを理解する必要があるとともに、悪質なボットによるアクセスをブロックするために、ファイアウォールなどを使用する用意をしておく必要があります。これはGeminiとWebに等しく当てはまります。

基本事項

 Geminiサーバー管理者は、サーバー内の公開用ディレクトリの直下にrobots.txtを置き、「サイト名/robots.txt」として見えるようにすることで、そのサーバーのロボットに対する希望を伝えることができます。例えば、「example.net」は「gemini://example.net/robots.txt」でその希望を伝えることができます。

 robots.txtファイルは、装飾のないプレーンなテキスト(MIMEメディアタイプtext/plain)で提供される必要があります。

 robots.txtファイルの形式は、ウェブ用のオリジナルのrobots.txtの仕様に従います。例えば、

「#」で始まる行は、コメントです。
「User-agent:」で始まる行は、それ以降の行に適用されるユーザーエージェントを示します。
「Disallow:」で始まる行は、ボットの要求を拒絶するURLパスのプレフィックスを示します。
それ以外の行は無視されます。
 Web上のrobots.txtとGemini上のrobots.txtの自明ではない唯一の違いは、Gemini管理者は、どのボットがなぜ自分のサイトにアクセスしているのかを容易に知ることができないため(Geminiクライアントはユーザーエージェントを送信しない)、Geminiボットはその目的/機能に応じて「仮想ユーザーエージェント」用の指示に従うことが推奨される点です。これらについては後述します。

 この違いにもかかわらず、Geminiボットは、「User-agent:*」として指定されたすべてのユーザーエージェントに向けられたrobots.txtの指示を尊重すべきです。また、例えば、彼らが提供するあらゆるパブリックサービスのGeminiページで目立つように宣伝する、彼ら自身の個別のユーザーエージェントに向けられた指示も尊重してもよいでしょう。

仮想ユーザーエージェント

 以下は、さまざまな「仮想ユーザーエージェント」の定義で、それぞれがボットの一般的なカテゴリに対応しています。Geminiのボットは、自分の活動に一致するバーチャルユーザーエージェントに向けられた指示を尊重すべきです。もちろん、ボットの明確な分類を可能にするようなユーザーエージェントの完璧な定義を思いつくことは不可能です。ボット作者は、このシステムの「文字」ではなく「精神」に従って、慎重に行動することが推奨されます。ボットが複数のバーチャル・ユーザー・エージェントの定義を満たし、その挙動を細かく調整できない場合、適用可能なすべてのバーチャル・ユーザー・エージェントの組み合わせから生じる最も制限的な指示に従うべきです。

アーカイビングクローラー

 Geminiスペースの公開長期アーカイブを構築するためにコンテンツを取得するGeminiボットは、オリジナルが変更または消滅した後でも古いGeminiのコンテンツを提供します(archive.orgの「ウェイバックマシン」に類似)。

インデックスを作成するクローラー

 Geminiスペースで検索可能なインデックスを構築するためにコンテンツを取得するGeminiボットは、ユーザーエージェントが「indexer」の場合、robots.txtの指示に従わなければなりません。

リサーチクローラー

 Geminiスペースの大規模な統計的特性(ドメイン/ページ数、MIMEメディアタイプの分布、レスポンスサイズ、TLSバージョン、リンク切れの頻度など)を研究するためにコンテンツを取得するGeminiボットは、取得したコンテンツの再ホスト、リンク、検索を許可せずに、ユーザーエージェント「resercher」を対象としたrobots.txtの指示に従わなければなりません。

Webプロキシ

 コンテンツをHTMLに翻訳し、HTTP(S)で結果を公に提供するためにコンテンツを取得するGeminiボットは(標準的なウェブブラウザからGeminiスペースにアクセスできるようにするために)ユーザーエージェント「webproxy」を対象としたrobots.txtの指示に従わなければなりません。

(原典)gemini://gemini.circumlunar.space/docs/companion/robots.gmi
(2022年12月13日 初版)

戻る