Поставьте на сервер
Mod_Evasive и будет Вам счастье вселенское.
Для Debian / Ubuntu
apt-get update && apt-get upgrade --show-upgraded
apt-get install libapache2-mod-evasive -y
После завершения установки, заходим в конфигурационный файл evasive.conf
mcedit /etc/apache2/mods-available/evasive.conf
содержимое файла. Необходимые строки нужно раскоментироовать!
#DOSHashTableSize 3097
#DOSPageCount 2
#DOSSiteCount 50
#DOSPageInterval 1
#DOSSiteInterval 1
#DOSBlockingPeriod 10
#DOSEmailNotify you@yourdomain.com
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
#DOSLogDir "/var/log/mod_evasive"
Можно этот код еще добавить в Apache2
mcedit /etc/apache2/apache2.conf
В завершении создадим директорию логов
mkdir /var/log/mod_evasive
и перезагрузим Apache2
/etc/init.d/apache2 restart
-------------------
- DOSHashTableSize: Размер хэш таблицы, которая используется для хранения трэка активности на один IP. Увеличение этого числа обеспечит более быстрый поиск сайтов, которые клиент посетил в прошлом, но может повлиять на общую производительность, если оно слишком велико.
- DOSPageCount: Числоо идентичных запросов к определённому URI (например, к файлу, который обслуживает Apache), которые посетитель может сделать через интервал DOSPageInterval.
- DOSSiteCount: похоже на DOSPageCount, но относится к тому, как много общих запросов может быть сделано к сайту за интервал DOSPageCount.
- DOSBlockingPeriod: Если посетитель превысил лимиты, установленные DOSSPageCount или DOSSiteCount, он/она будут занесены в чёрный список на период времени DOSBlockingPeriod. Во время этого интервала, любой запрос, приходящий от него/неё, будет возвращён с ошибкой 403 Forbidden.
Так же можно на уровне Nginx прописать количество одновременных соединений.
Никакая CMS тут не причем, это криво настроенный сервер.
Луче всего Вам нанять админа который грамотно настроит сервер.
Вердикт.- "Зачем лезть в болото если брода не знаешь!".
Вот как то так. навеяло :)
А этот ресур Вам будет в помощь
https://gtmetrix.com/