O bot do SereneReader

O que nosso buscador de feeds faz, como se identifica e como bloqueá-lo.

O que é o SereneReader

SereneReader é um leitor de feeds. Quando alguém assina seu feed RSS ou Atom, nossos servidores o buscam em nome do assinante e exibem os novos artigos.

Para exibir uma imagem de prévia, também acessamos cada página de artigo uma vez para ler sua tag og:image, e buscamos o favicon do seu site para a barra lateral.

User-Agent

Toda requisição dos nossos servidores se identifica com esta string:

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

O que buscamos

  • URLs de feeds que as pessoas assinaram.
  • Cada página de artigo, uma vez, lendo no máximo 1 MB de HTML para encontrar a tag og:image.
  • O favicon do seu site.

Nunca rastreamos um site, nunca seguimos links de páginas de artigos e nunca buscamos conteúdo que ninguém assinou.

Com que frequência

Os feeds são atualizados periodicamente. Quando seu servidor envia um cabeçalho ETag ou Last-Modified, a próxima atualização envia If-None-Match ou If-Modified-Since, de modo que um feed inalterado resulta apenas em um 304, sem corpo.

Cada página de artigo é buscada uma vez, para obter a imagem de prévia. Se a página não puder ser acessada, paramos: uma falha permanente, como um 404, é registrada por 30 dias; uma falha temporária, como timeout ou erro de servidor, é tentada até três vezes com recuo progressivo e, em seguida, ignorada por pelo menos uma hora.

Um código 429 ou 503 nos indica para recuar. Para feeds, adiamos a próxima atualização com um recuo progressivo e, em caso de 429, por pelo menos o valor do seu Retry-After. Para páginas de artigos, podemos tentar novamente até três vezes nos próximos dez minutos, depois aguardamos pelo menos uma hora — ou o tempo indicado pelo seu Retry-After, por até sete dias.

robots.txt

Antes de buscar uma página de artigo ou um favicon, lemos seu robots.txt e seguimos as regras de Disallow e crawl-delay para User-agent: SereneReader, recorrendo ao grupo * como alternativa.

URLs de feeds são diferentes. Um feed é buscado em nome de um leitor que o assinou, então o tratamos como o Feedfetcher do Google faz: as regras Disallow do grupo * não se aplicam a ele. Um grupo User-agent: SereneReader que proíbe o caminho do feed ainda é respeitado, e o crawl-delay se aplica aos feeds da mesma forma que a todo o resto.

Se seu robots.txt estiver inacessível por erro de servidor, tratamos isso como permissão para a busca. Uma assinatura é um consentimento explícito do leitor, e um arquivo robots instável não deve interromper o feed dele.

Como nos bloquear

Bloqueie ou limite o User-Agent acima no seu servidor ou firewall, ou nos rejeite no robots.txt com um grupo que nos identifique. Uma regra para todos os bots não impede buscas de feed; esta sim:

User-agent: SereneReader
Disallow: /

Bloquear a URL do seu feed interrompe as atualizações para todos que assinaram, não apenas para um leitor.

Assinaturas de requisição

As requisições são assinadas com Web Bot Auth (assinaturas de mensagem HTTP, RFC 9421) para que você possa verificar que realmente vieram de nós. Nossas chaves públicas estão publicadas em:

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

Endereços IP de saída

As atualizações programadas de feeds e as buscas de imagens de prévia partem destes endereços estáticos. A busca única feita quando alguém adiciona um feed pela primeira vez vem dos nossos servidores web e não consta nesta lista; portanto, uma lista de permissões apenas por IP irá rejeitá-la.

162.220.234.241
152.55.180.242
152.55.180.243

Lista legível por máquina/bot/ips.json

Contato

Dúvidas sobre nosso tráfego ou algo que deseja que corrijamos? Entre em contato.