SereneReader Bot

フィードフェッチャーの動作、識別方法、およびアクセスを拒否する方法。

SereneReader とは

SereneReader はフィードリーダーです。誰かがあなたの RSS または Atom フィードを購読すると、サーバーが代わりにフィードを取得し、新しい記事を表示します。

プレビュー画像を表示するために、各記事ページを一度取得して og:image タグを読み取り、サイドバー用にサイトのファビコンも取得します。

User-Agent

サーバーからのすべてのリクエストは、次の文字列で識別されます:

SereneReader/1.0 (+https://serenereader.com/bot)

取得するもの

  • 購読されたフィード URL。
  • 各記事ページを一度だけ取得し、og:image タグを見つけるために最大 1 MB の HTML を読み取ります。
  • サイトのファビコン。

サイトのクロールや記事ページからのリンクの追跡は行いません。誰も購読していないコンテンツは取得しません。

取得頻度

フィードは定期的に更新されます。サーバーが ETag または Last-Modified ヘッダーを返す場合、次回の更新時に If-None-Match または If-Modified-Since を送信します。フィードに変更がなければ 304 が返るだけで、本文の転送は発生しません。

各記事ページはプレビュー画像の取得のため一度だけアクセスします。取得できない場合はそこで停止します。404 などの恒久的なエラーは 30 日間記録され、タイムアウトやサーバーエラーなど一時的なものはバックオフを挟みながら最大 3 回再試行した後、少なくとも 1 時間はアクセスしません。

429 または 503 が返された場合、クロールを一時停止します。フィードの場合は、次回の更新を段階的なバックオフで延長し、429 の場合は少なくとも Retry-After の値だけ待機します。記事ページの場合は、約10分以内に最大3回リトライした後、少なくとも1時間、または Retry-After で指定された時間(最長7日間)待機します。

robots.txt

記事ページやファビコンを取得する前に、robots.txt を読み込み、User-agent: SereneReader の Disallow ルールとクロール遅延に従います。該当グループがない場合は * グループにフォールバックします。

フィードURLは異なります。フィードはそれを購読した読者の代わりに取得されるため、GoogleのFeedfetcherと同様の扱いをします。*グループのDisallowルールはフィードには適用されません。フィードパスを禁止するUser-agent: SereneReaderグループは引き続き尊重され、crawl-delayもその他のリクエストと同様にフィードに適用されます。

サーバーエラーにより robots.txt にアクセスできない場合、取得を許可しているものとして扱います。購読はユーザーによる明示的な同意であり、不安定な robots.txt がフィードの配信を妨げるべきではありません。

ブロックする方法

サーバーまたはファイアウォールで上記の User-Agent をブロック・レート制限するか、robots.txt でボット名を指定したグループを使ってアクセスを拒否してください。すべてのボットを対象としたルールではフィードの取得は止まりません。以下のように指定することで対応できます:

User-agent: SereneReader
Disallow: /

フィード URL をブロックすると、特定のリーダーだけでなく、購読しているすべてのユーザーの更新が停止します。

リクエスト署名

リクエストは Web Bot Auth(HTTP メッセージ署名、RFC 9421)で署名されており、本当に当サーバーからのものであることを確認できます。公開鍵は以下で公開されています:

https://serenereader.com/.well-known/http-message-signatures-directory

送信元IPアドレス

定期的なフィードの更新とプレビュー画像の取得は、以下の固定アドレスから行われます。誰かが初めてフィードを追加した際の一度限りの取得はウェブサーバーから行われるため、このリストには含まれていません。IPアドレスのみによる許可リストでは、その取得が拒否されます。

162.220.234.241
152.55.180.242
152.55.180.243

機械可読リスト/bot/ips.json

お問い合わせ

トラフィックに関するご質問や、修正のご要望はありますか? お気軽にご連絡ください。