Привет всем!
Данный материал касается только сайтов на Wordpress и преимущественно те, которые имеют от 1000 страниц.
Бывает так, что развиваешь свой новостник, держишь его не виртуальном хостинге, думаешь что все у тебя хорошо, размещаешь классный материал, думаешь - сейчас сайт немного подрастет и тут... Бам - и сайт не работает, хостинг пишет ваш аккаунт может быть suspended так как вы превысили лимиты на расход процессорного времени...
Дело в том, что если ваш материал высокочастотный и он вдруг появляется на первых позициях, то сотни поисковых ботов и краулеров вдруг обнаруживают для себя ваш сайт и все вместе ломятся его индексировать, этим они создают сотни загрузок страниц вашего сайта, грузят страницы сотнями одновременно, создают своеобразную ддос атаку и ... тратят процессорное время вашего виртуального хостинга.
В одном из моих случаев - после установки плагина для мультиязычности боты вдруг обнаружили множество новых страниц и решили их все сразу вместе проиндексировать.
На виртуальном хостинге ресурсы которые вам выделяются - не бесконечны, даже если написано что вам выделен процессор 2 ядра - это не значит, что 24 часа в сутки процессор будет работать на вас - нет как правило это 100-250 минут работы процессора в сутки. После того как ваш сайт под нагрузкой превысил минуты работы процессора хостинг выставляет вам счет на повышение расхода процессорного времени.
Единственный плагин который нормально отрабатывает по блокировке ботов и краулеров для Wordpress - Wordfence (их сайт). Пришлось проверять десятки прежде чем было найдено приемлемое бесплатное решение!
Что делать детально:
1. Ищем в репозитории вордпресса плагин Wordfence, устанавливаем, активируем.
2. Настраиваем, идем в All Options, листаем вниз, находим такой раздел и настраиваем примерно так:
это очень строгая настройка!
Если все получилось - идем на вкладку плагина Live Traffic листаем вниз и видим такую следующую картину:
Красными кружочками отмечены уже заблокированные пользователи/боты/краулеры.
3. Плагин в премиум доступе может блокировать трафик по странам
4. Вы можете заблокировать любого пользователя если он обращается в /wp-login.php например))
5. Можете заблокировать любой User agent и любой IP...
* но есть ньюанс, как в анекдоте - если плагин вас заблокировал по какой либо причине, то он вышлет вам на почту ссылку для снятия блокировки, но вы же умный и установили в настройках - что любой кто посетит /wp-login.php автоматически попадает в бан, а ваша ссылка для логина выглядит по другому например так /wp-login-samii-vumnii.php - так вот в плагине в письме ссылка плагина для разблокировки переводит вас автоматически на /wp-login.php и вы опять попадаете под блок, т.е. плагин не видит этот момент.
Какой выход из ситуации:
1. Зайти под другим IP - переткнуть кабель или модем,
2. Зайти чз FTP и в папке wp-content/plugins/ найти Wordfence и переименовать примерно в такое Wordfence111 этим действием вы отключите плагин, потом залогиниться и уже потом переименовать папку с плагином обратно, таким образом вы его включите. Свой IP потом можете добавить в белый список.
Но... если вы столкнулись таким явлением (боты атакуют), то скорее всего - немного позже вам придётся переезжать на VDS... Боты так просто не отстанут, даже если прописать запреты в robots.txt.
Пока всё, всем пока!