Come Risolvere l’Errore 500 Internal Server Error in WordPress

L’errore 500 Internal Server Error di WordPress è uno degli errori più frustranti perché non fornisce alcuna informazione su cosa sia andato storto. Può comparire su qualsiasi pagina, mettere completamente offline il tuo sito e danneggiare il tuo posizionamento nei motori di ricerca se rimane irrisolto per più di qualche ora.

Scarica WP STAGING per evitare questo e altri errori in futuro. Il plugin WP STAGING ti permette di creare una copia del tuo sito WordPress in pochi secondi. Puoi testare nuovi plugin, design e altri aggiornamenti in un ambiente sicuro su quel sito di staging.

In breve: Le cinque soluzioni più comuni per un errore 500 di WordPress sono: (1) attivare la modalità debug per leggere il log degli errori, (2) controllare e rigenerare il file .htaccess, (3) aumentare il limite di memoria PHP, (4) disattivare tutti i plugin e riattivarli uno alla volta e (5) reinstallare i file del core di WordPress. Inizia dalla modalità debug, così saprai quale soluzione specifica applicare.

Che cos’è l’errore 500 Internal Server Error di WordPress?

Un codice di stato 500 è il modo generico con cui il server dice "qualcosa è andato storto". Quando il tuo browser richiede una pagina, il server esegue il codice PHP per costruire quella pagina. Se qualcosa in quel processo fallisce prima che si possa formare una risposta corretta, il server risponde con un HTTP 500 anziché con la pagina stessa.

L’errore può presentarsi così:

Error-500

Oppure può presentarsi così:

Error 500 - Internal Server Error

La caratteristica principale è che l’errore è generico. Ti dice che la richiesta è fallita, ma non il perché. È questo che lo rende più difficile da risolvere rispetto a un errore più specifico come un 404 (pagina non trovata) o un 403 (accesso negato). Il resto di questa guida ti offre un percorso sistematico attraverso le cause più comuni.

Cosa causa un errore 500 in WordPress?

Le cause più comuni sono:

  • Un file .htaccess danneggiato o malformato
  • Esaurimento della memoria PHP
  • Un conflitto tra plugin o temi che provoca un errore fatale di PHP
  • File del core di WordPress danneggiati
  • Un guasto a livello di server (crash di PHP-FPM, configurazione errata, permessi dei file)

Usa la tabella seguente per abbinare la tua situazione alla causa più probabile e alla prima soluzione più rapida da provare:

Quando è comparso l’errore 500? Ambito Causa più probabile Prima soluzione da provare
Dopo aver installato o aggiornato un plugin Intero sito Conflitto tra plugin Soluzione 4: Disattivare tutti i plugin
Dopo aver modificato wp-config.php o .htaccess Intero sito Errore di sintassi nel file di configurazione Soluzione 2: Rigenerare .htaccess
Dopo un aggiornamento del core di WordPress Intero sito File del core danneggiati Soluzione 5: Reinstallare i file del core
Nessuna modifica recente, intero sito offline Intero sito Esaurimento della memoria Soluzione 3: Aumentare il limite di memoria PHP
Nessuna modifica recente, una sola pagina interessata Una sola pagina Problema di permalink o mod_rewrite Soluzione 2: Rigenerare .htaccess
Impossibile accedere a wp-admin Intero sito Causa sconosciuta Soluzione 1: Attivare prima la modalità debug

Controlli rapidi da provare per primi

Prima di toccare qualsiasi file, esegui questi due rapidi passaggi. Uno dei due può risolvere un errore 500 causato da una cache obsoleta.

Forza l’aggiornamento della pagina: Premi Ctrl + F5 su Windows o Cmd + Shift + R su Mac per bypassare la versione in cache e caricare la copia più recente della pagina.

Svuota la cache del browser: Svuotare la cache del browser esclude un problema di caching lato client prima che tu modifichi qualsiasi file del server.

  1. Google Chrome: Premi Ctrl + Shift + Delete, seleziona l’intervallo di tempo desiderato e clicca su "Cancella dati".
Cancella la cache del browser
  1. Mozilla Firefox: Premi Ctrl + Shift + Delete, scegli l’intervallo di tempo appropriato e clicca su "Cancella adesso".
Cancella la cache del browser Firefox
  1. Apple Safari: Premi Command + Option + E per cancellare istantaneamente la cache.
  2. Microsoft Edge: Premi Ctrl + Shift + Delete, spunta "Immagini e file memorizzati nella cache" e clicca su "Cancella adesso".

Se l’errore scompare dopo aver svuotato la cache, hai finito. Se persiste, prosegui con le soluzioni numerate qui sotto.

I passaggi seguenti sono più complessi e influiscono sul database/file del sito WordPress. Per non causare ulteriori danni e se hai ancora accesso alla dashboard di WordPress, crea un sito di staging con WP STAGING e prova a correggere l’errore sulla pagina di staging invece che sul sito di produzione.

Puoi creare un sito di staging per testare in sicurezza ogni soluzione prima di applicarla al tuo sito di produzione con WP STAGING.

Soluzione 1: Attivare la modalità debug di WordPress

Il primo passo più sicuro è attivare il logging di debug di WordPress, così da poter leggere l’errore esatto che ha causato la risposta 500. Senza il log, ogni soluzione successiva è solo un tentativo alla cieca. Nei ticket di supporto di WP STAGING, la prima causa più comune che riscontriamo è un conflitto tra plugin, e il log di debug lo fa emergere immediatamente.

Apri il tuo file wp-config.php (che si trova nella cartella radice della tua installazione WordPress, accessibile tramite FTP o il gestore file del tuo hosting) e aggiungi queste tre righe:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Modifica il file wp-config

Dai un’occhiata a questo articolo per una guida passo passo su come attivare il log di debug di WordPress.

Il log di debug viene scritto in /wp-content/debug.log. Apri il file e cerca il primo errore nella parte superiore. Se il log indica un plugin specifico, rinomina la cartella di quel plugin per disabilitarlo. Ad esempio, rinomina /wp-content/plugins/woocommerce in /wp-content/plugins/woocommerce-disabled.

Se il log di debug è vuoto, controlla il log degli errori a livello di server:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

Accedi a questi file tramite FTP o il pannello di controllo del tuo hosting. Alcuni pannelli di controllo mostrano il log degli errori anche attraverso la loro interfaccia utente.

Soluzione 2: Rigenerare il file .htaccess

Un file .htaccess danneggiato è una delle cause più comuni di un errore 500 sui server basati su Apache. Il file si trova nella directory radice di WordPress, accanto alle cartelle wp-admin, wp-includes e wp-content.

Modifica il file .htaccess

Per rigenerarlo:

  1. Connettiti al tuo sito tramite FTP o il gestore file del tuo hosting.
  2. Rinomina il file .htaccess esistente in .htaccess_backup, così da avere una copia di riserva.
  3. Crea un nuovo file chiamato .htaccess e incolla al suo interno le regole di rewrite predefinite di WordPress:
# 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 tuo sito. Se la causa era il file .htaccess danneggiato, l’errore si risolve immediatamente.

Alternativa tramite la bacheca di WordPress: Se hai ancora accesso alla bacheca, vai su Impostazioni > Permalink e clicca su "Salva le modifiche" senza cambiare nulla. WordPress rigenera automaticamente il file .htaccess con quel salvataggio.

Soluzione 3: Aumentare il limite di memoria PHP

PHP elabora ogni richiesta di pagina entro un budget di memoria. Quando un plugin, un tema o una query complessa supera quel budget, il server risponde con un errore 500. Dai nostri test su ambienti di hosting condiviso, l’esaurimento della memoria PHP è il fattore scatenante lato server più comune che riscontriamo quando l’errore non è stato preceduto da modifiche recenti al sito.

Puoi aumentare il limite in due modi:

Opzione A: Tramite cPanel (se il tuo host lo fornisce)

  1. Accedi a cPanel.
  2. Apri "Select PHP Version".
  3. Clicca su "Switch to PHP Options".
  4. Clicca su memory_limit e aumenta il valore a 256 o 512 (MB), poi salva.

Opzione B: Tramite wp-config.php

Modifica il file wp-config

Apri wp-config.php e aggiungi questa riga vicino alla parte superiore:

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

Salva il file e ricarica il tuo sito. Se la causa era l’esaurimento della memoria, l’errore si risolve dopo il salvataggio.

Soluzione 4: Disattivare tutti i plugin

I conflitti tra plugin sono una causa principale frequente di un errore 500 di WordPress. Se la Soluzione 1 ha confermato un conflitto tra plugin nel log di debug, oppure se non riesci a leggere il log, disattivare tutti i plugin e riattivarli uno alla volta ti permette di individuare il colpevole.

Se hai accesso alla bacheca di WordPress:

  1. Vai su Plugin nella bacheca.
  2. Seleziona tutti i plugin usando la casella di controllo in alto.
  3. Dal menu a tendina "Azioni di gruppo", scegli "Disattiva", poi clicca su "Applica". WordPress Dashboard Select Plugins Deactivate plugins to troubleshoot errors in the WordPress Admin Dashboard
  4. Ricarica il tuo sito. Se l’errore è scomparso, riattiva i plugin uno alla volta, ricaricando dopo ciascuno, finché l’errore non ricompare. L’ultimo plugin che hai attivato è il colpevole.

Se non riesci ad accedere alla bacheca di WordPress:

Connettiti tramite FTP e rinomina la cartella dei plugin:

  1. Rinomina /wp-content/plugins in /wp-content/plugins-disabled.
  2. Ricarica il tuo sito. Se torna a funzionare, hai confermato un conflitto tra plugin.
  3. Rinomina la cartella di nuovo in /wp-content/plugins.
  4. Disabilita i singoli plugin rinominando le loro sottocartelle (ad esempio, rinomina /wp-content/plugins/woocommerce in /wp-content/plugins/woocommerce-disabled), poi ricarica dopo ogni rinomina.

Soluzione 5: Reinstallare i file del core di WordPress

Se l’errore è comparso senza alcuna modifica ai plugin o ai temi, la causa potrebbero essere i file del core di WordPress danneggiati. Puoi reinstallare il core senza sovrascrivere i tuoi contenuti, plugin o temi.

  1. Scarica l’ultima copia di WordPress da wordpress.org.
  1. Decomprimi l’archivio scaricato.
  2. Connettiti al tuo server tramite FTP o il gestore file del tuo hosting.
  3. Rinomina le cartelle esistenti /wp-admin e /wp-includes in /wp-admin-backup e /wp-includes-backup.
  1. Carica le nuove cartelle /wp-admin e /wp-includes dall’archivio decompresso nella stessa posizione.
  1. Ricarica il tuo sito. Se la causa erano i file del core danneggiati, l’errore si risolve al termine del caricamento.

Non sostituire il file wp-config.php né la cartella wp-content durante questo processo. Quei file contengono le credenziali del database e tutti i media caricati.

Soluzione 6: Contattare il tuo provider di hosting

Se nessuna delle cinque soluzioni precedenti ha risolto l’errore, il problema è molto probabilmente a livello di server piuttosto che all’interno della tua installazione WordPress. Le cause a livello di server includono:

  • Un processo PHP-FPM che è andato in crash o si è fermato silenziosamente
  • Una configurazione errata di Apache o Nginx introdotta durante un aggiornamento del server
  • Modifiche ai permessi dei file che impediscono a PHP di leggere i file di WordPress
  • Limiti di risorse a livello di server non correlati al limite di memoria PHP

Contatta il team di supporto del tuo provider di hosting e condividi le righe pertinenti del log degli errori del server che hai trovato nella Soluzione 1. La maggior parte degli host WordPress gestiti può diagnosticare rapidamente gli errori 500 a livello di server a partire dal log.

Se il tuo host non riesce a risolvere il problema, oppure se gli errori 500 si ripresentano di frequente in condizioni di carico normale, potrebbe essere il momento di valutare un ambiente di hosting più performante per le esigenze del tuo sito.

Iscriviti al nostro canale YouTube per altri video tutorial su WordPress e connettiti con noi su Twitter e Facebook.

Cosa fare se nessuna delle soluzioni funziona

Se hai provato tutte e sei le soluzioni e l’errore persiste, usa questa tabella per restringere le possibilità rimanenti:

Sintomo Cosa controllare
Il log di debug è vuoto dopo aver attivato WP_DEBUG Controlla il log degli errori a livello di server (il percorso Apache o Nginx della Soluzione 1); l’errore PHP potrebbe non raggiungere il livello di log di WordPress
Tutti i plugin disattivati, ma l’errore si verifica ancora Passa a un tema WordPress predefinito (come Twenty Twenty-Four) tramite FTP rinominando la cartella del tuo tema attivo sotto /wp-content/themes/
Errore solo su wp-admin, non sul front-end Un plugin o file specifico per l’amministrazione in /wp-content/mu-plugins/ potrebbe caricarsi e fallire; controlla quella directory
L’errore 500 compare su un solo URL Uno shortcode, un campo personalizzato o un blocco specifico di un articolo potrebbe innescare un errore fatale; attiva WP_DEBUG e visita quell’URL per catturare la voce di log
Il provider di hosting dice che non c’è nessun errore del server Chiedi in modo specifico dello stato di salute del processo PHP-FPM e se il pool di worker PHP è stato riavviato di recente

Articoli correlati

Rene Hermenau

Autore: Rene Hermenau

Informazioni sull'autore: René Hermenau è il fondatore di WP STAGING. Si occupa di backup WordPress, staging, migrazioni, gestione dei database e flussi di deployment sicuri.