Apri il tuo sito e, invece della home page, compare una pagina bianca con un numero: 403, 404, 500, 503. Non è un messaggio in codice pensato per spaventarti: è il modo standard con cui un server web ti dice cosa è andato storto. Imparare a leggere questi codici ti fa risparmiare tempo, perché ognuno indica una famiglia di cause diversa e quindi una strada diversa per risolvere.
In questo articolo vediamo i codici che incontrerai più spesso, cosa significano in pratica e cosa puoi controllare da solo prima di chiedere aiuto.
Come sono fatti i codici HTTP
Ogni volta che un browser chiede una pagina, il server risponde con un codice di tre cifre. La prima cifra dice già molto:
| Famiglia | Significato | Esempi |
|---|---|---|
| 2xx | Tutto bene, la pagina è stata consegnata | 200 |
| 3xx | Reindirizzamento: la pagina si trova altrove | 301, 302 |
| 4xx | Il problema riguarda la richiesta: pagina inesistente, accesso negato | 403, 404 |
| 5xx | Il problema è dal lato del server o dell’applicazione | 500, 502, 503 |
Una regola pratica: con un 4xx di solito c’è qualcosa da sistemare nei file, negli indirizzi o nelle regole del sito; con un 5xx c’è un errore nel codice, nella configurazione o nelle risorse a disposizione.
Errore 404: pagina non trovata
È il più comune e anche il più innocuo. Il server funziona, ma all’indirizzo richiesto non c’è niente. Le cause tipiche:
- hai cambiato l’indirizzo di una pagina (lo “slug”) e i vecchi link puntano ancora a quello di prima;
- hai cancellato un articolo o un prodotto;
- c’è un errore di battitura nel link, magari con maiuscole e minuscole diverse (sui server Linux contano);
- dopo una migrazione, in WordPress, i permalink non sono stati rigenerati.
Cosa fare: se la pagina è stata spostata, imposta un reindirizzamento 301 dal vecchio al nuovo indirizzo (con un plugin del CMS o con una regola nel file .htaccess, vedi la nostra guida su .htaccess). In WordPress, se all’improvviso tutte le pagine interne danno 404 ma la home funziona, prova a salvare di nuovo le impostazioni dei permalink: spesso basta questo.
Un po’ di 404 sono normali: bot e scanner chiedono continuamente indirizzi che non esistono. Preoccupati quando a dare 404 sono pagine vere che i tuoi visitatori cercano.
Errore 403: accesso negato
Il server ha capito la richiesta ma si rifiuta di servirla. Le cause più frequenti:
- permessi dei file sbagliati, per esempio una cartella che il server web non può leggere (trovi i valori corretti nella guida sui permessi di file e cartelle);
- manca il file iniziale (
index.phpoindex.html) e l’elenco dei file della cartella è, giustamente, disattivato; - una regola nel file
.htaccessblocca il tuo indirizzo IP o certi percorsi; - un sistema di protezione ha considerato sospetta la richiesta. Da noi il sito è difeso dal firewall applicativo di cPGuard e da Security Intelligence, che bloccano bot e tentativi di attacco: è il loro lavoro, ma a volte un plugin o un’operazione legittima può assomigliare a un attacco.
Cosa fare: controlla che nella cartella public_html ci sia il file iniziale e che i permessi siano corretti; se hai modificato da poco il .htaccess, prova a ripristinare la versione precedente. Se il 403 compare solo a te, o solo durante un’operazione precisa nel pannello del CMS, apri un ticket indicando ora, indirizzo della pagina e il tuo IP pubblico: possiamo verificare se è intervenuta una protezione.
Errore 500: errore interno del server
È il messaggio più generico di tutti: qualcosa è andato storto mentre il server preparava la pagina, ma il browser non riceve dettagli (ed è giusto così, per non mostrare informazioni interne ai visitatori). Le cause più frequenti:
- un errore di sintassi nel file
.htaccess: basta una riga scritta male per far cadere tutto il sito; - un plugin o un tema che va in errore, spesso subito dopo un aggiornamento;
- codice non compatibile con la versione di PHP impostata;
- un limite superato, per esempio la memoria disponibile per PHP (ne parliamo nella guida su memory_limit e upload).
Cosa fare: chiediti cosa è cambiato per ultimo. Hai aggiornato un plugin? Cambiato la versione di PHP? Modificato un file? Torna indietro su quella modifica: puoi rinominare la cartella di un plugin via FTP, rimettere la versione di PHP precedente dal pannello (guida: cambiare versione PHP) o ripristinare il file da JetBackup. Il dettaglio dell’errore lo trovi quasi sempre nel log degli errori, come spieghiamo nell’articolo sui log di accesso e di errore.
Errore 502 e 503: servizio non disponibile
Il 503 significa che il servizio, in quel momento, non è in grado di rispondere. Può essere voluto (molti CMS mostrano un 503 durante la modalità manutenzione o mentre installano un aggiornamento) oppure indicare che il sito ha esaurito le risorse a disposizione, per esempio perché troppi processi PHP lenti sono rimasti occupati tutti insieme. Il 502 (Bad Gateway) indica invece che un componente intermedio non ha ricevuto una risposta valida da quello che stava dietro.
Cosa fare:
- Controlla la pagina stato dei servizi: se c’è un intervento in corso, lo trovi lì.
- In WordPress, verifica che nella cartella principale non sia rimasto un file
.maintenancedopo un aggiornamento interrotto: se c’è, cancellalo. - Se il 503 compare a ondate, magari nelle ore di punta o durante un’importazione di prodotti, il sito sta probabilmente chiedendo più risorse di quelle che ha. Una cache ben configurata, come iWebLab Cache, riduce molto il lavoro di PHP.
- Se non trovi la causa, apri un ticket con l’indirizzo e l’orario esatto: dai log del server possiamo capire cosa è successo.
Errore 301 e 302: non sono errori
Li citiamo perché spesso vengono scambiati per problemi. Un 301 è un reindirizzamento permanente (per esempio da http:// a https://), un 302 è temporaneo. Diventano un problema solo quando si rincorrono all’infinito: in quel caso il browser mostra “troppi reindirizzamenti”, un caso che trattiamo a parte nella guida su ERR_TOO_MANY_REDIRECTS.
Come vedere il codice esatto
Non sempre la pagina d’errore mostra il numero. Per leggerlo:
- nel browser apri gli strumenti per sviluppatori (tasto F12), scheda Rete o Network, ricarica la pagina e guarda la colonna “Stato”;
- dal terminale puoi usare
curl, che mostra solo le intestazioni della risposta:
curl -I https://www.tuodominio.it/
La prima riga della risposta contiene il codice, ad esempio HTTP/2 404.
Quando aprire un ticket
Se dopo questi controlli il problema resta, scrivici dall’area clienti. Per farci intervenire subito indica: indirizzo esatto della pagina, codice d’errore, ora in cui l’hai visto, cosa è cambiato di recente e se l’errore compare a tutti o solo a te. Con queste informazioni possiamo andare dritti al punto nei log, invece di procedere per tentativi.