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-directoryEndereços IP de saída
Não publicamos os endereços de onde vêm nossas solicitações, e eles podem mudar. Identifique nossas solicitações pelo User-Agent acima ou, de forma mais confiável, pela assinatura da solicitação.
Contato
Dúvidas sobre nosso tráfego ou algo que deseja que corrijamos? Entre em contato.