Menu
Bug e Vulnerabilità

Come risolvere l’errore “Memory Exhausted” in WordPress

Gianluca Gentile · · 6 min di lettura

Come risolvere l’errore “Memory Exhausted” in WordPress

Stai vedendo un messaggio come Fatal error: Allowed memory size of 67108864 bytes exhausted sul tuo sito WordPress? Questo errore significa che PHP ha esaurito la memoria allocata per eseguire WordPress. È uno degli errori più comuni e, fortunatamente, anche uno dei più semplici da risolvere. In questa guida ti mostro tutte le cause dell’errore memory exhausted WordPress e come risolverlo definitivamente.

Cosa significa l’errore memory exhausted

Ogni volta che un visitatore carica una pagina WordPress, PHP ha bisogno di memoria RAM per eseguire il codice del core, dei plugin e del tema. Il server assegna un limite di memoria a ogni processo PHP (tipicamente 64 MB, 128 MB o 256 MB). Quando WordPress e i suoi plugin tentano di usare più memoria di quella disponibile, PHP interrompe l’esecuzione e mostra l’errore fatale.

Il messaggio di errore completo indica esattamente quanta memoria era disponibile e quanti byte il processo ha tentato di allocare:

Fatal error: Allowed memory size of 134217728 bytes exhausted
(tried to allocate 4096 bytes) in /var/www/html/wp-includes/class-wpdb.php on line 2056

In questo esempio, il limite era 128 MB (134217728 bytes) e WordPress ha superato questo limite durante una query al database.

Cause comuni del problema

L’errore memory exhausted può essere causato da diversi fattori:

  • Troppi plugin attivi: ogni plugin carica codice PHP in memoria. Con 30-40 plugin attivi, il consumo di memoria può superare facilmente i 128 MB.
  • Plugin mal ottimizzati: alcuni plugin caricano in memoria grandi quantità di dati anche quando non necessario, come plugin di statistiche che elaborano migliaia di record.
  • Tema pesante: temi con molte funzionalità integrate (slider, page builder incorporato, mega menu) consumano più memoria dei temi leggeri.
  • Immagini elaborate via PHP: le operazioni di ridimensionamento e compressione delle immagini richiedono molta memoria, specialmente per immagini ad alta risoluzione.
  • WooCommerce con molti prodotti: caricare cataloghi con migliaia di prodotti e varianti può saturare la memoria rapidamente.
  • Limite PHP troppo basso: alcuni hosting condivisi impostano il limite a soli 32 MB o 64 MB, insufficiente per la maggior parte dei siti WordPress moderni.

Soluzione 1: aumentare il limite di memoria in wp-config.php

Il modo più rapido per risolvere l’errore è aumentare il limite di memoria di WordPress. Apri il file wp-config.php nella root del sito e aggiungi questa riga prima del commento “That’s all, stop editing!”:

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

Questo dice a WordPress di richiedere fino a 256 MB di memoria per i processi front-end. Per il pannello admin, che generalmente richiede più memoria, puoi impostare un limite separato:

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

Nota importante: questa impostazione funziona solo se il limite PHP del server è uguale o superiore. Se il server limita PHP a 128 MB, WordPress non potrà usarne 256 MB indipendentemente da questa impostazione.

Soluzione 2: modificare il limite PHP nel php.ini

Se hai accesso al file php.ini, puoi modificare direttamente il limite di memoria PHP:

memory_limit = 256M

Se non hai accesso a php.ini, prova con un file .htaccess nella root di WordPress (funziona solo con Apache):

php_value memory_limit 256M

In alternativa, prova con un file .user.ini nella root del sito (funziona con PHP-FPM):

memory_limit = 256M

Dopo la modifica, ricarica la pagina. Se l’errore scompare, il problema era semplicemente un limite troppo basso. Se persiste, il limite del server potrebbe essere inferiore a quanto richiesto — contatta il tuo hosting per verificare.

Soluzione 3: identificare il plugin che consuma più memoria

Se aumentare il limite di memoria è solo un palliativo temporaneo (l’errore potrebbe ripresentarsi con il crescere dei contenuti), è meglio identificare e risolvere la causa. Installa il plugin Query Monitor: nella sezione “Environment” mostra il consumo di memoria corrente e il limite massimo. Nella sezione “Queries” puoi vedere quali plugin eseguono più query al database.

Per un’analisi più precisa da SSH, puoi usare WP-CLI:

wp eval 'echo "Memoria usata: " . round(memory_get_peak_usage()/1024/1024, 2) . " MBn";' --path=/var/www/html/

Disattiva i plugin uno alla volta e controlla il consumo di memoria dopo ogni disattivazione per identificare quale plugin è il più avido di risorse.

Soluzione 4: ottimizzare il consumo di memoria

Oltre ad aumentare il limite, puoi ridurre il consumo di memoria con queste pratiche:

  • Rimuovi i plugin inutilizzati: ogni plugin attivo consuma memoria. Disattiva e elimina quelli che non usi realmente.
  • Sostituisci plugin pesanti con alternative leggere: ad esempio, se usi un plugin di statistiche che carica dati in memoria, valuta di usare Google Analytics che non impatta sulla memoria del server.
  • Limita le revisioni degli articoli: aggiungi in wp-config.php: define(‘WP_POST_REVISIONS’, 5); per limitare il numero di revisioni salvate.
  • Disabilita il CRON di WordPress per le operazioni pesanti: usa un cron di sistema al posto di wp-cron.php per evitare che operazioni pianificate pesanti si sovrappongano alle richieste dei visitatori.
  • Aggiorna PHP: PHP 8.x usa significativamente meno memoria rispetto a PHP 7.x per le stesse operazioni.

Monitorare il consumo di memoria nel tempo

Dopo aver risolto l’errore, è buona pratica monitorare il consumo di memoria per prevenire problemi futuri. Il plugin Query Monitor mostra il picco di memoria usato in ogni pagina nella toolbar admin. Se noti che il consumo si avvicina al limite (ad esempio 200 MB su un limite di 256 MB), è il momento di intervenire prima che l’errore si ripresenti. Puoi anche aggiungere un monitoraggio automatico con un servizio come UptimeRobot o Better Uptime che ti avvisa immediatamente se il sito va offline, dandoti il tempo di intervenire prima che i visitatori se ne accorgano.

Quando il problema è nel server

Se l’errore persiste nonostante il limite sia impostato a 256 MB o superiore, il problema potrebbe essere nel server stesso. Gli hosting condivisi economici limitano le risorse in modo molto aggressivo. In questi casi, le opzioni sono contattare il supporto hosting per richiedere un aumento delle risorse, oppure valutare un upgrade a un piano di hosting più performante che offra più memoria PHP e risorse dedicate.

L’errore persiste?

Se hai provato tutte le soluzioni e l’errore memory exhausted continua a presentarsi, potrebbe esserci un memory leak in un plugin o nel tema. Il team di SoccorsoWP può analizzare il consumo di memoria del tuo sito, identificare i componenti problematici e ottimizzare la configurazione. Apri un ticket e risolvi il problema.

Condividi: