Panoramica degli status code
Ogni volta che un browser richiede una risorsa a un server web, la risposta include un codice di stato HTTP (status code) a tre cifre. Questo codice comunica immediatamente l'esito della richiesta: successo, redirect, errore del client o errore del server.
Conoscere gli status code è fondamentale per chi lavora nel web development, nella SEO e nella gestione di siti web. Ogni codice ha implicazioni specifiche sull'esperienza utente e sull'indicizzazione.
"Uno status code non è solo un numero tecnico: è il primo segnale che il tuo server invia al mondo su come sta funzionando il sito."
Codici 1xx e 2xx (successo)
I codici 1xx sono informativi e raramente visibili all'utente. I codici 2xx indicano che la richiesta è stata elaborata con successo.
| Codice | Nome | Significato |
|---|---|---|
| 100 | Continue | Il server ha ricevuto gli header e il client può inviare il body. |
| 200 | OK | La richiesta ha avuto successo. È la risposta standard per le pagine caricate correttamente. |
| 201 | Created | La richiesta ha portato alla creazione di una nuova risorsa (tipico nelle API REST). |
| 204 | No Content | Successo, ma nessun contenuto da restituire (es. dopo un DELETE). |
Il codice 200 OK è ciò che ogni pagina del tuo sito dovrebbe restituire ai motori di ricerca per le URL valide.
Codici 3xx (redirect)
I codici 3xx indicano che la risorsa è stata spostata e il browser deve seguire un reindirizzamento.
- 301 Moved Permanently: la risorsa è stata spostata in modo permanente al nuovo URL. I motori di ricerca trasferiscono il valore SEO (link equity) alla nuova pagina. È il redirect da usare per migrazioni e cambi di URL.
- 302 Found (Temporary Redirect): redirect temporaneo. I motori di ricerca continuano a indicizzare l'URL originale. Usalo solo per spostamenti effettivamente temporanei (es. manutenzione).
- 304 Not Modified: la risorsa non è cambiata dall'ultima richiesta. Il browser usa la versione in cache, risparmiando banda.
- 307/308: equivalenti rispettivamente di 302 e 301, ma preservano il metodo HTTP della richiesta originale.
Codici 4xx (errori client)
I codici 4xx indicano che il problema è nella richiesta inviata dal client (browser).
| Codice | Nome | Causa | Soluzione |
|---|---|---|---|
| 400 | Bad Request | Sintassi della richiesta non valida, parametri errati | Verificare URL, parametri e formato dei dati inviati |
| 401 | Unauthorized | Autenticazione richiesta ma non fornita o non valida | Fornire credenziali corrette, verificare token API |
| 403 | Forbidden | Il server rifiuta la richiesta nonostante l'autenticazione | Verificare permessi file/cartelle, regole .htaccess |
| 404 | Not Found | La risorsa richiesta non esiste | Verificare l'URL, impostare redirect 301 o pagina 404 personalizzata |
| 405 | Method Not Allowed | Il metodo HTTP usato non è supportato per quella risorsa | Usare il metodo corretto (GET, POST, PUT, DELETE) |
| 429 | Too Many Requests | Troppe richieste in poco tempo (rate limiting) | Ridurre la frequenza delle richieste, rispettare i limiti dell'API |
Il 404 Not Found è l'errore più comune e visibile. Una pagina 404 personalizzata e utile migliora l'esperienza utente e riduce il bounce rate.
Codici 5xx (errori server)
I codici 5xx indicano che il server non è riuscito a completare una richiesta valida. Sono i più critici perché segnalano problemi infrastrutturali.
- 500 Internal Server Error: errore generico del server. Cause comuni: errori nel codice PHP/Python, permessi file errati, file .htaccess corrotto, memoria esaurita. Controllare i log del server per la causa specifica.
- 502 Bad Gateway: il server che funge da gateway o proxy ha ricevuto una risposta non valida dal server upstream. Spesso legato a problemi di configurazione NGINX/Apache o al backend applicativo che non risponde.
- 503 Service Unavailable: il server è temporaneamente non disponibile, di solito per sovraccarico o manutenzione. È l'unico errore 5xx che Google considera esplicitamente temporaneo.
- 504 Gateway Timeout: il server upstream non ha risposto in tempo. Cause: query database lente, API esterne non raggiungibili, timeout configurati troppo bassi.
Retry-After dice a Google di tornare più tardi senza penalizzare il sito. Non usare mai un 200 su una pagina di manutenzione.
Impatto SEO degli status code
Gli status code influenzano direttamente il modo in cui Google indicizza e valuta il tuo sito:
- 200: la pagina viene indicizzata normalmente.
- 301: il valore SEO viene trasferito al nuovo URL (con una minima perdita fisiologica).
- 302: l'URL originale resta nell'indice; il valore SEO non viene trasferito.
- 404: dopo un certo periodo, la pagina viene rimossa dall'indice. Troppi 404 possono segnalare scarsa qualità del sito.
- 5xx: errori persistenti portano Google a ridurre il crawl budget e, nel tempo, a deindicizzare le pagine coinvolte.
Monitorare regolarmente gli status code con Google Search Console è una pratica fondamentale per ogni strategia SEO.
Come diagnosticare gli errori
Strumenti utili per identificare e monitorare gli errori HTTP:
- Google Search Console: segnala errori di scansione (404, 5xx) e problemi di indicizzazione.
- Chrome DevTools (tab Network): mostra lo status code di ogni richiesta in tempo reale.
- Screaming Frog: effettua un crawl completo del sito e identifica tutti gli errori.
- Log del server: il file access.log e error.log contengono informazioni dettagliate su ogni richiesta.
- curl:
curl -I https://esempio.it/paginamostra gli header di risposta incluso lo status code.
Prevenzione e best practice
Per minimizzare gli errori HTTP e i loro effetti negativi:
- Implementa redirect 301 per tutte le URL che cambiano durante redesign o migrazioni.
- Crea una pagina 404 personalizzata con navigazione, ricerca e suggerimenti di contenuti.
- Monitora regolarmente gli status code con Google Search Console e strumenti di crawling.
- Testa prima del deploy: verifica che tutte le pagine restituiscano 200 prima di andare in produzione.
- Configura alert automatici per errori 5xx, in modo da intervenire rapidamente.
Evitare errori nel codice e nella struttura del sito richiede anche buone pratiche di web design e una gestione professionale del codice con Git.