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
お問い合わせ
トラフィックに関するご質問や、修正のご要望はありますか? お気軽にご連絡ください。