Индексатор Meta ходил за обычный Chrome и выкачивал с сайта больше двух третей всех данных: 74,5 ГБ из 103,5 ГБ за сутки. Ни один из этих запросов не был от человека. Рассказываем, как мы нашли бота в логах, закрыли его за десять минут — и почему после этого ни позиции в Google, ни превью в Facebook не пострадали.
Что за бот и почему он опасен
В логах nginx появился User-Agent, который на глаз не отличить от обычного браузера: тот же Chrome 145, те же заголовки. Отличие — в конце строки, в скобках:
Mozilla/5.0 ... Chrome/145.0.0.0 Safari/537.36
(compatible; meta-webindexer/1.1
(+https://developers.facebook.com/docs/sharing/webmasters/crawler))
Это официальный индексатор Meta: он собирает контент, чтобы показывать его в поиске и ИИ-продуктах компании. Посетителей он не приводит никогда — зато очень активно качает файлы. У одного из наших проектов, интернет-магазина gig.by, за сутки бот сделал 28 169 успешных запросов и унёс 74,5 ГБ, из них 74,3 ГБ — PDF из раздела документации. Всего на PDF пришлось 23 запроса: значит, один и тот же файл он перекачивал снова и снова.
Сайт за те же сутки отдал 103,5 ГБ на всех. Почти три байта из четырёх уходили боту: сервер работал на износ, а живые посетители делили с ним остатки канала.
Как мы его нашли
Ничего экзотического — обычный разбор access.log. Две команды и пять минут:
# сколько трафика съел конкретный бот
grep -i 'meta-webindexer' /var/log/nginx/access.log \
| awk '{s += $10} END {printf "%.1f ГБ\n", s / 1073741824}'
# топ User-Agent: кто вообще ходит на сайт
sed -n 's/.*"\([^"]*\)"$/\1/p' /var/log/nginx/access.log \
| sort | uniq -c | sort -rn | head -30
В топе — почти пустой Chrome с хвостом (compatible; meta-webindexer/1.1 ...). Документация Meta подтверждает: да, это их бот, и, согласно их же правилам, он обязан соблюдать robots.txt.
Чего блокировать нельзя
Самое опасное решение — закрыть «всё от Meta» разом. Кроме индексатора у Meta есть боты facebookexternalhit и Meta-ExternalFetcher: именно они собирают превью, когда вы кидаете ссылку на страницу в Facebook или WhatsApp. Заблокируете их — и все ссылки на ваш сайт будут приходить с пустой карточкой, без заголовка и картинки.
- Закрываем:
meta-webindexer— индексирует контент для поиска Meta, трафика и клиентов не приносит. - Оставляем:
facebookexternalhit,Meta-ExternalFetcher— превью ссылок в Facebook и WhatsApp. - Не трогаем вообще: Googlebot, YandexBot — это и есть выдача.
Правило простое: блокируем конкретный User-Agent с доказательством из логов, а не бренд или домен целиком.
Что сделали: два слоя за десять минут
Первый слой — robots.txt, чтобы корректный бот перестал ходить:
User-Agent: meta-webindexer
Disallow: /
Второй слой — nginx: экономим трафик прямо сейчас, не дожидаясь, пока бот прочитает robots. Правило лежит в conf.d и возвращает 403 до того, как запрос дойдёт до PHP:
# /etc/nginx/conf.d/meta-webindexer.conf
map $http_user_agent $is_meta_indexer {
default 0;
"~*meta-webindexer" 1;
}
# в server-блоке сайта
if ($is_meta_indexer) { return 403; }
Заодно в robots остались закрытыми и другие внешние ИИ-агенты — FacebookBot, meta-externalagent, GPTBot, ClaudeBot: контент сайта — не материал для чужих моделей. Результат в тот же день: с 10:08 все запросы индексатора получают 403, и отдаёт их сам nginx — копеечный ответ вместо многогигабайтного файла. Уже за первые часы бот собрал 1103 отказа вместо PDF.
Разберём логи за сутки и покажем, сколько трафика съедают роботы.
Почему выдача не просела
Главный страх при любой блокировке: «а не уроним ли мы SEO». В этот раз — нет, и вот почему:
- Заблокирован только один бот. Googlebot и YandexBot ходят со своим User-Agent и получают 200, как и прежде — после правки мы это проверили отдельным запросом.
- Запрет чужому боту в robots.txt не влияет на позиции. Google индексирует сайт сам, а не через Meta; индексатору Meta выдачи не бывает.
- Для поисковика ничего не изменилось. Мы не ставили noindex, не меняли canonical, sitemap, URL и внутреннюю структуру — страница выглядит ровно той же.
- «Минус 74% трафика» — это минус роботы, не люди. Живые визиты не изменились: гигабайты уходили на файлы, которые всё равно никто не смотрел.
- Соцсети работают. Превью в Facebook и WhatsApp отдают отдельные боты, мы их не трогали — отправьте ссылку в мессенджер и убедитесь.
- Что смотрим в первые дни: показы и клики в Search Console и Яндекс.Вебмастере, краулинг Googlebot в логах, состояние sitemap в инструментах вебмастера.
Закрывая бота, мы не прячем страницу — мы перестаём кормить того, кто качает её зря. Для поисковика URL, содержимое и ссылки остаются прежними.
Чек-лист: проверьте свой сайт за десять минут
- Посмотрите топ User-Agent в access.log за сутки — первая строка обычно и есть неожиданный «гость».
- Посчитайте байты по каждому подозрительному UA: если один агент съедает больше половины трафика — это оно.
- Сверьтесь с официальной документацией: настоящие боты Meta, Google и Яндекса описаны открыто, с точным User-Agent.
- Закройте в двух местах: robots.txt (для корректных ботов) и nginx с 403 (для мгновенной экономии).
- Проверьте превью: отправьте ссылку в Facebook и WhatsApp — карточка должна собраться.
- На следующий день загляните в Search Console и вебмастер: показы и краулинг должны быть прежними.
Такой разбор занимает десять минут и почти всегда заканчивается одинаково: сайт кормит десяток роботов, о которых владелец впервые узнаёт из отчёта.