In breve
- Il 500 è un errore generico: il messaggio a schermo non dice la causa, il log sì.
- Nove volte su dieci c’entra l’ultima modifica: un aggiornamento, un plugin nuovo, un cambio di PHP, una regola nel .htaccess.
- Prima di qualsiasi tentativo, copia file e database: un intervento fatto in fretta può peggiorare le cose.
- Il debug di WordPress va acceso solo il tempo necessario e poi spento: il file di log può contenere dati riservati.
- Se il 500 dura giorni, Google rallenta la scansione e alla fine toglie le pagine dai risultati.
Le prime mosse, in quest’ordine
- Annota dove e quando compare
Tutte le pagine o solo alcune? Da che ora? Sempre o a tratti? Fai uno screenshot con l’indirizzo visibile.
- Ricostruisci l’ultima modifica
Aggiornamenti, plugin installati, modifiche al tema, cambio di versione PHP, regole aggiunte da un plugin di sicurezza o di cache.
- Fai una copia prima di toccare
Backup di file e database dal pannello dell’hosting, oppure chiedilo al supporto. Scarica almeno .htaccess e il file di configurazione del sito.
- Leggi il log degli errori
Nel pannello dell’hosting cerca «log errori» o «error log» e guarda le righe all’ora in cui compare l’errore: quasi sempre indicano file e motivo.
- Annulla l’ultima modifica
Ripristina la versione precedente del file, disattiva il plugin appena aggiornato o torna alle impostazioni di prima. Una modifica alla volta, verificando dopo ognuna.
- Se non trovi la causa, scrivi all’hosting
Con indirizzo della pagina, ora esatta e cosa hai già provato: hanno accesso a log del server che tu potresti non vedere.
Cosa significa davvero «500 Internal Server Error»
Lo standard del protocollo web (RFC 9110) definisce il 500 come la risposta del server che ha incontrato una condizione imprevista e non è riuscito a soddisfare la richiesta. È la risposta «di riserva»: il server la usa quando non ha un codice più preciso. Per questo, da solo, non dice nulla sulla causa.
Che il visitatore non veda il dettaglio è voluto: la documentazione di PHP raccomanda di non mostrare mai gli errori a schermo sui siti pubblici, ma di registrarli in un file di log. La causa c’è, è scritta da un’altra parte.
Non confondere il 500 con i suoi vicini: 502, 503 e 504 indicano di solito un server sovraccarico, fermo o in manutenzione, e vanno girati all’hosting; una pagina bianca o la scritta «C’è stato un errore critico in questo sito» hanno spesso le stesse cause del 500. Per gli altri messaggi, e per capire se il problema è dominio, DNS o certificato, vedi sito non raggiungibile.
Prima di toccare: la copia
Rinominare cartelle, cambiare versione di PHP o ripristinare backup alla cieca può cancellare ordini e modifiche recenti, o rendere il guasto più difficile da capire.
- Fai un backup completo di file e database dal pannello dell’hosting, anche se il sito non funziona: i file ci sono ancora.
- Prima di modificare un file, scaricane una copia sul tuo computer, o rinominalo invece di cancellarlo.
- Se è un negozio online, ricorda che un ripristino da backup riporta indietro anche ordini e clienti registrati dopo quella data.
Se non hai un backup recente fuori dall’hosting, è il momento di organizzarlo: vedi backup aziendale: come capire se ti salverebbe davvero.
Dove trovare il log degli errori e come leggerlo
Ci sono tre posti dove cercare, a seconda dell’hosting:
- Il pannello dell’hosting: una voce come «Log errori» o «Error log», con l’ora e il motivo di ogni errore.
- Un file nella cartella del sito: alcuni hosting scrivono gli errori di PHP in un file chiamato error_log nella cartella principale o in quella dello script che ha dato errore.
- Il log di WordPress, se lo attivi. Nel file wp-config.php, prima della riga che dice di smettere di modificare il file, si attivano tre impostazioni: WP_DEBUG (acceso), WP_DEBUG_LOG (acceso: gli errori vanno nel file wp-content/debug.log) e WP_DEBUG_DISPLAY (spento: i visitatori non vedono nulla). La documentazione ufficiale sconsiglia di lasciarlo attivo sui siti in produzione: accendilo, riproduci l’errore, leggi il file, poi spegnilo e cancella il file, che può contenere percorsi e dati riservati.
I messaggi più comuni e cosa vogliono dire:
| Nel log leggi | Cosa vuol dire di solito |
|---|---|
| «Allowed memory size of … bytes exhausted» | Lo script ha finito la memoria concessa a PHP. |
| «PHP Fatal error: Uncaught Error», «Call to undefined function» | Codice che non funziona più, spesso un plugin o un tema vecchio dopo un aggiornamento di PHP. Il percorso del file dice quale. |
| «Invalid command», «not allowed here», con .htaccess nel percorso | Una regola nel file .htaccess è scritta male o non è permessa dal server. |
| «Permission denied» | Il server non può leggere o eseguire un file: permessi o proprietario sbagliati. |
| «Maximum execution time … exceeded» | Un’operazione è durata troppo: importazioni, backup, plugin pesanti, chiamate a servizi esterni lenti. |
Il file .htaccess
Sui server Apache, molto diffusi negli hosting condivisi, il file .htaccess nella cartella del sito contiene regole su indirizzi, reindirizzamenti, sicurezza e cache. Basta una riga scritta male, o una regola che il server non consente, per ottenere un 500 su tutto il sito, e il motivo finisce nel log.
Lo scrivono spesso i plugin di cache e di sicurezza. Il test consigliato anche dalla documentazione di WordPress è semplice: rinomina il file (ad esempio in .htaccess-vecchio) dal file manager dell’hosting e ricarica il sito. Se torna a funzionare, il problema era lì. Su WordPress il file si rigenera salvando di nuovo le impostazioni dei permalink; poi confronta con la copia e riporta, una alla volta, le regole che ti servono, come il passaggio a https.
Il file inizia con un punto ed è «nascosto»: attiva l’opzione per mostrare i file nascosti.
Memoria e versione di PHP
PHP è il linguaggio con cui funzionano WordPress e molti altri siti e gestionali. Due impostazioni causano tanti errori 500:
- Memoria: ogni pagina può usare al massimo una certa quantità di memoria. Il limite si alza dal pannello dell’hosting o, su WordPress, in wp-config.php, sempre entro il massimo che il tuo piano consente. Se serve alzarlo continuamente, il problema è un plugin che consuma troppo o un hosting sottodimensionato.
- Versione: gli hosting aggiornano PHP perché le versioni vecchie non ricevono più correzioni di sicurezza. Codice non aggiornato da anni può smettere di funzionare di colpo. Molti pannelli permettono di scegliere la versione: tornare a quella precedente è un ponte di qualche giorno per aggiornare o sostituire il plugin, non una soluzione.
Se dopo l’aggiornamento compare «C’è stato un errore critico» e hai ricevuto l’email di WordPress con il link di ripristino, segui la procedura spiegata in sito non raggiungibile.
Plugin, tema e file di sistema
Se il 500 è arrivato dopo un aggiornamento, il colpevole è quasi sempre lì. Se la bacheca funziona, disattiva il plugin appena aggiornato. Se non entri nemmeno in bacheca:
- dal file manager o via SFTP, rinomina la cartella wp-content/plugins (ad esempio in plugins-off): tutti i plugin si disattivano;
- se il sito riparte, ridai il nome originale alla cartella e riattiva i plugin uno alla volta dalla bacheca, ricaricando il sito dopo ognuno;
- se il problema è il tema, rinomina la cartella del tema attivo: WordPress passa a un tema predefinito, se ne è installato uno.
Se anche così non riparte, la documentazione ufficiale suggerisce di ricaricare le cartelle wp-admin e wp-includes da una copia pulita della stessa versione: un aggiornamento interrotto può lasciarle a metà.
Attenzione: file di sistema modificati, plugin sconosciuti o regole strane nel .htaccess possono essere il segno di un sito violato. In quel caso non basta far ripartire il sito: segui sito WordPress hackerato: cosa fare subito.
Permessi e proprietario dei file
Ogni file e cartella ha dei permessi che dicono chi può leggerlo, modificarlo o eseguirlo. Molti hosting condivisi, per sicurezza, rifiutano di eseguire file con permessi troppo larghi e rispondono con un 500.
Per WordPress su hosting condiviso la documentazione indica: cartelle 755 (o 750), file 644 (o 640), wp-config.php 440 o 400. Mai 777, nemmeno sulla cartella dei caricamenti: chiunque riesca a eseguire codice sul server potrebbe modificare i tuoi file.
Il problema compare spesso dopo una migrazione o un caricamento via FTP con un altro utente: lì serve l’hosting, che corregge permessi e proprietario su tutto il sito.
Errore solo su alcune pagine, o a tratti
- Solo su una funzione (carrello, pagamento, modulo di contatto, caricamento di immagini): la causa è nel plugin o nello script di quella funzione. Riproduci l’errore e guarda il log a quell’ora.
- A tratti, soprattutto nelle ore di punta: il sito sta finendo le risorse del piano, magari per traffico di bot. Chiedi all’hosting i grafici di utilizzo: può servire una cache, un blocco dei bot o un piano superiore.
Cosa succede su Google
Qualche ora di errore 500 non è un dramma. Ma Google spiega che, con errori del server, la scansione rallenta e gli indirizzi che continuano a dare errore vengono rimossi dall’indice: dopo giorni di sito fermo, le posizioni tornano lentamente.
Per lavori programmati, la pagina di manutenzione dovrebbe rispondere con il codice 503, che lo standard prevede per la manutenzione temporanea, non con un 500.
Quando chiamare l’hosting, e cosa scrivergli
Passa la mano al supporto se non trovi i log, se l’errore è comparso senza modifiche da parte tua, se sono fermi tutti i siti del tuo spazio, se va e viene o se servono interventi su permessi e limiti del server.
Un messaggio utile contiene:
- l’indirizzo esatto della pagina che dà errore;
- la data e l’ora in cui l’hai riprodotto, con il fuso orario;
- cosa è cambiato prima e cosa hai già provato;
- la richiesta precisa: le righe del log degli errori a quell’ora e, se serve, il ripristino del backup di una data indicata.
Se l’hosting risponde che «il problema è nel sito», hai comunque il log: con quello un tecnico capisce presto dove intervenire. Le altre verifiche su dominio, certificato e backup sono nella guida siti e hosting.
Un esempio concreto
Marco vende ceramiche artigianali con un piccolo negozio online su WordPress. Una mattina il sito risponde «500 Internal Server Error» su tutte le pagine. Nella notte l’hosting aveva aggiornato PHP, come annunciato in un’email finita nello spam.
- Marco fa un backup completo dal pannello, poi apre il log degli errori: a ogni visita compare un «PHP Fatal error» in un file dentro la cartella di un plugin per le spedizioni, non aggiornato da tre anni.
- Rinomina solo la cartella di quel plugin: il sito riparte in un minuto, senza il calcolo automatico delle spedizioni.
- Mette per due giorni una tariffa di spedizione fissa e intanto trova un plugin alternativo mantenuto. Non riporta indietro la versione di PHP.
- Infine attiva le notifiche dell’hosting su un indirizzo che legge ogni giorno.
Cosa fa il tecnico su Intervento
Indica l’indirizzo del sito, la piattaforma, l’hosting, da quando compare l’errore e cosa è cambiato prima; se puoi, incolla le righe del log. L’orientamento gratuito ti dice dove sembra stare il problema. Con l’Analisi ottieni una lettura automatica di log e screenshot. Con l’Esperto un tecnico informatico verificato ti risponde per iscritto: cosa dice il log, quale passo fare per primo senza perdere dati e cosa chiedere all’hosting. Con il Live lo guardate insieme in videochiamata. Se serve mettere mano a file, database o server, si interviene con il livello Soluzione, su preventivo.
Norme e fonti
Regole controllate il 10 novembre 2026 sui testi ufficiali.
- IETF, RFC 9110 «HTTP Semantics», § 15.6.1 (500 Internal Server Error) e § 15.6.4 (503 Service Unavailable)
- MDN Web Docs, 500 Internal Server Error
- PHP Manual, configurazione di runtime per la gestione degli errori (display_errors, log_errors, error_log)
- WordPress Developer Resources, Debugging in WordPress (WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY)
- WordPress Developer Resources, Common WordPress errors (Internal Server Error, memoria esaurita, schermata bianca)
- WordPress Developer Resources, Changing File Permissions
- Apache HTTP Server, documentazione: file .htaccess e risoluzione dei problemi
- Google Search Central, come i codici di stato HTTP e gli errori di rete influiscono sulla Ricerca
Questo articolo fa parte della guida
Il sito non funziona: dominio, certificato SSL, hosting e sito hackeratoSito irraggiungibile, errore 500, certificato SSL scaduto, dominio scaduto, sito hackerato o lento: le verifiche da fare e quando cambiare hosting.Le indicazioni valgono in generale al 10 novembre 2026; pannelli, nomi dei menu e limiti cambiano tra un hosting e l’altro. Le operazioni descritte sono quelle che un gestore del sito può fare in sicurezza dopo aver copiato file e database; se il sito gestisce ordini o dati di clienti e non sei sicuro, fatti guidare da un tecnico prima di modificare file sul server.