Errore 500 WordPress: Come diagnosticarlo e risolverlo in modo sistematico

Errore 500 WordPress internal server error come risolvere

Hai aperto il tuo sito e invece della homepage hai trovato un messaggio che dice “500 Internal Server Error“. Nessuna spiegazione, nessun dettaglio su cosa è andato storto. Il sito è irraggiungibile, i tuoi clienti non riescono ad accedervi e tu non sai da dove cominciare.

La prima cosa che devi sapere è che l’errore 500 su WordPress non è raro, e nella grande maggioranza dei casi si risolve senza perdere dati o dover ricostruire nulla. La seconda cosa è che esiste un modo preciso per affrontarlo, che ti fa risparmiare ore di tentativi casuali. Questa guida ti porta attraverso quel percorso, partendo da cosa ha causato il problema fino al momento in cui il sito torna online.

Perché l’errore 500 è così difficile da capire

Il codice HTTP 500 significa letteralmente “errore interno del server”. Il server sa che qualcosa è andato storto, ma non è in grado di dirti cosa. È come ricevere un messaggio che dice “c’è un problema” senza ulteriori dettagli.

Questo lo rende diverso da altri errori WordPress. Un errore 404 ti dice che una pagina non esiste. Un errore 403 ti dice che non hai i permessi per accedere. Il 500 invece può essere causato da decine di cose diverse: un plugin difettoso, un file di configurazione corrotto, un limite di memoria PHP superato, un aggiornamento andato male, un tema con errori di codice, oppure un errore 500 WordPress da .htaccess quando le regole del server vengono corrotte. A seconda della configurazione del tuo hosting, il messaggio che vedi può apparire in modi diversi:

  • 500 Internal Server Error
  • HTTP Error 500
  • Internal Server Error
  • 500 Error su wp-admin
  • The server encountered an internal error

In tutti questi casi il significato è lo stesso: il server non riesce a completare la richiesta, e per capire perché devi sapere dove guardare.

Prima cosa da fare: leggi il log degli errori di WordPress

Tutti i tutorial sull’errore 500 WordPress ti danno una lista di cose da provare: disattiva i plugin, rinomina l’htaccess, aumenta la memoria PHP. Funziona per tentativi, ma può volerci un’ora prima di trovare il problema, e nel frattempo stai toccando parti del sito che forse non c’entrano nulla.

Esiste un modo più veloce per risolvere l’errore 500 WordPress, leggere il log degli errori prima di toccare qualsiasi cosa. Il log ti dice esattamente cosa ha causato il 500, quale file è coinvolto e a quale riga. Con quella informazione, vai diretto al problema invece di provare tutto alla cieca.

Per attivarlo, accedi ai file del sito tramite FTP o File Manager del tuo hosting e apri il file wp-config(.)php. Aggiungi queste tre righe prima della riga che dice /* That’s all, stop editing! */:

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

Salva il file e ricarica il sito. Il log viene creato automaticamente in wp-content/debug.log. Aprilo e cerca righe che contengono PHP Fatal error o PHP Parse error. Quelle righe ti dicono esattamente cosa è successo.

Ecco cinque esempi di errori che potresti trovare nel log e cosa significano:

  • PHP Fatal error: Allowed memory size exhausted: il sito ha finito la memoria PHP disponibile, spesso per un plugin pesante o troppi plugin attivi insieme
  • PHP Fatal error: Call to undefined function: un plugin sta chiamando una funzione che non esiste, quasi sempre per incompatibilità con la versione di PHP installata sul server
  • PHP Parse error: syntax error: c’è un errore di sintassi in un file PHP, spesso nel tema o in un plugin modificato manualmente
  • AH01630: client denied by server configuration: una regola nel file .htaccess sta bloccando le richieste
  • PHP Fatal error: Uncaught Error: Undefined constant: un plugin o il tema non è compatibile con la versione di PHP attuale

Una volta che hai il messaggio di errore, sai già dove intervenire. Se il log è vuoto o non riesci ad attivarlo perché non hai accesso ai file, continua a leggere: le sezioni successive coprono entrambe le situazioni.

Hai ancora accesso al pannello di WordPress

Se riesci ad entrare nella dashboard di WordPress, hai tutto quello che ti serve per risolvere il problema senza toccare i file direttamente. Segui questi passaggi nell’ordine indicato.

Disattiva tutti i plugin

I plugin in conflitto sono la causa più frequente dell’errore 500 su WordPress. Vai su Plugin → Plugin installati, seleziona tutti, scegli Disattiva dal menu delle azioni di gruppo e applica. Ricarica il sito. Se l’errore scompare, uno dei plugin era il responsabile.

Per trovare quale, riattivali uno per uno. Riattiva il primo, ricarica il sito, controlla se l’errore torna. Poi il secondo, e così via. Quello che ripresenta l’errore 500 è il plugin WordPress responsabile.

Trovato il responsabile, hai tre opzioni: cercare un aggiornamento del plugin che risolva il conflitto, contattare lo sviluppatore del plugin, oppure sostituirlo con un’alternativa compatibile.

Passa temporaneamente al tema predefinito

Se disattivare i plugin non risolve, il problema potrebbe essere nel tema. Vai su Aspetto → Temi e attiva Twenty Twenty-Four o un altro tema predefinito di WordPress. Se l’errore 500 scompare, il tema attivo contiene il problema: un errore nel file functions.php, una incompatibilità con la versione di WordPress o PHP, oppure codice corrotto dopo un aggiornamento incompleto.

Rigenera il file .htaccess

Il file .htaccess gestisce le regole del server, inclusi i permalink. Se viene corrotto, può bloccare l’intero sito. Il modo più semplice per rigenerarlo è andare su Impostazioni → Permalink e cliccare Salva modifiche senza cambiare nulla. WordPress sovrascrive automaticamente il file con le regole corrette.

Aumenta il limite di memoria PHP

Se il log mostra Allowed memory size exhausted, WordPress non ha abbastanza memoria per completare le operazioni. Apri wp-config(.)php e aggiungi questa riga:

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

Se il problema persiste, contatta il supporto del tuo hosting: su molti piani il limite globale di PHP si modifica da cPanel in Software → Select PHP Version → php.ini options → memory_limit.

Se hai seguito tutti questi passaggi e il sito è ancora offline, il problema potrebbe richiedere un’analisi più approfondita dei file del server. Raccontami cosa sta succedendo e intervengo senza intermediari.

Il pannello non risponde — intervieni da FTP o cPanel

Se l’errore 500 ha reso irraggiungibile anche la dashboard di WordPress, non puoi intervenire dall’interno. Hai bisogno di accesso diretto ai file tramite FTP con un programma come FileZilla, oppure tramite il File Manager del tuo cPanel.

Le credenziali FTP si trovano nel pannello del tuo hosting. Se non le hai mai usate, il supporto hosting può aiutarti a configurare la connessione in pochi minuti.

Disattiva i plugin rinominando la cartella

Accedi via FTP e vai nella cartella wp-content. Rinomina la cartella plugins in qualcosa come plugins_disattivati. Questo dice a WordPress che i plugin non esistono più, e li disattiva tutti in automatico senza che tu debba entrare nel pannello. Ricarica il sito. Se torna online, il problema era in uno dei plugin.

Per trovare quale, ripristina il nome originale della cartella, poi entra dentro e rinomina le sottocartelle dei singoli plugin una alla volta. Ricarica il sito dopo ogni rinomina fino a trovare il responsabile.

Sostituisci il file .htaccess

Un .htaccess corrotto è tra le cause più frequenti dell’errore 500 WordPress, soprattutto dopo aggiornamenti ai permalink o installazioni di plugin che modificano le regole del server. Trovalo nella cartella principale del sito: se non lo vedi in FileZilla, vai su Server → Forza visualizzazione file nascosti, perché i file che iniziano con un punto sono nascosti per impostazione predefinita. Rinominalo in .htaccess_old, poi crea un nuovo file .htaccess con questo contenuto:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Ricarica il sito. Se funziona, accedi alla dashboard e vai su Impostazioni → Permalink → Salva modifiche per rigenerarlo correttamente.

Verifica i permessi dei file

Ogni file e cartella del sito ha dei permessi che determinano chi può leggerli e modificarli. Quando questi valori sono errati, il server non riesce a eseguire il codice e restituisce un errore 500. Per un sito WordPress i valori corretti sono:

  • File: 644
  • Cartelle: 755
  • wp-config(.)php: 600

Puoi verificarli e correggerli in FileZilla cliccando con il tasto destro su file e cartelle e selezionando Permessi file.

Ripristina i file del core WordPress

Se il log mostra errori in file che si trovano nelle cartelle wp-admin o wp-includes, i file principali di WordPress potrebbero essere corrotti, cosa che può succedere quando un aggiornamento viene interrotto a metà. Scarica una copia pulita di WordPress da wordpress.org, estrai l’archivio e carica via FTP le cartelle wp-admin e wp-includes sovrascrivendo quelle esistenti. Non toccare la cartella wp-content: lì ci sono tutti i tuoi contenuti, plugin e temi.

L’errore 500 compare solo su alcune pagine, o solo su wp-admin

Se il resto del sito funziona normalmente ma l’errore 500 compare solo aprendo una pagina specifica, il problema non riguarda l’intera installazione ma qualcosa di specifico a quella URL.

Le cause più frequenti in questo caso sono uno shortcode di un plugin che genera un errore fatale su quella pagina, un’immagine di dimensioni eccessive che esaurisce la memoria durante il caricamento, oppure una query al database che va in timeout, cioè un’operazione che richiede troppo tempo e viene interrotta dal server prima di completarsi. Questo si vede spesso su siti WooCommerce con prodotti molto elaborati o con widget complessi nelle sidebar.

Per diagnosticarlo, attiva WP_DEBUG come descritto all’inizio della guida e visita la pagina che restituisce l’errore. Il log mostrerà l’errore specifico e da lì sai dove intervenire.

Un caso diverso ma frequente è l’errore 500 che compare solo su wp-admin mentre il frontend del sito funziona normalmente. In questo caso le cause più probabili sono un plugin di amministrazione difettoso o un conflitto introdotto da un aggiornamento recente. La procedura è la stessa: disattiva i plugin tramite FTP rinominando la cartella, poi riattivali uno alla volta dalla dashboard per trovare il responsabile.

Dopo aver risolto: tre verifiche prima di considerarlo chiuso

Quando il sito torna online c’è la tendenza a tirare un sospiro di sollievo e passare ad altro. Ci sono però tre cose che vale la pena fare subito.

Disattiva WP_DEBUG

Se hai attivato il debug per diagnosticare il problema, ricordati di rimettere il valore a false nel file wp-config(.)php. Lasciarlo attivo mostra messaggi di errore tecnici ai visitatori del sito, informazioni che chiunque può usare per capire come è strutturato il tuo sito.

Svuota la cache

Ricarica il sito da una finestra in incognito e da un dispositivo diverso. Se usi un plugin di cache come WP Rocket o W3 Total Cache, svuotala manualmente dal pannello del plugin. Alcuni plugin continuano a servire una versione in cache della pagina con l’errore anche dopo che il problema è stato risolto.

Controlla Google Search Console

Dopo un periodo di downtime, Google potrebbe aver registrato errori 5xx sulle tue pagine. Entra in Search Console, vai su Indicizzazione → Pagine e controlla se ci sono pagine segnalate come non disponibili. Le pagine tornano nell’indice automaticamente nei giorni successivi, ma tenerlo monitorato ti permette di intervenire se qualcosa non si normalizza. Per non scoprire i prossimi problemi ore dopo che sono già accaduti, considera di attivare un sistema di monitoraggio uptime per WordPress e assicurati di avere un backup automatico attivo. Se qualcosa va storto di nuovo, un backup recente ti permette di ripristinare il sito in pochi minuti invece di passare ore a cercare la causa.

Domande frequenti (FAQ) riguardo l'errore 500 in WordPress

Quasi mai. Nella grande maggioranza dei casi dipende da plugin, tema, .htaccess o configurazione PHP. Se però noti comportamenti strani come redirect verso altri siti o contenuti che non hai inserito, vale la pena fare anche una verifica di sicurezza oltre a risolvere il 500 internal server error WordPress.

Sì. Tramite FTP o File Manager puoi intervenire su plugin, tema e file di configurazione anche quando la dashboard è irraggiungibile. La sezione dedicata in questa guida descrive la procedura passo per passo.

Un aggiornamento può introdurre un’incompatibilità tra un plugin e WordPress, tra due plugin, o tra un plugin e la versione PHP del server. Quando l’errore compare subito dopo un aggiornamento, il componente aggiornato è quasi sempre il responsabile. Verifica il log, disattiva quel componente e controlla la compatibilità con la versione PHP installata.

Dipende dalla causa. Con il log attivo e un’indicazione precisa, spesso bastano dieci minuti. Senza log, andando per tentativi, può richiedere ore. La differenza sta tutta nell’ordine in cui si procede: prima si capisce cosa è successo, poi si interviene.

Se hai accesso al pannello di WordPress o a FTP, puoi seguire la procedura descritta in questa guida e risolvere la maggior parte dei casi autonomamente. Se non hai accesso a nessuno dei due, o se dopo aver seguito tutti i passaggi il sito è ancora offline, hai bisogno di qualcuno che intervenga direttamente sui file del server consulta la pagina di Assistenza WordPress diretta, senza intermediari.