Бот SereneReader

Что делает наш сборщик лент, как он представляется и как его отклонить.

Что такое SereneReader

SereneReader — это ридер лент. Когда кто-то подписывается на ваш RSS или Atom, наши серверы загружают ленту и показывают читателю новые статьи.

Если запись в ленте не содержит изображения, мы однократно загружаем страницу статьи, чтобы получить тег og:image для предпросмотра. Также мы загружаем иконку вашего сайта для боковой панели.

User-Agent

Каждый запрос с наших серверов идентифицируется этой строкой:

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

Что мы загружаем

  • URL лент, на которые подписаны пользователи.
  • Страницы статей для записей без изображения — как правило, по одному разу, считывая не более 1 МБ HTML для поиска тега og:image.
  • Иконка вашего сайта: та, что указана в ленте, /favicon.ico, /apple-touch-icon.png или /apple-touch-icon-precomposed.png.

Мы не обходим сайты и не переходим по ссылкам из статей. Кроме подписанных лент, мы загружаем ленту из каталога Discover, когда авторизованный пользователь просматривает её, а у нас нет сохранённых статей, а также при проверке ленты перед добавлением в каталог.

Как часто

Ленты обновляются по расписанию. Если ваш сервер отправляет заголовок ETag или Last-Modified, при следующем обновлении мы передаём If-None-Match или If-Modified-Since — и неизменившаяся лента обходится вам ответом 304 без тела.

Как правило, страница статьи загружается один раз — для получения изображения предпросмотра. Постоянная ошибка, например 404, запоминается на 30 дней. Временная, например таймаут или ошибка 500, повторяется ещё до трёх раз — примерно через 30 секунд, 1 минуту и 2 минуты, после чего страница оставляется в покое не менее чем на час.

Ответы 429 или 503 означают необходимость сделать паузу. Для лент каждая неудачная попытка обновления откладывает следующую всё дальше — начиная с 15 минут и удваиваясь до суток; при 429 мы также ждём столько, сколько указано в заголовке Retry-After, или дольше. Для страниц статей 429 или 503 считается временной ошибкой, поэтому возможно до трёх повторных попыток в течение примерно трёх с половиной минут. После этого мы ждём столько, сколько указано в Retry-After, но не более семи дней; если заголовок отсутствует — семь дней.

robots.txt

Перед запросом страницы статьи или иконки сайта наши плановые загрузчики читают robots.txt и соблюдают правила Disallow и crawl-delay для группы User-agent: SereneReader, используя группу * как запасную. Запрос иконки при первом добавлении ленты не проверяет robots.txt.

Для URL лент действуют другие правила. Лента загружается от имени подписавшегося читателя, поэтому мы обращаемся с ней так же, как Feedfetcher от Google: правила Disallow группы * на неё не распространяются. Группа User-agent: SereneReader, запрещающая путь к ленте, по-прежнему учитывается, в том числе при первом добавлении ленты. Плановые загрузчики также соблюдают crawl-delay для лент — не более 60 секунд между запросами (более длинная задержка считается равной 60 секундам). Единовременная загрузка при первом добавлении ленты и проверки перед добавлением в каталог Discover не ожидают crawl-delay.

Если ваш robots.txt недоступен из-за ошибки сервера, мы считаем загрузку разрешённой. Подписка — это явное согласие читателя, и нестабильный файл robots не должен прерывать доставку ленты.

Как нас заблокировать

Заблокируйте или ограничьте приведённый выше 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-адреса

Плановые обновления лент, предпросмотр Discover и загрузка изображений предпросмотра выполняются с этих статических адресов. Часть запросов поступает с других адресов: проверка ленты и загрузка иконки при первом добавлении — с наших веб-серверов, проверки перед добавлением в каталог Discover — из наших инструментов администрирования, а тестовая среда отправляет запросы с тем же User-Agent. Список разрешённых IP-адресов без учёта этих источников будет отклонять такие запросы.

162.220.234.241
152.55.180.242
152.55.180.243

Список в машиночитаемом формате/bot/ips.json

Контакт

Вопросы о нашем трафике или что-то, что нужно исправить? Напишите нам.