Как блокировать ненужный трафик в wordpress

Как блокировать ненужный трафик в wordpress

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

Бесполезным трафиком являются боты искалок, с которых на сайте нет трафика, например буржуйская Yahoo или украинская Meta, Rambler или Webalta. Одно дело когда бот заходит раз в день, узнать как у вас дела, и совсем другое дело когда он долбится с интервалом в секунду во все страницы подряд.

Сюда же можно отнести трафик различных анализаторов и рейтингов, например Alexa, Solomono, SemRush и т. д. Их боты тщательно и тотально лазят по сайту для сбора информации о том кто, когда и как на кого либо ссылается, что пишет и чем занимается. А собранная статистика потом продается. И если от сбора данных еще не тепло, ни холодно, то активное топтание ботов по сайту приводит к тому, о чем я писал выше.

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

И если поисковые боты в большинстве своем не стесняются сообщить, что они боты, то парсеры и граберы маскируются под обычных пользователей, выдавая себя в user-agent за броузер.

Блокировать ненужный трафик можно на нескольких уровнях.

Начнем с файла htaccess. Заблокированным в нем визитерам отдается страница ошибки, а не контент сайта. Вот статистика по одному из сайтов за месяц — почти 50 тыс. блокировок с ошибкой 403.

Как блокировать ненужный трафик в wordpress

Разберемся, кого же мы будем блокировать. В этом поможет плагин анализа статистики ecSTATic. Почти всю необходимую информацию можно получить и из логов awstats, но у плагина есть преимущество в виде большой встроенной базы User-agent, помогающей разобраться кто есть кто.

Вот так выглядит статистика Spider/Bots по последним посещенным ботам. Видно, что сайт исправно посещает гуглобот, что не может не радовать.

Кроме этого видны посещения ботов Yandex, Google-mobile и т. п. И это тоже хорошо.

А вот всех остальных нужно изучать и блокировать. Например видно, что бот MSN забрел картинку посмотреть.

Как блокировать ненужный трафик в wordpressЕсли нажать на кнопочку more – узнаем о нем больше информации.

Как блокировать ненужный трафик в wordpress

Видим, что MSN находится в подсети с айпишниками в диапазоне 199.30.16.0 — 199.30.31.255 или в формате CIDR 199.30.16.0/20

Чтобы из диапазона получить CIDR формат, воспользуйтесь конвертором

Заблокируем этот диапазон в htaccess добавив строку с айпи и примечание после знака #

deny from 199.30.16.0/20 #MSN

После подробного изучения логов посещений своего сайта с помощью ecSTATic вы узнаете много нового и нехорошего о ботах Ahrefs и darwin, Spinn3r и Majestic, eZooms и sistrix, а файл htaccess станет неприлично большой. А примечания нужны для того, чтобы потом вы не вспоминали — зачем и почему заблокирован тот или иной айпишник или диапазон.

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

Следите за тем, чтобы не забанить нужные айпишники. По большому счету — это русскоязычные посетители вашего сайта из стран СНГ, боты Яндекса и боты Google. Всех остальных — в топку.

Если заблокировать к примеру широкий диапазон deny from 188.0 (все начинающиеся на 188.0), то под блок попадут следующие страны

Как блокировать ненужный трафик в wordpress

Т. е. мы запретили на сайт доступ и из России с Украиной в том числе. Собрав и проанализировав статистику по ботам, переходите в журнал Visitors, в котором выводятся посещения посетителей и ботов, маскирующихся под них.

Понятно, что если с какого-то айпишника некий пользователь последовательно с интервалом в 1 секунду посещает уже двухсотую страницу — отправляйте его в бан.

Кстати! Некоторые боты маскируются не под посетителей сайтов, а под поисковики. Поэтому если вдруг вы увидите в логах визиты бота с user-agent Yandex, а айпишник из Китая — то с большой долей вероятности можно сказать, что это вас парсят через китайскую прокси под видом поисковика.

Таким образом, мы пришли к следующей теме — фильтрации стран и регионов.

И еще. На сильнопосещаемых (от тысячи посетителей в день) сайтах ecSTATic начинает тормозить из-за собранных данных. Рекомендуется его полностью удалить и заново установить.

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

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

## Блокировка по USER AGENT:
RewriteCond %{HTTP_USER_AGENT} archive_org [OR]
RewriteCond %{HTTP_USER_AGENT} MJ12bot [OR]
RewriteCond %{HTTP_USER_AGENT} Java [OR]
RewriteCond %{HTTP_USER_AGENT} Gigabot [OR]
RewriteCond %{HTTP_USER_AGENT} Baiduspider [OR]
RewriteCond %{HTTP_USER_AGENT} PycURL [OR]
RewriteCond %{HTTP_USER_AGENT} Aport [OR]
RewriteCond %{HTTP_USER_AGENT} ia_archiver [OR]
RewriteCond %{HTTP_USER_AGENT} DotBot [OR]
RewriteCond %{HTTP_USER_AGENT} SurveyBot [OR]
RewriteCond %{HTTP_USER_AGENT} Butterfly [OR]
RewriteCond %{HTTP_USER_AGENT} libwww [OR]
RewriteCond %{HTTP_USER_AGENT} Wget [OR]
RewriteCond %{HTTP_USER_AGENT} LinkExchanger [OR]
RewriteCond %{HTTP_USER_AGENT} WordPress [OR]
RewriteCond %{HTTP_USER_AGENT} PHP/ [OR]
RewriteCond %{HTTP_USER_AGENT} spbot [OR]
RewriteCond %{HTTP_USER_AGENT} gold\ crawler [OR]
RewriteCond %{HTTP_USER_AGENT} Linguee [OR]
RewriteCond %{HTTP_USER_AGENT} Ezooms [OR]
RewriteCond %{HTTP_USER_AGENT} lwp-trivial [OR]
RewriteCond %{HTTP_USER_AGENT} User-Agent [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [OR]
RewriteCond %{HTTP_USER_AGENT} Zeus
RewriteRule ^(.*)$ – [F,L]

Список не исчерпывающий и приведен для примера, конкретные названия ботов можно получить из статистики ecSTATic и добавить самостоятельно.

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

Блокировка ip нежелательных стран и регионов

Если у вас региональный сайт о установке пластиковых окон в Бирюлево, то посетители из Уганды, Туниса и Мумбая не то чтобы нежелательны, а скорее подозрительны.

Такие визиты наносят через прокси — взломанные и зараженные вирусами компьютеры, через которые выполняются визиты на ваш сайт, скрывая и подменяя истинный айпи посетителя. Хакеров и граберов гораздо больше, чем доступных проксей, поэтому чисто русских проксей на всех не хватает. Да и этим особенно никто не заморачивается, т. к. тщательным анализом логов визитов занимается поразительно малое число вебмастеров.

Поэтому все нежелательные страны и регионы нужно банить во избежание чего-нибудь нехорошего с вашим сайтом.

Действительность такова, что нет четкого соответствия, что мол с цифры 1 айпи пусть начинаются у Китая, а с цифры 2 — у Монголии. В связи с техническим и моральным устареванием протокола IPv4, по которому сейчас всем розданы айпишники в виде 255.255.255.255, достаточно распространены ситуации, когда соседние адреса, отличающиеся всего на одну последнюю цифру, могут принадлежать совсем разным странам.

Для тех кто любит все дотошно покопать — нужно скачать GeoLite базу текущего распределения ip адресов. Т. к. это некомерческая версия продукта, то в ней есть определенная доля погрешности, но в целом, сделав выборку по интересующей  стране, можно определить айпи для потенциального бана.

Вот например какая картина получается, если выбрать UA и RU

Как блокировать ненужный трафик в wordpress

Сразу видно, что айпи, начинающиеся на 1, 3, 4 не входят в зону покрытия русскоговорящими посетителями и их можно банить. Если отключить фильтр, то станет видно цифра 1 досталась нескольким азиатским странам, 3 для Бельгии и США, а 4 для США, Канады и нескольких европейских стран.

После таких исследований может получиться список блокировки айпи для htaccess типа такого:

Deny from  1 3 4 10 23 36 38 39 41 42 49 50 54 60 65 75 96 98 101 103 106 107 110 111 112 113 115 117 118 119 120 121 122 123 125 148 172 175 177 179 180 181 182 183 184 186 187 189 190 197 198 200 201 202 203 210 218 219 220

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

Существенную нагрузку на вашем сайте могут создавать боты различных сервисов, которыми вы пользуетесь, например Sape, Rotapost и т. п.

Их боты никак не опознают себя, однако регулярно топчутся на сайте проверяя доступность размещенных ссылок. А свои адреса сервисы не сообщают из соображений безопасности, т. к. ушлые вебмастера начнут отключать ссылки для поисковиков и посетителей, а ботам сервисов подсовывать страницы с ссылками.

Поэтому при возникновении ошибок размещения ссылок — делайте откат к предыдущему варианта htaccess и на будущее снабжайте все строки комментариями.

Поэтому как обычно говорят в таких случаях — вы все делаете на свой страх и риск, проверяйте все по несколько раз. Но результат того стоит.

ОСТАВЬТЕ ОТВЕТ