Управление веб-краулерами для сайта

:bookmark: Это руководство объясняет, как управлять веб-краулерами на вашем сайте Discourse.

:person_raising_hand: Требуемый уровень доступа: Администратор

Веб-краулеры могут значительно повлиять на производительность вашего сайта, увеличивая количество просмотров страниц и нагрузку на сервер.

Когда сайт замечает резкий рост просмотров страниц, важно проверить, какую роль в этом играют веб-краулеры.


Проверка активности краулеров

Чтобы узнать, влияют ли краулеры на ваш сайт, перейдите к отчету Трафик сайта (/admin/reports/site_traffic) из панели администратора. Этот отчет разбивает количество просмотров страниц по зарегистрированным пользователям браузера, анонимным пользователям, краулерам и другим источникам.

Сайт, где краулеры работают нормально:

Сайт, где краулеры вышли из-под контроля:

Идентификация конкретных краулеров

Перейдите к отчету User Agent веб-краулеров (/admin/reports/web_crawlers), чтобы получить список названий веб-краулеров, отсортированный по количеству просмотров страниц.

Когда проблемный веб-краулер посещает сайт, количество его просмотров страниц будет значительно выше, чем у других краулеров. Обратите внимание, что одновременно могут действовать несколько вредоносных веб-краулеров.

Блокировка и ограничение краулеров

Хорошей практикой является не блокировать краулеров основных поисковых систем, таких как Google, Bing, Baidu (китайский), Yandex (русский), Naver (корейский), DuckDuckGo, Yahoo и другие, в зависимости от вашей страны.

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

Обратите внимание, что некоторые краулеры могут генерировать большое количество просмотров страниц, если вы используете сторонние сервисы для мониторинга или добавления функциональности на свой сайт через скрипты и т.д.

Чтобы получить список ненадежных веб-краулеров, вы можете обратиться к этому списку: https://github.com/mitchellkrogza/apache-ultimate-bad-bot-blocker/blob/master/robots.txt/robots.txt

Настройка параметров краулеров

В разделе Администрирование > Настройки есть несколько параметров, которые помогут ограничить скорость работы определенных краулеров:

  • Замедлить краулеров с помощью:

    • slow down crawler user agents — по умолчанию сюда входят gptbot, claudebot, anthropic-ai и brightbot
    • slow down crawler rate — количество секунд между разрешенными запросами от одного краулера (по умолчанию: 60)
  • Блокировать краулеров с помощью:

    • blocked crawler user agents — по умолчанию сюда входят mauibot, semrushbot, ahrefsbot, blexbot и seo spider
  • Разрешить только конкретным краулерам с помощью:

    • allowed crawler user agents — при настройке только указанные краулеры будут иметь доступ к сайту; все остальные будут заблокированы. Это работает как строгий белый список. Предупреждение: установка этого параметра переопределит blocked crawler user agents и заблокирует всех краулеров, не входящих в список, включая основные поисковые системы, если они не включены.

Убедитесь, что вы знаете точное имя user agent для краулеров, которыми хотите управлять. Если вы измените какие-либо из вышеуказанных параметров и не увидите снижения количества просмотров страниц от этого агента, возможно, стоит перепроверить, что вы используете правильное имя.

Если вы не уверены, как действовать, всегда начинайте с опции «замедлить», а не с полной блокировки. Со временем проверьте, есть ли улучшения. Вы можете перейти к полной блокировке, если не заметите значимых результатов.

17 лайков

Не стоит ли добавить какой-нибудь дисклеймер о том, что это работает только с корректно ведущими себя пользователями? И даже Google обойдёт все эти ограничения, если ссылка приходит из Gmail.

Оба правила применяются на стороне сервера.

Однако, если вредоносный бот выдает себя за Chrome или другого пользователя, подделывая заголовки, то мы не можем использовать заголовки для его обнаружения…

2 лайка

Удивительный факт: превью-карточки считаются как просмотр страницы!

Сервер, который я администрирую, оказался завален запросами на превью-карточки вида http.rb/5.1.0 (Mastodon/4.0.2; + [https://mstdn.science/](https://mstdn.science/)).

Полагаю, кроме как попросить авторов постов в Mastodon добавлять изображения, чтобы превью-карточки не создавались автоматически, никаких действий предпринять нельзя.

1 лайк

У меня уже более 1500 запросов в день от краулеров. :tired_face: Могу ли я заблокировать их всех, используя Cloudflare DNS? Или какой вариант нужен, чтобы принудительно заблокировать их всех? (Приватный инстанс)

Мне просто не нужны они.

Используйте, например, nginx в качестве обратного прокси и блокируйте нежелательных user-agent’ов. Это очень помогает. Блокировка стран, которые вам не нужны, также даёт хороший результат.

Я не могу заблокировать США, Францию и Германию (крупные страны с VPS), но для меня Россия, Вьетнам, Иран, Ирак и другие страны помогли значительно.

Однако Discourse довольно… устойчив. Правильное слово — «устойчив». Ситуация сильно отличается от WordPress, где такие бесполезные SEO-боты, сканеры, скрипт-кидди и злоумышленники могут легко вывести сервер из строя.

2 лайка

Я размещаю сервер в Hetzner Германия, с двумя открытыми портами в моем фаерволе (80/443). И Discourse работает за NGINX proxy manager (конечно, есть лучшие решения, но я ленив писать код и люблю веб-интерфейсы).

Теперь я иду по пути белого списка, используя случайную строку как единственное разрешённое значение… С этого момента больше никаких просмотров страниц :smiley:

Вопрос о том, что именно указывать в разделе «Замедлить пользовательских агентов-краулеров».Для нас основным нарушителем является Facebook, а Bing занимает близкое третье место.Отчет показывает следующих агентов в качестве основных краулеров, потребляющих просмотры страниц:

Что именно должно быть указано в разделе «Замедлить пользовательских агентов-краулеров» — эти точные URL-адреса, включая «https» или «http»? Или всё, что следует после двойного слеша? Или что-то другое? Или нам стоит действовать методом проб и ошибок?

Спасибо!

Чтобы всё было просто, используйте имена этих ботов. Однако вы можете использовать любую часть строки user agent, но убедитесь, что это не повлияет на большее количество объектов, чем нужно.

Замедление работы ботов — очень ненадёжный метод, хотя некоторые следуют этому правилу. Но такие боты приходят, например, из ваших публикаций и не создают значительной нагрузки. С WordPress ситуация была бы иной.

Это часть моего списка заблокированных ботов. Вы уже поняли суть.

1 лайк

Спасибо за это, @Jagster — очень полезно. Иногда это похоже на игру в «бей крота», но я понимаю идею использовать часть строки с названием краулера, а не всю целиком.

Для меня, как для администратора сайта, это всё ещё в процессе — вперёд!

1 лайк

Причин может быть несколько, но у Googlebot есть свой лимит краулинга, и когда карты сайта являются основным способом обнаружения ссылок, он никогда не достигает внутренних ссылок, когда исчерпан ежедневный/еженедельный/ежемесячный лимит.

А на форумах внутренние ссылки важны для пользователей, а не для Google.

Но я не знаю, видит ли Googlebot внутренние ссылки. Хотя, должен видеть.

1 лайк