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.

Quando uma entrada de feed não tem imagem, buscamos a página do artigo uma vez para ler a tag og:image e gerar uma prévia. Também buscamos o ícone 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.
  • Páginas de artigos sem imagem, geralmente uma vez cada, lendo no máximo 1 MB de HTML para localizar a tag og:image.
  • O ícone do seu site: o declarado no feed, /favicon.ico, /apple-touch-icon.png ou /apple-touch-icon-precomposed.png.

Não rastreamos sites nem seguimos links de páginas de artigos. Além dos feeds assinados, buscamos um feed do nosso catálogo Discover quando um leitor autenticado o visualiza e não temos artigos armazenados, e ao verificar um feed antes de adicioná-lo ao catálogo.

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.

Normalmente buscamos cada página de artigo uma vez, para a imagem de prévia. Uma falha permanente, como um erro 404, é registrada por 30 dias. Uma falha temporária, como timeout ou erro 500, é repetida até três vezes, com intervalos de cerca de 30 segundos, 1 minuto e 2 minutos, e então a página fica em espera por pelo menos uma hora.

Um erro 429 ou 503 indica que devemos recuar. Para feeds, cada falha de atualização adia a próxima tentativa, começando em 15 minutos e dobrando até um dia; em caso de 429, também aguardamos o tempo indicado no cabeçalho Retry-After, ou mais. Para páginas de artigos, um 429 ou 503 é tratado como falha temporária, com até três novas tentativas em cerca de três minutos e meio. Depois disso, aguardamos o tempo solicitado pelo Retry-After, até sete dias, ou sete dias caso ele não seja enviado.

robots.txt

Antes de nossos buscadores agendados solicitarem uma página de artigo ou o ícone do seu site, eles leem seu robots.txt e seguem as regras Disallow e crawl-delay para User-agent: SereneReader, usando o grupo * como alternativa. A solicitação de ícone feita quando alguém adiciona seu feed pela primeira vez não verifica o robots.txt.

URLs de feed 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, inclusive quando alguém o adiciona pela primeira vez. Nossos buscadores agendados também respeitam o crawl-delay para feeds, com até 60 segundos entre requisições (um atraso maior é tratado como 60 segundos). A busca única ao adicionar um feed pela primeira vez, e nossas verificações antes de adicioná-lo ao catálogo Discover, não aguardam o crawl-delay.

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 mensagens HTTP, RFC 9421) para que você possa verificar que 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

Atualizações agendadas de feeds, pré-visualizações do Discover e buscas de imagens de pré-visualização vêm desses endereços estáticos. Algumas requisições vêm de outros endereços: a verificação de feed e a busca de ícone feitas quando alguém adiciona um feed pela primeira vez vêm de nossos servidores web, as verificações antes de adicionarmos um feed ao catálogo Discover vêm de nossas ferramentas administrativas, e nosso ambiente de homologação envia requisições com o mesmo User-Agent. Uma lista de permissões apenas por IP rejeitará essas requisições.

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.