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

: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 лайков

Should there be somekind disclaimer that this works only with good behaving ones? And even Google will bypass all of those when it comes via links from gmail.

Both are enforced on the server.

However, if a bad bot pretends to be Chrome or someone else by spoofing headers then we can not use headers to detect it…

2 лайка

Killer fact: Preview cards show count as a page view !

The server I admin appears to have been swamped with preview card requests of the form http.rb/5.1.0 (Mastodon/4.0.2; + [https://mstdn.science/](https://mstdn.science/))

I don’t think any action can be taken apart from telling mastodon posters to include an image so the preview card is not added automatically.

1 лайк

I already have over 1500 hits per day by crawlers. :tired_face: Can I block them all by using Cloudflare DNS? Or what option is needed to force block them all? (Privat instance)

I simply don’t want them.

Using i.e. nginx as a reverse proxy and stopping there unwanted user agents. That helps a lot. Blocking countries you don’t need helps quite much too.

I can’t block US, France and Germany (big VPS-countries) but for me Russia, Vietnam, Iran, Iraq etc. helped quite much.

But Discourse is quite… is resilient right word. The situation is very much different than with WordPress where those useless SEO-bots, knockers, script kiddies and malicious actors can easily put a server on its knees.

2 лайка

I’m hosting at Hetzner Germany, with just two open ports in my firewall (80/443). And Discourse runs behind the NGINX proxy manager (sure, there are better solutions, but I’m a lazy person to code and like web frontends).

Now I’m going the whitelist route, with a random string as the only allowed entry … from now on, no more page views :smiley:

A question about exactly what to put in “slow down crawler user agents”.
For us Facebook is a major culprit, with Bing a close 3rd.
Report shows the following agents as the principal crawlers soaking up page views:

What exactly should be in “slow down crawler user agents” - these exact urls including “https” or “http”? Or everything after the double-slash? Or something else? Or do we just go by trial and error?

Thanks!

To keep things simple you should use the names of those bots. But you can use any part of user agent string, but be sure it doesn’t affect more than you want.

Slowing down bots is very unreliable way, but some follows that rule. But those comes from your shares etc. and doesn’t create that much workload. WordPress would be another story.

But this is part of my blocked bots list. You get the point from it.

1 лайк

Thanks for this, @Jagster - very helpful. Feels like a game of whack-a-mole sometimes, but I get the idea of using part of the crawler name string rather than the whole thing.

A work in progress for me as site admin I guess - onwards!

1 лайк

There can be several reasons, but googlebot has its budget, and when sitemaps are the most important way to find links, it never reaches internal links when daily/weekly/monthly budget is used.

And in a forum internal links are important for users, not for Google.

But I don’t know if googlebot sees internal links. It should, though.

1 лайк