Navigando ogni giorno tra pagine web, cliccando su link o compilando moduli, pochi si rendono conto di quante comunicazioni avvengano dietro le quinte tra il browser e i server che ospitano i siti. Una delle componenti più importanti di questo scambio è rappresentata dai codici di stato http.
Ma cosa sono questi codici? Potremmo descriverli come risposte standardizzate che un server web invia al browser per indicare se una richiesta è stata completata con successo, se è necessaria un’azione aggiuntiva, o se si è verificato un errore. Comprendere questi codici non è utile solo per sviluppatori e sistemisti: anche chi si occupa di SEO, marketing o gestione di contenuti online può trarne vantaggi rilevanti in termini di ottimizzazione e controllo.
I codici di stato http sono tantissimi e sono divisi per categorie, e in questo articolo ti aiuteremo a conoscerli tutti.
Table of Contents
Cos’è il protocollo HTTP
Prima di parlare dei codici di stato http, facciamo una piccola premessa sulla sigla HTTP, nel caso non sapessi cosa significa. HTTP è l’acronimo di HyperText Transfer Protocol, protocollo utilizzato per la trasmissione di informazioni sul World Wide Web. Si tratta di un insieme di regole che regolano la comunicazione tra i client (come i browser web) e i server (che ospitano i siti e le applicazioni). HTTP consente al client di inviare richieste, come ad esempio il caricamento di una pagina, e al server di restituire risposte, che possono includere contenuti testuali, immagini, file o istruzioni.
HTTP è un protocollo stateless, cioè non conserva informazioni tra una richiesta e l’altra: ogni richiesta è indipendente. Questo comportamento viene in parte compensato da strumenti come i cookie e le sessioni. Le versioni più moderne del protocollo, come HTTP/2 e HTTP/3, introducono miglioramenti nelle prestazioni, nella gestione delle connessioni e nella sicurezza, rendendo la comunicazione più veloce ed efficiente.
Cosa sono e a cosa servono i codici di stato HTTP
Un codice di stato HTTP è un numero a tre cifre che viene restituito dal server in risposta a una richiesta HTTP fatta da un client, generalmente un browser. Questo codice fornisce al client informazioni utili sull’esito della richiesta, permettendogli di decidere come procedere. Ad esempio:
- se la richiesta è andata a buon fine, il server restituirà un codice 200;
- se la pagina richiesta non esiste, verrà restituito un codice 404.
Ogni codice è accompagnato da una breve descrizione testuale, che può variare leggermente a seconda del server, ma che in genere segue un formato standard definito dall’IETF (Internet Engineering Task Force).

I codici di stato HTTP sono nati insieme al protocollo HTTP stesso, ideato all’inizio degli anni ’90 da Tim Berners-Lee, il padre del World Wide Web. La prima versione ufficiale del protocollo, HTTP/1.0, già prevedeva una serie di codici per facilitare la comunicazione tra client e server.
Con l’evoluzione del web e l’aumento della complessità delle applicazioni online, anche i codici si sono evoluti. Versioni successive del protocollo, come HTTP/1.1 e HTTP/2, hanno ampliato il set di codici esistenti e introdotto nuove funzionalità, come il supporto ai contenuti parziali e al caching avanzato.
Più recentemente, con l’arrivo di HTTP/3, l’utilizzo di questi codici rimane centrale anche in contesti più moderni e dinamici come le applicazioni web in tempo reale.
Classificazione dei codici di stato HTTP
I codici di stato HTTP sono organizzati in cinque categorie principali, identificate dalla cifra iniziale del codice stesso.
1xx – Codici informativi
I codici che iniziano con 1 indicano che la richiesta è stata ricevuta e il processo è in corso, ma non ancora completato. Vengono utilizzati principalmente in contesti di comunicazione avanzata tra client e server.
Codice | Messaggio | Significato |
---|---|---|
100 | Continue | Il server ha ricevuto l’intestazione della richiesta e che il client può proseguire con l’invio del corpo della richiesta. |
101 | Switching Protocols | Il server sta accettando di cambiare protocollo, ad esempio da HTTP a un altro come WebSocket, su richiesta del client. |
102 | Processing (WebDAV) | Specifico delle estensioni WebDAV, indica che il server ha ricevuto la richiesta ma non ha ancora completato l’elaborazione. |
103 | Early Hints | Permette al client di iniziare a caricare risorse (come fogli di stile o script) prima di ricevere la risposta definitiva. |
2xx – Codici di successo
Questa categoria segnala che la richiesta è stata ricevuta, compresa e processata correttamente.
Codice | Messaggio | Significato |
---|---|---|
200 | OK | Tutto ha funzionato come previsto. Ad esempio, quando si visita una pagina web e questa viene caricata correttamente, il server restituisce questo codice. |
201 | Created | Una richiesta ha portato alla creazione di una nuova risorsa, come la registrazione di un nuovo account o l’invio di un form. |
202 | Accepted | La richiesta è stata accettata per l’elaborazione, ma l’elaborazione non è ancora stata completata. |
203 | Non-Authoritative Information | Il contenuto della risposta proviene da una copia della risorsa e non dalla fonte originale. |
204 | No Content | La richiesta è stata completata correttamente, ma il server non restituisce alcun contenuto. Può essere utile per aggiornamenti asincroni. |
205 | Reset Content | Il client deve resettare il contenuto visualizzato, ad esempio svuotare un modulo compilato. |
206 | Partial Content | Il server risponde solo con una parte della risorsa, ad esempio per riprendere un download interrotto. |
207 | Multi-Status (WebDAV) | Usato con WebDAV per restituire informazioni su più operazioni. |
208 | Already Reported (WebDAV) | Evita di ripetere la stessa informazione nel contesto di risposte WebDAV. |
226 | IM Used (HTTP Delta encoding) | La risposta include una rappresentazione delta della risorsa, ovvero solo le modifiche rispetto a una versione precedente. |
3xx – Codici di reindirizzamento
I codici che iniziano con 3 indicano che è necessaria un’azione supplementare per completare la richiesta, solitamente un reindirizzamento verso un’altra URL.
Codice | Messaggio | Significato |
---|---|---|
300 | Multiple Choices | Sono presenti più opzioni tra cui il client può scegliere, ad esempio diverse versioni della stessa risorsa. |
301 | Moved Permanently | La risorsa richiesta è stata spostata in modo permanente a un nuovo URL. Questo è fondamentale per mantenere la SEO quando una pagina cambia indirizzo. |
302 | Found (precedentemente “Moved Temporarily”) | La risorsa si trova temporaneamente a un’altra URL. |
303 | See Other | Utilizzato per reindirizzare il client a un’altra risorsa, tipicamente dopo un’azione come l’invio di un modulo. |
304 | Not Modified | Consente di utilizzare la versione in cache della risorsa, risparmiando tempo e banda. |
305 | Use Proxy | La risorsa richiesta deve essere accessibile tramite un proxy. È però deprecato per motivi di sicurezza. |
306 | Switch Proxy | Riservato per usi futuri e non viene attualmente utilizzato. |
307 | Temporary Redirect | Funziona come il 302, ma mantiene il metodo HTTP originale (GET o POST). |
308 | Permanent Redirect | Simile al 301 ma, come il 307, preserva il metodo HTTP originale. |
4xx – Errori del client
Questi codici di stato http indicano che la richiesta non può essere soddisfatta a causa di un errore da parte del client, ovvero del browser o dell’utente.
Codice | Messaggio | Significato |
---|---|---|
400 | Bad Request | La richiesta era malformata o non comprensibile dal server. |
401 | Unauthorized | L’accesso alla risorsa richiede un’autenticazione, che non è stata fornita o è fallita. |
402 | Payment Required | Riservato per futuri sistemi di pagamento sul web, ma attualmente è poco utilizzato. |
403 | Forbidden | Il server ha compreso la richiesta, ma si rifiuta di autorizzarla. |
404 | Not Found | Uno dei codici più noti, utile a segnalare che la risorsa richiesta non esiste. |
405 | Method Not Allowed | Si verifica quando il metodo HTTP usato non è permesso per quella risorsa. |
406 | Not Acceptable | Il server non può generare una risposta accettabile in base alle intestazioni “Accept” inviate dal client. |
407 | Proxy Authentication Required | Simile al 401, ma l’autenticazione richiesta riguarda un proxy. |
408 | Request Timeout | Il client ha impiegato troppo tempo a inviare la richiesta. |
409 | Conflict | Restituito quando c’è un conflitto con lo stato attuale della risorsa, ad esempio in caso di modifiche concorrenti. |
410 | Gone | La risorsa è stata rimossa e non è più disponibile. |
411 | Length Required | Manca l’intestazione della lunghezza della richiesta. |
412 | Precondition Failed | Una delle condizioni specificate nella richiesta non è stata soddisfatta. |
413 | Payload Too Large | Il corpo della richiesta è troppo grande per essere elaborato. |
414 | URI Too Long | L’URL della richiesta è troppo lungo per essere gestito dal server. |
415 | Unsupported Media Type | Il formato dei dati inviati non è supportato dal server. |
416 | Range Not Satisfiable | Il client chiede una parte di un file che non può essere fornita. |
417 | Expectation Failed | Il server non può soddisfare l’intestazione Expect della richiesta. |
418 | I’m a teapot | Codice scherzoso definito per divertimento nel protocollo HTTP, usato per indicare che il server rifiuta di preparare il caffè perché è una teiera. |
421 | Misdirected Request | La richiesta è stata inviata a un server che non è in grado di rispondere. |
422 | Unprocessable Entity (WebDAV) | Il server comprende il contenuto della richiesta ma non può elaborarla. |
423 | Locked (WebDAV) | La risorsa richiesta è attualmente bloccata. |
424 | Failed Dependency (WebDAV) | La richiesta fallisce a causa di una precedente richiesta non riuscita. |
425 | Too Early | Il server non vuole elaborare la richiesta perché potrebbe essere ripetuta. |
426 | Upgrade Required | Il client deve passare a un protocollo diverso per accedere alla risorsa. |
428 | Precondition Required | Segnala l’esigenza che la richiesta includa condizioni per prevenire modifiche simultanee. |
429 | Too Many Requests | Restituito quando il client ha inviato troppe richieste in un breve intervallo. |
431 | Request Header Fields Too Large | Indica che una o più intestazioni sono troppo grandi. |
451 | Unavailable For Legal Reasons | Usato quando il contenuto è bloccato per motivi legali, ad esempio per censura. |
5xx – Errori del server
Questa classe di codici segnala che l’errore è avvenuto sul lato server. Anche se la richiesta era valida, il server non è riuscito a completarla.
Codice | Messaggio | Significato |
---|---|---|
500 | Internal Server Error | Questo è il codice più generico e indica un problema interno del server, spesso legato a errori di programmazione o configurazione. |
501 | Not Implemented | Il server non supporta la funzionalità richiesta. |
502 | Bad Gateway | Si verifica quando un server agisce da intermediario e riceve una risposta non valida dal server upstream. |
503 | Service Unavailable | Il server è momentaneamente non disponibile, ad esempio per manutenzione o sovraccarico. |
504 | Gateway Timeout | Un server che funge da gateway ha impiegato troppo tempo per ricevere una risposta. |
505 | HTTP Version Not Supported | Il server non supporta la versione HTTP usata nella richiesta. |
506 | Variant Also Negotiates | Indica un errore di configurazione interna. |
507 | Insufficient Storage (WebDAV) | Viene usato con WebDAV per indicare che il server non ha spazio sufficiente per completare l’operazione. |
508 | Loop Detected (WebDAV) | Il server ha rilevato un ciclo infinito durante l’elaborazione. |
510 | Not Extended | La richiesta necessita di ulteriori estensioni per essere soddisfatta. |
511 | Network Authentication Required | Viene restituito quando è necessario autenticarsi per accedere alla rete (es. captive portal negli hotel). |
Glossario dei termini tecnici
Hai ancora qualche dubbio sul significato di alcuni codici? Di seguito ti elenchiamo alcuni termini tecnici fondamentali per comprendere meglio il funzionamento dei codici di stato HTTP e delle comunicazioni tra client e server.
Client: il programma o dispositivo che invia richieste a un server. Nei contesti web, il client è di solito un browser come Chrome o Firefox.
Server: il computer o il programma che riceve le richieste HTTP e invia le risposte appropriate al client. Può ospitare siti web, applicazioni o risorse online.
HTTP (HyperText Transfer Protocol): il protocollo di comunicazione utilizzato per trasferire dati sul web. È alla base della navigazione internet e regola il formato delle richieste e delle risposte.
Browser: software che permette agli utenti di visualizzare e interagire con contenuti su internet. Esempi includono Safari, Chrome, Edge e Firefox.
WebDAV (Web Distributed Authoring and Versioning): estensione del protocollo HTTP che consente agli utenti di modificare e gestire file archiviati su server remoti.
Caching: tecnica che memorizza copie temporanee di contenuti web per velocizzare i tempi di caricamento e ridurre il carico sui server.
Redirect: meccanismo che consente di reindirizzare automaticamente una richiesta da un URL a un altro. Può essere temporaneo o permanente.
Header HTTP: parte della richiesta o risposta HTTP che contiene informazioni di controllo, come il tipo di contenuto, la lunghezza o l’autorizzazione.
Payload: il contenuto effettivo trasportato da una richiesta HTTP, come i dati inseriti in un modulo.
Proxy: server che agisce da intermediario tra un client e un altro server, utilizzato per filtrare, monitorare o memorizzare in cache le richieste.
Upstream server: server che si trova “a monte” di un proxy o gateway, ovvero quello che effettivamente elabora la richiesta originale.
Gateway: server che traduce richieste tra diversi protocolli o sistemi, spesso utilizzato per collegare reti diverse.
Relazione tra codici di stato e SEO
I codici di stato HTTP influenzano in modo diretto l’indicizzazione e il posizionamento di un sito sui motori di ricerca. Google, Bing e altri crawler analizzano i codici restituiti dalle pagine web per capire se queste sono accessibili, aggiornate o da escludere dai risultati.
Un codice 200 (OK) è il segnale che tutto funziona correttamente: è la condizione ideale per una buona SEO. Al contrario, un codice 404 (Not Found) può segnalare un problema, come un link rotto o una pagina eliminata senza redirect. Se presente in grandi quantità, questo tipo di errore può compromettere l’autorità del sito e generare un’esperienza negativa per l’utente.
I codici di reindirizzamento, come il 301 (Moved Permanently), sono invece fondamentali per mantenere il valore SEO delle pagine quando cambia la struttura degli URL o si effettua una migrazione di dominio. Usare correttamente il 301 permette di trasferire la link equity alla nuova destinazione, mentre un uso errato del 302 (Found) potrebbe confondere i motori di ricerca.
Inoltre, errori server frequenti (come i 5xx) segnalano instabilità del sito, che può essere penalizzata nei ranking. Anche i codici 429 (Too Many Requests), se ricorrenti, possono indicare problemi di performance o configurazione.
Monitorare e correggere i codici di stato HTTP è quindi una buona pratica SEO, utile per migliorare sia la visibilità sia la qualità complessiva del sito.
Come accorgersi dei codici di stato HTTP
Capire quale codice di stato HTTP viene restituito da una pagina web non è sempre immediatamente visibile per l’utente medio, ma esistono strumenti e metodi semplici per identificarli.
Uno dei metodi più comuni è utilizzare gli strumenti per sviluppatori inclusi nei browser moderni, come Chrome, Firefox o Edge.
Qui sotto trovi un esempio: abbiamo immaginato di cercare la pagina /ciao sul nostro sito, pagina che non esiste e che quindi restituisce un errore 404. Cliccando al centro della pagina con il tasto destro e cliccando su “Ispeziona” (1) e poi “Network” a destra (2) puoi accedere alla console e visualizzare tutte le richieste effettuate dal browser. Qui vedrai tutti i contenuti che hanno restituito una risposta positiva (Status 200) e il codice di stato 404 per la pagina “ciao”.

Esistono anche estensioni del browser, come “Redirect Path” o “HTTP Headers”, che mostrano i codici di stato direttamente nella barra degli strumenti mentre si naviga.
Per i professionisti del web, strumenti di analisi come Google Search Console segnalano automaticamente errori 404 e problemi di crawling. Altri software come Screaming Frog SEO Spider o strumenti online come httpstatus.io permettono di controllare in massa lo stato di molteplici URL. Ne parleremo più in dettaglio nelle sezioni a seguire.
Infine, i log del server web, accessibili tramite pannello di controllo dell’hosting o via FTP, contengono informazioni dettagliate su tutte le richieste ricevute, inclusi i codici di stato http associati.
Utilizzare Google Search Console per monitorare i codici di stato HTTP
La Search Console è uno strumento gratuito offerto da Google che consente ai proprietari di siti web di monitorare e ottimizzare la visibilità del proprio sito nei risultati di ricerca. In relazione ai codici di stato HTTP, Search Console offre diverse funzionalità utili.

Attraverso questo strumento è possibile individuare tutte le pagine che Google ha cercato di indicizzare, ma che hanno restituito un errore. Ad esempio, se una pagina restituisce un errore 404 (Not Found), questa verrà segnalata con un avviso specifico. Lo stesso vale per i codici 500 (Internal Server Error), 403 (Forbidden) o altri errori rilevanti.
Google classifica questi problemi in base alla loro gravità, e suggerisce anche azioni da intraprendere, come correggere il link, impostare un reindirizzamento 301, o ripristinare una pagina eliminata.

Search Console consente anche di:
- Verificare l’esito dei redirect (301 o 302) applicati a una pagina
- Inviare una sitemap aggiornata per assicurarsi che Google scansioni correttamente le nuove pagine
- Richiedere una nuova scansione di una pagina corretta
- Analizzare il comportamento di Googlebot nel file “Log degli errori di scansione”
Tutorial passo-passo per individuare i codici di stato HTTP in Search Console
- Accedi a Google Search Console e seleziona la proprietà del sito web che vuoi monitorare.
- Accedi al rapporto “Pagine” dal menu a sinistra, sotto la sezione “Indice”, come mostrato nello screenshot poco sopra. Questo rapporto mostra lo stato di tutte le pagine che Google ha tentato di indicizzare.
- Filtra per stato: all’interno del rapporto, puoi visualizzare le varie categorie “indicizzate”, “indicizzate ma escluse”, “non indicizzate”. Clicca su ciascuna per esplorare i motivi, tra cui gli errori HTTP rilevati.
- Analizza gli errori specifici all’interno della sezione “non indicizzate”, cercando voci come “Errore 404”, “Errore del server (5xx)” o “Rilevata ma non indicizzata”.
- Cliccando su ciascuna voce potrai consultare l’elenco degli URL interessati.
- Ispeziona l’URL attraverso la barra in alto, dove potrai incollare un URL specifico e cliccare su “Invio”. La funzione “Controlla URL” mostrerà lo stato attuale della pagina, incluso il codice di stato HTTP rilevato da Googlebot.
- Convalida le correzioni. Dopo aver risolto un errore (come l’aggiunta di un redirect 301), torna nella sezione “Pagine” e clicca su “Convalida correzione” per segnalare a Google che il problema è stato risolto.

Utilizzare regolarmente Google Search Console ti permette di intercettare tempestivamente eventuali problemi, mantenere il tuo sito accessibile e ben posizionato nei risultati di ricerca.
Utilizzare Screaming Frog per analizzare i codici di stato HTTP
Screaming Frog SEO Spider è uno strumento desktop molto diffuso tra i professionisti SEO, utilizzato per eseguire un’analisi approfondita dei siti web. Tra le sue numerose funzionalità, consente di individuare facilmente i codici di stato HTTP restituiti da ogni URL presente sul sito.
Tutorial passo-passo per usare Screaming Frog
- Visita il sito ufficiale e scarica la versione gratuita o a pagamento, disponibile per Windows, macOS e Linux.
- Avvia il programma e inserisci l’URL del sito nella barra in alto, poi clicca su “Start”. Screaming Frog inizierà a scansionare tutte le pagine del dominio.
- Controlla la colonna “Response Code”: qui sono elencati tutti i codici di stato HTTP rilevati, come 200, 301, 404 o 500, che potrai analizzare anche filtrando per tipologia.

Grazie a Screaming Frog è possibile eseguire controlli periodici e sistematici, fondamentali per mantenere pulito il sito, correggere rapidamente link rotti o redirect errati e ottimizzare la struttura complessiva del sito per i motori di ricerca.
Come gestire e risolvere i codici HTTP
Per chi gestisce un sito web, monitorare i codici di stato http è essenziale per garantire un’esperienza utente fluida e ottimizzare la visibilità sui motori di ricerca. Certo, monitorarli non basta: davanti a errori e anomalie, bisogna sempre intervenire e occorre saperlo fare nel modo corretto.
Ad esempio i codici 404 dovrebbero essere corretti impostando dei redirect 301 verso pagine attive. Gli errori 5xx vanno invece affrontati esaminando i log del server e controllando configurazioni, script e plugin. I codici 429 o 403 richiedono invece un controllo delle policy di sicurezza e accesso, e via dicendo. A tal proposito ti informiamo che abbiamo scritto diverse guide per risolvere alcuni errori:
- come risolvere l’errore 401
- come risolvere l’errore 403
- come risolvere l’errore 404
- come risolvere l’errore 410
- come risolvere l’errore 500
- come risolvere l’errore 502
- come risolvere l’errore 503
- come risolvere l’errore 504
- come risolvere l’errore 508
Strumenti come Google Search Console, strumenti di crawling SEO (come Screaming Frog) e plugin per CMS come WordPress consentono di individuare rapidamente gli errori e intervenire in modo mirato.
Conclusione
I codici di stato HTTP sono un linguaggio universale tra browser e server, che permette di capire in modo immediato cosa succede dietro ogni richiesta web. Non si tratta solo di numeri tecnici, ma di indicatori fondamentali per chiunque voglia gestire un sito in modo efficace, offrire una buona user experience e ottimizzare le performance online. Conoscere e interpretare correttamente questi codici significa avere il controllo su ciò che accade nel cuore della comunicazione web.
Hai già avuto a che fare con i codici di stato http, magari quelli più critici da risolvere quanto prima? Raccontaci com’è andata, e facci sapere nei commenti se possiamo esserti d’aiuto!
Lascia un commento