Hi, I use MainWP for many sites (around 1500). I have a problem when I want to delete plugins.
I have a plugin to delete on 200 sites.
I check all the boxes and do the “delete” bulk action.
But it doesn’t work, the screen remains blocked.
When I perform this operation 30 sites after 30 sites it works. How to lift the limit? Is there a particular configuration to put in place when there are many sites to manage at the same time?
Hey @shenron
Welcome to the MainWP community!
We don’t impose any limits on the number of sites for such bulk operations, so this is likely caused by the limited server resources.
When you try to delete a plugin on 200 sites, what exactly do you mean by “screen remains blocked”?
Is there a loading animation that runs for a long time, and if so, for how long did you let it run? Or something else entirely?
Secondly, can you please post the community system report from your MainWP Dashboard for review? The report is located in your Dashboard under Info → Server, on the top right of the page.
Be sure to use the button like the one below; this button hides all your private information:
Pressing the button auto-copies the report to your clipboard then just paste it in a reply here.
### WordPress Check Obligatoire Détecté État ###
MultiSite Disabled =true true Ok
Méthode fichier système = direct direct Ok
WordPress Memory Limit >=64M 40M Avertissement
WordPress Version >=6.2 6.6.1 Ok
### PHP Obligatoire Détecté État ###
cURL Extension Enabled =true true Ok
cURL Timeout >=300 seconds 300 Ok
cURL Version >=7.18.1 7.74.0 Ok
Extensions PHP chargées Indisponible Core, FFI, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, bcmath, calendar, cgi-fcgi, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, geoip, gettext, hash, iconv, imagick, imap, intl, json, libxml, mbstring, mysqli, mysqlnd, openssl, pcntl, pcre, pdo_mysql, posix, readline, session, shmop, soap, sockets, sodium, ssh2, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib
Fonctions PHP désactivées Indisponible , pcntl_alarm, pcntl_async_signals, pcntl_exec, pcntl_fork, pcntl_get_last_error, pcntl_getpriority, pcntl_setpriority, pcntl_signal, pcntl_signal_dispatch, pcntl_signal_get_handler, pcntl_sigprocmask, pcntl_sigtimedwait, pcntl_sigwaitinfo, pcntl_strerror, pcntl_unshare, pcntl_wait, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifcontinued, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig,
OpenSSL Version >=OpenSSL/1.1.0 OpenSSL/1.1.1w Ok
OpenSSL Working Status Yes Yes Ok
PCRE Backtracking Limit >=10000 1000000 Ok
PHP autorise les URLs fopen Indisponible OUI
PHP Max Execution Time >=30 seconds 300 Ok
PHP Max Input Time >=30 seconds 300 Ok
PHP Memory Limit >=256M 1024M Ok
PHP Post Max Size >=2M 256M Ok
PHP Safe Mode Disabled =true true Ok
PHP Upload Max Filesize >=2M 256M Ok
PHP Version >=7.4 7.4.33 Ok
SSL Extension Enabled =true true Ok
SSL Warnings = empty Ok
Support PHP Exif Indisponible OUI
Support PHP IPTC Indisponible OUI
Support PHP XML Indisponible OUI
### MySQL Obligatoire Détecté État ###
Encodage client MySQL Indisponible utf8
Mode MySQL Indisponible ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
MySQL Version >=5.0 10.5.23-MariaDB-0+deb11u1-log Ok
### Configuration serveur Valeur détectée ###
Agent utilisateur Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Architecture 64 bit
Connexion automatique du serveur La réponse au test est positive.
Contenu accepté text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
HTTPS OUI
Interface de passerelle CGI/1.1
Jeu de caractère accepté pour le contenuIndisponible
Logiciel du serveur Apache
Protocole du serveur HTTP/2.0
Système d'exploitation Linux
Temps de la requête 1721897122
Utilisation de la mémoire 6.94 MB
### MainWP Dashboard Settings Valeur détectée ###
Basic uptime monitoring enabled Oui
Délai minimum entre les requêtes 20
Délai minimum entre les requêtes vers la même IP20
MainWP legacy backups enabled Non
Nombre maximal de pages à retourner
Nombre maximal de requêtes d’installation et de mise à jour simultanées20
Nombre maximal d’articles à retourner50
Nombre maximum de requêtes de synchronisation simultanées20
Number of connected sites 1330
Optimize data loading Oui
Plugin advanced automatic updates enabledOui
Requêtes simultanées maximum 20
Requêtes simultanées maximum par IP20
REST API enabled Oui
Site health monitoring enabled Oui
Système de sauvegarde principale API Backups
Theme advanced automatic updates enabledOui
Tolérance d’abandon des extensions/thèmes365
Utiliser WP Cron Oui
Version de MainWP Dashboard Latest: 5.1.1 | Detected: 5.1.1 Ok
WP Core advanced automatic updates enabledOui
### Extensions Version Licence État ###
Aucune extension installée
### Extension Version État ###
Akismet Anti-spam: Spam Protection 5.3.3 Inactif
Hello Dolly 1.7.2 Inactif
MainWP Dashboard 5.1.1 Actif
When you try to remove a plugin on 200 sites, what exactly do you mean by “the screen gets stuck”?
I see a couple of improvements, although I’m not sure if they would solve this.
- Increase the WP_MEMORY_LIMIT to 256M (now 40M), by adding the following line to wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
- Upgrade PHP from 7.4 to 8.2
- Remove the (inactive) plugins Akismet and Hello Dolly.
And I see that the advanced settings seem to be quite different than the default, so that might cause some trouble. Try the default values first and if that works you can try to tweak them a bit to your environment. These are my settings:
To add to @josklever good suggestions, I would recommend increasing WP Memory Limit even further to 1024MB or even 2048MB considering you’re managing 1330 sites.
I’d also recommend increasing PHP Max Execution Time and cURL Timeout to 600-1200.
As for the values in the Advanced Settings, I would recommend setting them to default to test if the bulk operation is working as expected.
After that, you can try increasing some of the values to speed up the process.
I can’t get this addition to take into account (I had already added this in wp-config.php):
And I see that the advanced settings seem to be quite different than the default, so that might cause some trouble. Try the default values first and if that works you can try to tweak them a bit to your environment. These are my settings:
I modified these settings to try to solve my problem but it didn’t work. I reset the values to default but it’s not any better.
I would recommend increasing the WP memory limit even further to 1024 MB or even 2048 MB, given that you manage 1330 sites.
I would also recommend increasing PHP max execution time and cURL timeout to 600-1200.
I passed WP_MEMORY_LIMIT to 2048 mais cela n’est pas pris en compte dans “Informations”.
Php 8.2
default_socket_timeout = 1200
max_execution_time = 1200
@shenron, you’ve added the line at the end of the files, but you should move it up a bit, before the line
/* That's all, stop editing! Happy publishing. */
Otherwise the default value of 40M is already set via wp-settings.php
indeed this is now taken into account. THANKS.
However, still unable to bulk delete. For example, I’m trying to delete the inactive “Hello Dolly” extension on 664 sites. Loading is not successful.
To dig a bit deeper, could you provide more information on a few specifics?
- After how many seconds does the process stall when you try to bulk delete the plugins? Sometimes, if it takes around 60 seconds, there could be an underlying server-side limitation being hit.
- Are there any error messages or warnings in the browser console during this process? These can often give us clues about what’s going wrong.
Additionally, it might be worthwhile to check with your hosting provider.
Many hosts have hidden rules and limits that aren’t immediately visible to users. Asking them to review the server logs could help identify if the CPU, memory, or another resource is being maxed out during the bulk delete operation.
Given that the process works for smaller batches but fails on larger ones, it strongly suggests hitting a limit rather than a bug. Since managing servers isn’t typically in our wheelhouse, your host’s support team might be the best resource to pinpoint and adjust any restrictive settings.
The process doesn’t actually hang. When I click “Apply” after selecting all sites to remove a plugin, it keeps loading indefinitely.
There is no error message in the console.
MainWP is installed on my dedicated server. The resources are largely sufficient I think (RAM = 32G)
I will continue to look for where the problem comes from but I have not found anything in the server logs either
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.