500 Internal Server Error indica che il server ha incontrato una condizione imprevista che gli ha impedito di soddisfare la richiesta. È il codice generico per i malfunzionamenti lato server quando non si applica nessun codice 5xx più specifico.
La causa non è quasi mai visibile dall’esterno, perché i server non dovrebbero rivelare dettagli interni. Il motivo reale si trova nel log degli errori del server, nel log dell’applicazione o in un servizio di monitoraggio degli errori: un’eccezione non gestita, un errore fatale di PHP, una connessione al database non riuscita, un errore di sintassi in .htaccess o una direttiva di configurazione che il server non riconosce.
Il client non può risolvere un 500. Riprovare più tardi può funzionare se il problema era temporaneo.
Esempio di risposta
HTTP/1.1 500 Internal Server Error
Date: Fri, 06 Nov 2026 10:15:32 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
Content-Length: 273
Connection: close
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p>
</body></html> SEO e verifica dei redirect
All’inizio Google considera temporanei gli errori 5xx: Googlebot rallenta la scansione e le pagine già indicizzate restano nell’indice per un po’. Se gli errori persistono, gli URL vengono rimossi. Se è lo stesso robots.txt a restituire un errore 5xx, Google tratta temporaneamente l’intero sito come bloccato (disallow) e sospende la scansione; se l’errore dura più di 30 giorni, ripiega sull’ultima copia di robots.txt memorizzata nella cache.
Un 500 in una catena di reindirizzamenti deriva spesso da una regola di riscrittura difettosa. Apache, per esempio, restituisce 500 quando le regole di riscrittura generano più di 10 reindirizzamenti interni (“Request exceeded the limit of 10 internal redirects”). Un loop interno di questo tipo non compare mai come salti 3xx; la Verifica loop di redirect trova i loop tra URL, mentre i loop interni si manifestano come un 500.
Cause comuni e casi d’uso
- Un’eccezione non gestita o un errore fatale nell’applicazione (PHP, Node.js, Python e così via).
- Direttive o sintassi non valide in
.htaccesso nella configurazione del server. - Permessi o proprietario dei file errati sugli script.
- Risorse esaurite, come il
memory_limitdi PHP, oppure una connessione al database non riuscita. - Una regola di riscrittura che crea un loop interno.