Memoria RAM WordPress: come ottimizzarla

Il limite di memoria in WordPress

WordPress è scritto in PHP, un linguaggio che esegue ogni richiesta in un processo separato con una quantità limitata di memoria. Quando un visitatore carica una pagina del tuo blog, WordPress, i plugin e il tema consumano una porzione di questa memoria per generare la risposta. Se il consumo supera il limite impostato, PHP interrompe l’esecuzione con un errore fatale: la famigerata “White Screen of Death” (WSOD), pagina bianca senza alcun messaggio. Comprendere e ottimizzare l’uso della memoria RAM in WordPress è essenziale per mantenere il sito stabile e reattivo.

Ogni sito ha esigenze di memoria diverse. Un blog semplice con pochi plugin può funzionare bene con 64 MB, mentre un e-commerce con decine di plugin, elaborazione di immagini e code di email può necessitare di 512 MB o più. Il tuo compito è trovare il giusto equilibrio tra risorse allocate e performance.

WP_MEMORY_LIMIT e WP_MAX_MEMORY_LIMIT

WordPress definisce due costanti per controllare la memoria PHP. WP_MEMORY_LIMIT imposta il limite per il frontend del sito. WP_MAX_MEMORY_LIMIT è il limite per le pagine di amministrazione e le operazioni intensive (import/export, elaborazione media). Il valore predefinito è 40 MB per i siti mono-sito e 64 MB per multisito, ma la maggior parte dei siti moderni necessita di valori più alti.

Per aumentare il limite, modifica il file wp-config.php nella radice del sito. Aggiungi queste righe prima del commento “That’s all, stop editing!”:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Se il tuo hosting lo consente, puoi anche aumentare il limite attraverso il pannello di controllo (cPanel, Plesk, DirectAdmin) modificando il file php.ini o user.ini. Per hosting condivisi, contatta il supporto tecnico se necessario.

Come PHP consuma la memoria in WordPress

La memoria PHP viene consumata da ogni operazione che WordPress esegue per generare una pagina. Plugin mal scritti sono la causa principale di consumo eccessivo: plugin che caricano librerie pesanti su tutte le pagine, eseguono query non ottimizzate o mantengono in memoria grandi array di dati. Anche il tema contribuisce, soprattutto se carica file CSS e JavaScript su ogni pagina invece che condizionalmente.

Le operazioni di media processing (ridimensionamento di immagini uploadate, generazione di thumbnail) sono particolarmente dispendiose in termini di memoria. Caricare un’immagine da 10 MB fa lievitare istantaneamente il consumo. Anche i cron job WordPress, come la verifica degli aggiornamenti e l’invio di email programmate, consumano memoria in background.

Identificare i plugin che consumano più memoria

Query Monitor

Query Monitor è un plugin di debugging essenziale per WordPress. Mostra in tempo reale il consumo di memoria per ogni pagina, la ripartizione tra plugin, tema e core, il numero di query al database e il tempo di esecuzione. Con Query Monitor puoi identificare esattamente quale plugin sta consumando più memoria e decidere se sostituirlo, ottimizzarlo o contattare lo sviluppatore. Il plugin si attiva solo per admin loggati e non influisce sulle performance per i visitatori.

Memory Usage Dashboard

Plugin specifici come Memory Usage Dashboard aggiungono un widget alla dashboard amministrativa che mostra la memoria utilizzata in tempo reale, il limite attuale e lo storico dei consumi. Utile per monitorare l’andamento nel tempo, specialmente dopo l’installazione di nuovi plugin o aggiornamenti.

Aumentare il limite di memoria PHP

Se hai identificato che il tuo sito necessita di più memoria, il metodo più sicuro è modificare wp-config.php. In alternativa, puoi creare o modificare un file php.ini nella root del sito con la riga memory_limit = 256M. Se il tuo hosting usa PHP-FPM, puoi modificare il limite dal pannello del tuo provider host. Alcuni hosting WordPress ottimizzati (Kinsta, WP Engine, SiteGround) permettono di regolare la memoria direttamente dalla dashboard.

Aumentare la memoria non è sempre la soluzione migliore: se un plugin consuma quantità spropositate di memoria, aumentare il limite maschera il problema senza risolverlo. In questi casi, è preferibile sostituire il plugin con un’alternativa più efficiente.

Ottimizzazione lato server

OPcache

OPcache è un’estensione PHP che memorizza in cache il codice PHP compilato, riducendo il tempo di esecuzione e il consumo di memoria per le richieste successive. È abilitato di default su PHP 5.5+ e può essere configurato nel php.ini con parametri come opcache.memory_consumption (dimensione della cache) e opcache.max_accelerated_files (numero massimo di file). Attivare OPcache riduce il carico sul server del 30-50% per siti WordPress.

PHP-FPM tuning

Se il tuo server usa PHP-FPM, la configurazione dei pool influenza direttamente la memoria disponibile per WordPress. I parametri pm.max_children (numero massimo di processi PHP contemporanei), pm.start_servers e pm.max_requests dovrebbero essere calibrati in base alla RAM totale del server e al traffico del sito. Un server con 2 GB di RAM e un pool WordPress può sostenere circa 8-12 processi PHP concorrenti, a seconda del consumo medio per richiesta.

Redis per ridurre il carico di memoria

Redis è un database in-memory utilizzato come cache per WordPress. Memorizza query ricorrenti, frammenti HTML, sessioni utente e oggetti PHP, riducendo il numero di query al database e il consumo di memoria PHP per ogni richiesta. Plugin come Redis Object Cache o W3 Total Cache con supporto Redis si integrano facilmente. Redis è particolarmente efficace per siti con traffico elevato o query complesse: la cache oggetti può ridurre la memoria consumata per pagina del 40-60%.

Segnali di memoria insufficiente

Riconoscere i sintomi di memoria insufficiente ti permette di intervenire prima che il sito vada in crash. I segnali più comuni includono: White Screen of Death su pagine specifiche dell’admin (media library, post editor), errori “Allowed memory size of X bytes exhausted” nei log di errore, upload di immagini che falliscono senza motivo apparente, plugin che non si attivano, l’editor Gutenberg che non carica correttamente, e pagine pubbliche che si caricano lentamente in modo intermittente.

Se noti questi sintomi, il primo passo è verificare il limite attuale con un plugin informativo o controllando il file wp-config.php. Poi analizza i consumi con Query Monitor per identificare il colpevole, e infine decidi se aumentare il limite o sostituire i plugin problematici.

Conclusioni

L’ottimizzazione della memoria RAM in WordPress richiede un approccio bilanciato: identifica i plugin che consumano più memoria con strumenti come Query Monitor, aumenta il limite in wp-config.php se necessario, e implementa ottimizzazioni lato server come OPcache e Redis. Non aumentare la memoria senza prima aver diagnosticato la causa del consumo eccessivo: la soluzione migliore è spesso sostituire plugin inefficienti piuttosto che allocare più risorse.

Lascia una risposta