Errore 500 su WordPress: il caso di Wordfence e della memoria admin

Errore 500 su WordPress: il caso di Wordfence e della memoria admin

Recentemente mi sono trovato ad aiutare un cliente che lamentava un problema molto fastidioso: diversi suoi nuovi siti andavano randomicamente in errore 500, senza apparente motivo.

L’errore 500, per chi sviluppa, è uno dei più odiosi perché il sito crasha e non restituisce alcun output leggibile. Anche attivare il debug di WordPress spesso non basta: il sito resta bianco o restituisce la generica scritta Internal Server Error.

Partire dai log del server

In questi casi, la strada più veloce è sempre la stessa: controllare i log di errore del server.

Ogni pannello di controllo (Plesk, cPanel, DirectAdmin, ecc.) mette a disposizione un file di log, spesso nella sezione “Error Logs”, Registro. È lì che si trovano le informazioni preziose.

Nel mio caso, leggendo il log di uno dei siti, ho individuato subito la causa: problema di memoria esaurita.

La memoria PHP e WordPress

Quando si parla di “memoria esaurita”, la soluzione più classica è quella di aumentare il limite di memoria tramite il file wp-config.php.

Questa è la riga più famosa:

define( 'WP_MEMORY_LIMIT', '256M' );

Quasi sempre basta, perché la parte del sito che consuma più risorse è il frontend, dove girano i temi, gli shortcode, gli script di caricamento pagine.

Ma c’è un aspetto che molti ignorano: anche se il server ha un limite di memoria alto (es. 512 MB), WordPress di default imposta limiti più bassi:

  • Frontend: 128 MB
  • Admin (backoffice): 256 MB

Se il server ha un limite basso, non si può superare il valore definito in PHP (es. memory_limit in php.ini). Quindi è sempre importante:

  1. verificare il limite server;
  2. eventualmente modificarlo dal pannello di controllo hosting.
  3. aumentare, quando serve, il limite di wordpress

Quando il fix classico non basta

Nel caso del cliente, il sito aveva già:

  • un limite server di 512 MB;
  • un limite WordPress impostato a 512 MB sul frontend.

Eppure, continuava a crashare.

Approfondendo il log, ho trovato la causa esatta dell’errore fatale:

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
(tried to allocate 8388608 bytes)
in /wp-content/wflogs/rules.php on line 5907

Era Wordfence, durante la scrittura del proprio log, a far collassare la memoria.

Wordfence e la memoria admin

Questa è una situazione che capita raramente, ma può succedere: Wordfence gira lato admin, perché fa scansioni, scrive nei log e legge file potenzialmente molto grandi.

In più, il sito del cliente aveva:

  • oltre 30 plugin attivi
  • plugin per custom fields
  • plugin per form
  • plugin per statistiche
  • Query Monitor installato (ottimo strumento che, in questo caso, mi indicava consumi medi di 220 MB per ogni pagina admin)

In pratica, bastava una scansione più pesante, o una scrittura su file particolarmente corposo, per superare il limite di 256 MB previsto da WordPress per il backend.

La soluzione: aumentare la memoria admin

Pochi sanno che esiste una costante dedicata esclusivamente alla memoria del backend, diversa da quella del frontend:

define( 'WP_MAX_MEMORY_LIMIT', '512M' );

Inserendola in wp-config.php, ho risolto il problema. Ecco le righe finali consigliate:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
  • WP_MEMORY_LIMIT → memoria per il frontend
  • WP_MAX_MEMORY_LIMIT → memoria per il backend (wp-admin, scansioni, modifiche post, ecc.)

Nota sul debug

Infine, una piccola raccomandazione: sul sito del cliente era attivo il debug in produzione, con scrittura su file log.

Tenere il debug attivo in produzione:

  • rallenta il sito;
  • aumenta il consumo di risorse;
  • può rivelare percorsi interni e informazioni sensibili.

In produzione, il debug deve essere sempre spento. Impostare così nel wp-config.php:

define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
define( 'WP_DEBUG_DISPLAY', false );

Conclusione: Errore 500 su WordPress Admin

  • Controllare sempre i log server-side quando si presenta un errore 500.
  • Ricordarsi che WordPress imposta limiti interni di memoria, anche se il server ha valori alti.
  • Se si usano plugin pesanti come Wordfence, valutare di aumentare WP_MAX_MEMORY_LIMIT.
  • Disattivare il debug in produzione, se non strettamente necessario.

Spegnere plugins

E se vuoi rendere il tuo sito più leggero e performante leggi l’articolo: velocizzare il tuo sito WordPress in 25 minuti.

Dopo anni di esperienza con vari provider, ho scelto VHosting per i miei siti per le ottime prestazioni e l’affidabilità. Ho un’affiliazione attiva, quindi se acquisti tramite il mio link, io ricevo un compenso senza alcun costo aggiuntivo per te. Lo segnalo solo perché lo utilizzo personalmente e lo consiglio con convinzione!

Acquista tramite il mio link e supporta questo progetto! 🚀

no admin