Errore 500 Internal Server Error su WordPress: tutte le cause e come risolverlo
L’errore 500 Internal Server Error è uno dei problemi più generici e frustranti di WordPress. Non ti dice cosa è andato storto, solo che qualcosa sul server non ha funzionato. Può colpire l’intero sito, solo il pannello admin o singole pagine. In questa guida analizziamo tutte le cause dell’errore 500 su WordPress e ti mostriamo come risolverlo sistematicamente, dalla soluzione più rapida a quella più approfondita.
Cosa significa l’errore 500 Internal Server Error
A differenza di un errore 404 (pagina non trovata) o 503 (servizio non disponibile), l’errore 500 è un messaggio generico del server che indica: “qualcosa è andato storto ma non so dirti cosa”. Il server web (Apache o Nginx) ha ricevuto la richiesta ma PHP ha incontrato un problema durante l’elaborazione e non è riuscito a generare la pagina.
Le cause più comuni su WordPress sono:
- File .htaccess corrotto.
- Plugin o tema con errore PHP.
- Limite di memoria PHP esaurito.
- Versione PHP incompatibile.
- Permessi file errati.
- File del core WordPress corrotti.
- Database inaccessibile o corrotto.
La buona notizia è che con un approccio metodico puoi identificare la causa in pochi minuti. L’errore 500 è anche uno dei più stressanti perché spesso impedisce l’accesso sia al sito che al pannello wp-admin, costringendoti a lavorare via FTP o SSH. Niente panico: segui questa guida nell’ordine proposto e nella maggior parte dei casi risolverai al primo o secondo tentativo.
Soluzione 1: controlla il file .htaccess
Il file .htaccess è la causa più frequente dell’errore 500 su WordPress con server Apache. Un plugin che aggiunge regole errate, un aggiornamento interrotto o una modifica manuale sbagliata possono corromperlo.
- Collegati via FTP alla cartella root di WordPress.
- Rinomina .htaccess in .htaccess-backup.
- Ricarica il sito. Se funziona, il problema era nel file .htaccess.
- Accedi al pannello WordPress → Impostazioni → Permalink → clicca “Salva le modifiche”. WordPress rigenera un .htaccess pulito.
- Se avevi regole personalizzate nel vecchio file, aggiungile una alla volta testando dopo ogni aggiunta per identificare quella problematica.
Se usi Nginx invece di Apache, il file .htaccess non viene usato e questa soluzione non si applica. In quel caso, controlla la configurazione del virtual host di Nginx.
Soluzione 2: disattiva tutti i plugin
Se il file .htaccess non è il problema, il passo successivo è verificare se un plugin causa l’errore:
- Via FTP, vai in wp-content/ e rinomina la cartella plugins in plugins-off.
- Ricarica il sito. Se funziona, un plugin è il colpevole.
- Rinomina plugins-off in plugins, poi dentro la cartella rinomina i plugin uno alla volta per trovare quello responsabile.
I plugin che causano più spesso l’errore 500 sono quelli di caching (perché modificano il .htaccess), di sicurezza con firewall integrato e i page builder dopo un aggiornamento importante.
Soluzione 3: passa a un tema predefinito
Se disattivare i plugin non risolve, il problema potrebbe essere nel tema:
- Via FTP, rinomina la cartella del tema attivo in wp-content/themes/.
- WordPress attiverà automaticamente un tema predefinito (Twenty Twenty-Four).
- Se il sito torna a funzionare, il tema è la causa. Contatta lo sviluppatore o cerca un’alternativa.
Se non hai un tema predefinito installato, scarica Twenty Twenty-Four da WordPress.org e caricalo via FTP nella cartella themes. Ricorda che se usi un tema con page builder (Elementor, WPBakery), il layout delle pagine potrebbe apparire diverso con il tema predefinito: questo è normale e non significa che i contenuti sono persi. Sono nel database e torneranno visibili quando riattiverai il tema originale o un tema compatibile.
Soluzione 4: aumenta il limite di memoria PHP
L’errore 500 può essere causato dall’esaurimento della memoria PHP. Per aumentarla, prova in ordine:
- wp-config.php: aggiungi define(‘WP_MEMORY_LIMIT’, ‘256M’);
- .htaccess: aggiungi php_value memory_limit 256M
- php.ini: crea il file nella root con memory_limit = 256M
- Pannello hosting: molti provider permettono di modificare i parametri PHP direttamente dal pannello (Plesk, cPanel).
Se il sito richiede più di 256 MB per funzionare normalmente, c’è probabilmente un plugin con un problema di gestione della memoria che andrebbe identificato e sostituito. Puoi verificare il consumo di memoria reale installando il plugin Query Monitor, che mostra nella barra admin il picco di memoria raggiunto durante il caricamento di ogni pagina. Questo ti aiuta a capire se sei vicino al limite o se il problema è altrove.
Soluzione 5: verifica la versione PHP
Un aggiornamento della versione PHP sul server può causare errore 500 se plugin o temi non sono compatibili con la nuova versione. Questo accade spesso nel passaggio da PHP 7.4 a PHP 8.x, dove molte funzioni deprecate sono state rimosse.
- Controlla la versione PHP dal pannello hosting o con un file phpinfo().
- Se il problema è iniziato dopo un cambio di versione PHP, prova a tornare alla versione precedente dal pannello hosting.
- Aggiorna plugin e temi all’ultima versione prima di ripassare alla versione PHP più recente.
- Se devi restare su una versione PHP più vecchia temporaneamente, pianifica un aggiornamento progressivo dei componenti non compatibili, perché le versioni PHP obsolete non ricevono più patch di sicurezza.
Soluzione 6: controlla i permessi dei file
Permessi errati sui file e le cartelle possono causare l’errore 500. I permessi corretti per WordPress sono:
- Cartelle: 755 (proprietario può leggere/scrivere/eseguire, gruppo e altri possono leggere/eseguire).
- File: 644 (proprietario può leggere/scrivere, gruppo e altri possono solo leggere).
- wp-config.php: 400 o 440 per maggiore sicurezza.
Se hai accesso SSH, puoi correggere i permessi con:
find /percorso/wordpress/ -type d -exec chmod 755 {} ;
find /percorso/wordpress/ -type f -exec chmod 644 {} ;
Fai particolare attenzione se di recente hai caricato file via FTP con un client configurato male o se hai estratto un archivio di backup direttamente sul server: entrambe le operazioni possono alterare i permessi in modo imprevedibile.
Soluzione 7: attiva il debug per leggere l’errore
Se nessuna delle soluzioni precedenti ha funzionato, attiva il debug di WordPress per vedere l’errore specifico:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Con WP_DEBUG_DISPLAY a false, gli errori non vengono mostrati ai visitatori ma scritti nel file wp-content/debug.log. Apri questo file e cerca le righe con “Fatal error”: indicano il file esatto e la riga di codice che causa il problema.
Controlla anche i log del server: su Apache il file è solitamente /var/log/apache2/error.log, su Nginx /var/log/nginx/error.log. I log del server possono rivelare errori che WordPress non registra, come problemi di permessi o limiti del server. Se non hai accesso diretto ai log, chiedi al supporto tecnico del tuo hosting di verificarli: un buon provider sarà in grado di indicarti la causa esatta in pochi minuti. Ricordati di disattivare il debug dopo aver risolto il problema per non esporre informazioni sensibili.
L’errore 500 persiste? Interveniamo noi
Se hai provato tutte le soluzioni e l’errore 500 non si risolve, potrebbe trattarsi di un problema più profondo: database corrotto, configurazione server errata o conflitto a livello di sistema. Il team di SoccorsoWP diagnostica e risolve errori 500 ogni giorno, anche nei casi più complessi. Apri un ticket e torna online rapidamente.