Skip to main content

Tutti conosciamo i codici di stato HTTP (o almeno alcuni di essi) perché sono fondamentali per la SEO, dato che influenzano direttamente l’esperienza dell’utente e la percezione dei motori di ricerca riguardo a un sito web.

In questo articolo andremo a vederli tutti e capiremo cosa sono, a cosa servono e quali di essi rivelano un errore da migliorare.

 

 

Cosa sono i codici di stato HTTP?

I codici di stato HTTP rappresentano la risposta di un server web a una specifica richiesta inviata da un browser. In pratica, ogni volta che tentiamo di visitare una pagina web, il nostro browser invia una richiesta al server di quel sito. Il server, in risposta, invierà un codice numerico composto da tre cifre che indica l’esito di tale richiesta.

Questi codici sono essenziali per comprendere se una risorsa web, come una pagina o un’immagine, è accessibile o meno. Ad esempio, quando ci imbattiamo in un errore “404”, significa che la pagina che stiamo cercando non è stata trovata sul server.

 

Le varie tipologie di codici di stato HTTP

I codici di stato (e gli errori) HTTP indicano se una specifica richiesta è stata completata con successo oppure no. Le risposte sono raggruppate in cinque classi:

  • Risposte informative (100 – 199)
  • Risposte di successo (200 – 299)
  • Messaggi di reindirizzamento (300 – 399)
  • Risposte di errore del client (400 – 499)
  • Risposte di errore del server (500 – 599)

 

I codici di stato elencati di seguito sono definiti dalla RFC 9110.

 

Importanza dei Codici di Stato nella SEO

  • 1xx, 2xx, 3xx: Questi codici indicano che la richiesta del browser è stata processata con successo. In particolare, i codici 2xx, come il “200 OK”, sono particolarmente rilevanti per la SEO poiché indicano che una pagina è accessibile e funzionante correttamente. Questo è positivo sia per l’esperienza dell’utente sia per i motori di ricerca.

 

  • 4xx e 5xx: Questi codici indicano problemi. Un codice 4xx, come il “404 Not Found”, indica che la risorsa richiesta non è disponibile. Questo può essere dannoso per la SEO poiché i motori di ricerca potrebbero interpretarlo come un segno che il sito non è ben mantenuto. I codici 5xx, d’altro canto, indicano errori del server, che possono avere un impatto negativo sull’indicizzazione del sito.

Ora analizziamoli tutti nel dettaglio per comprendere meglio ogni codice di stato HTTP specifico e la sua funzione.

 

Codici di stato HTTP con risposte informative

100 Continua

Questa risposta intermedia indica che il client deve continuare la richiesta o ignorare la risposta se la richiesta è già terminata.

 

101 Cambio di protocollo

Questo codice viene inviato in risposta a un’intestazione di richiesta di aggiornamento da parte del client e indica il protocollo a cui il server sta passando.

 

102 Elaborazione

Questo codice indica che il server ha ricevuto e sta elaborando la richiesta, ma non è ancora disponibile una risposta.

 

103 Hearly Hints

Questo codice di stato è destinato principalmente a essere usato con l’intestazione Link, consentendo allo user agent di iniziare a precaricare le risorse mentre il server prepara la risposta.

 

Risposte di successo

 

200 OK o successo

La richiesta è riuscita. Il significato di “successo” dipende dal metodo HTTP:

 

GET: La risorsa è stata recuperata e trasmessa nel corpo del messaggio.

HEAD: Le intestazioni di rappresentazione sono incluse nella risposta senza alcun corpo del messaggio.

PUT o POST: La risorsa che descrive il risultato dell’azione viene trasmessa nel corpo del messaggio.

TRACE: Il corpo del messaggio contiene il messaggio di richiesta come ricevuto dal server.

 

201 Creato

La richiesta è andata a buon fine e come risultato è stata creata una nuova risorsa. Questa è tipicamente la risposta inviata dopo le richieste POST o alcune richieste PUT.

 

202 Accettata

La richiesta è stata ricevuta ma non è ancora stata eseguita. È una risposta non impegnativa, poiché non esiste un modo in HTTP per inviare successivamente una risposta asincrona che indichi l’esito della richiesta. È destinato ai casi in cui un altro processo o server gestisce la richiesta, o per l’elaborazione in batch.

 

203 Informazioni non autorevoli

Questo codice di risposta indica che i metadati restituiti non sono esattamente gli stessi disponibili sul server di origine, ma sono stati raccolti da una copia locale o di terzi. Viene utilizzato soprattutto per i mirror o i backup di un’altra risorsa. Ad eccezione di questo caso specifico, la risposta 200 OK è preferibile a questo stato.

 

204 Nessun contenuto

Non c’è contenuto da inviare per questa richiesta, ma le intestazioni possono essere utili. Lo user agent può aggiornare le intestazioni in cache per questa risorsa con quelle nuove.

 

205 Reset content

Indica allo user agent di reimpostare il documento che ha inviato la richiesta.

 

206 Contenuto parziale

Questo codice di risposta viene utilizzato quando l’intestazione Range viene inviata dal client per richiedere solo una parte di una risorsa.

 

207 Stato multiplo

Fornisce informazioni su più risorse, per situazioni in cui potrebbero essere appropriati più codici di stato.

 

208 Already Reported

Utilizzato all’interno di un elemento di risposta <dav:propstat> per evitare di enumerare ripetutamente i membri interni di più binding alla stessa collezione.

 

226 IM Used (HTTP Delta encoding)

Il server ha soddisfatto una richiesta GET per la risorsa e la risposta è una rappresentazione del risultato di una o più manipolazioni dell’istanza applicate all’istanza corrente.

 

Messaggi di stato di reindirizzamento

 

300 Scelte multiple

La richiesta ha più di una possibile risposta. Lo user agent o l’utente deve sceglierne una. (Non c’è un modo standardizzato per scegliere una delle risposte, ma si consiglia di usare collegamenti HTML alle possibilità, in modo che l’utente possa scegliere).

 

301 Spostato in modo permanente

L’URL della risorsa richiesta è stato modificato in modo permanente. Il nuovo URL viene fornito nella risposta.

 

302 Trovato

Questo codice di risposta indica che l’URI della risorsa richiesta è stato modificato temporaneamente. Ulteriori modifiche all’URI potrebbero essere apportate in futuro. Pertanto, il client deve utilizzare lo stesso URI per le richieste future.

 

303 Vedi altro

Il server ha inviato questa risposta per indirizzare il client a ottenere la risorsa richiesta in un altro URI con una richiesta GET.

 

304 Non modificato

Viene utilizzata per scopi di caching. Indica al client che la risposta non è stata modificata, in modo che il client possa continuare a usare la stessa versione in cache della risposta.

 

305 Usa proxy deprecato

Definito in una versione precedente delle specifiche HTTP per indicare che una risposta richiesta deve essere accessibile tramite un proxy. È stato deprecato a causa di problemi di sicurezza relativi alla configurazione in banda di un proxy.

 

306 inutilizzato

Questo codice di risposta non viene più utilizzato, ma è riservato. Era utilizzato in una versione precedente della specifica HTTP/1.1.

 

307 Redirect temporaneo

Il server invia questa risposta per indirizzare il client a ottenere la risorsa richiesta in un altro URI con lo stesso metodo utilizzato nella richiesta precedente. Ha la stessa semantica del codice di risposta HTTP 302 Found, con l’eccezione che lo user agent non deve cambiare il metodo HTTP: se è stato usato un POST nella prima richiesta, deve essere usato un POST nella seconda richiesta.

 

308 Reindirizzamento permanente

Significa che la risorsa si trova ora in modo permanente in un altro URI, specificato dall’intestazione Location: dell’intestazione della risposta HTTP. Ha la stessa semantica del codice di risposta HTTP 301 Moved Permanently, con l’eccezione che lo user agent non deve cambiare il metodo HTTP utilizzato: se è stato usato un POST nella prima richiesta, deve essere usato un POST nella seconda richiesta.

 

Risposte HTTP di errore del client

 

400 Bad request

Il server non può o non vuole elaborare la richiesta a causa di qualcosa che viene percepito come un errore del client (ad esempio, sintassi della richiesta malformata, inquadramento del messaggio di richiesta non valido o instradamento ingannevole della richiesta).

 

401 Non autorizzato

Sebbene lo standard HTTP specifichi “Unauthorized”, semanticamente questa risposta significa “non autenticato”. Cioè, il client deve autenticarsi per ottenere la risposta richiesta.

 

402 Pagamento richiesto Sperimentale

Questo codice di risposta è riservato per un uso futuro. Lo scopo iniziale della creazione di questo codice era di utilizzarlo per i sistemi di pagamento digitale, tuttavia questo codice di stato viene utilizzato molto raramente e non esiste una convenzione standard.

 

403 Vietato

Il client non ha i diritti di accesso al contenuto, cioè non è autorizzato, quindi il server si rifiuta di fornire la risorsa richiesta. A differenza del 401 Unauthorized, l’identità del client è nota al server.

 

404 Not Found

Il più classico degli errori di stato HTTP e terrore di molti poveri webmaster. Il server non riesce a trovare la risorsa richiesta. Nel browser, ciò significa che l’URL non è riconosciuto. In un’API, può anche significare che l’endpoint è valido ma la risorsa stessa non esiste. I server possono anche inviare questa risposta invece di 403 Forbidden per nascondere l’esistenza di una risorsa a un client non autorizzato. Questo codice di risposta è probabilmente il più noto per la sua frequente presenza sul web.

 

405 Metodo non consentito

Il metodo di richiesta è noto al server ma non è supportato dalla risorsa di destinazione. Ad esempio, un’API potrebbe non consentire la chiamata DELETE per rimuovere una risorsa.

 

406 Non accettabile

Questa risposta viene inviata quando il server web, dopo aver eseguito la negoziazione dei contenuti guidata dal server, non trova alcun contenuto conforme ai criteri forniti dallo user agent.

 

407 Autenticazione proxy richiesta

È simile a 401 Unauthorized, ma l’autenticazione deve essere effettuata da un proxy.

 

408 Timeout della richiesta

Questa risposta viene inviata da alcuni server su una connessione inattiva, anche senza alcuna richiesta precedente da parte del client. Significa che il server desidera chiudere la connessione inutilizzata. Questa risposta è molto più utilizzata da quando alcuni browser, come Chrome, Firefox 27+ o IE9, utilizzano meccanismi di pre-connessione HTTP per velocizzare la navigazione. Si noti anche che alcuni server si limitano a chiudere la connessione senza inviare questo messaggio.

 

409 Conflict

Questa risposta viene inviata quando una richiesta è in conflitto con lo stato attuale del server.

 

410 Gone

Il codice di stato HTTP 410 gone viene invitato quando il contenuto richiesto è stato eliminato definitivamente dal server, senza alcun indirizzo di inoltro. I client devono rimuovere la cache e i collegamenti alla risorsa. Le specifiche HTTP prevedono che questo codice di stato venga utilizzato per “servizi promozionali a tempo limitato”. Le API non dovrebbero sentirsi obbligate a indicare le risorse che sono state eliminate con questo codice di stato.

 

411 Lunghezza richiesta

Il server ha rifiutato la richiesta perché il campo dell’intestazione Content-Length non è definito e il server lo richiede.

 

412 Precondition failed

Il client ha indicato nelle sue intestazioni delle precondizioni che il server non soddisfa.

 

413 Payload troppo grande

L’entità della richiesta è più grande dei limiti definiti dal server. Il server potrebbe chiudere la connessione o restituire un campo di intestazione Retry-After.

 

414 URI troppo lungo

L’URI richiesto dal client è più lungo di quanto il server sia disposto a interpretare.

 

415 Tipo di supporto non supportato

Il formato dei dati richiesti non è supportato dal server, che quindi rifiuta la richiesta.

 

416 Intervallo non soddisfabile

L’intervallo specificato dal campo di intestazione Range nella richiesta non può essere soddisfatto. È possibile che l’intervallo sia al di fuori della dimensione dei dati dell’URI di destinazione.

 

417 Aspettativa fallita

Questo codice di risposta significa che l’aspettativa indicata dal campo di intestazione Expect della richiesta non può essere soddisfatta dal server.

 

421 Richiesta errata

La richiesta è stata indirizzata a un server che non è in grado di produrre una risposta. Questa richiesta può essere inviata da un server non configurato per produrre risposte per la combinazione di schema e autorità inclusa nell’URI della richiesta.

 

422 Contenuto non elaborabile

La richiesta era ben formata ma non ha potuto essere seguita a causa di errori semantici.

 

423 Bloccato

La risorsa a cui si accede è bloccata.

 

424 Dipendenza fallita

La richiesta è fallita a causa del fallimento di una richiesta precedente.

 

425 Troppo presto sperimentale

Indica che il server non è disposto a rischiare di elaborare una richiesta che potrebbe essere riproposta.

 

426 Aggiornamento richiesto

Il server si rifiuta di eseguire la richiesta utilizzando il protocollo corrente, ma potrebbe essere disposto a farlo dopo l’aggiornamento del client.

 

428 Condizione preliminare richiesta

Il server di origine richiede che la richiesta sia condizionata. Questa risposta ha lo scopo di prevenire il problema dell'”aggiornamento perso”, in cui un client ottiene lo stato di una risorsa, lo modifica e lo rimanda al server, quando nel frattempo una terza parte ha modificato lo stato sul server, causando un conflitto.

 

429 Troppe richieste

L’utente ha inviato troppe richieste in un determinato periodo di tempo (“rate limiting”).

 

431 Campi dell’intestazione della richiesta troppo grandi

Il server non è disposto a elaborare la richiesta perché i suoi campi di intestazione sono troppo grandi. La richiesta può essere ripresentata dopo aver ridotto le dimensioni dei campi di intestazione della richiesta.

 

451 Non disponibile per motivi legali

Lo user agent ha richiesto una risorsa che non può essere fornita legalmente, ad esempio una pagina web censurata da un governo.

 

Risposte di errore del server

 

500 Errore interno del server

Un’altro famosissimo errore di stato HTTP, in questo caso il server ha riscontrato una situazione che non sa come gestire.

 

501 Not Implemented

Il metodo di richiesta non è supportato dal server e non può essere gestito. Gli unici metodi che i server devono supportare (e che quindi non devono restituire questo codice) sono GET e HEAD.

 

502 Bad Gateway

Questo errore di risposta significa che il server, pur lavorando come gateway per ottenere una risposta necessaria a gestire la richiesta, ha ottenuto una risposta non valida.

 

503 Servizio non disponibile

Il server non è pronto a gestire la richiesta. Le cause più comuni sono un server fermo per manutenzione o sovraccarico.

 

504 Timeout del gateway

Questa risposta di errore viene fornita quando il server funge da gateway e non riesce a ottenere una risposta in tempo.

 

505 Versione HTTP non supportata

La versione HTTP utilizzata nella richiesta non è supportata dal server.

 

507 Memoria insufficiente

Non è stato possibile eseguire il metodo sulla risorsa perché il server non è in grado di memorizzare la rappresentazione necessaria per completare con successo la richiesta.

 

508 Loop rilevato

Il server ha rilevato un ciclo infinito durante l’elaborazione della richiesta.

 

510 Not extended

Sono necessarie ulteriori estensioni della richiesta perché il server possa soddisfarla.

 

511 Autenticazione di rete richiesta

Indica che il client deve autenticarsi per accedere alla rete.

 

Gli strumenti per trovare gli Status Code HTTP

Gli status code HTTP sono essenziali per monitorare e ottimizzare la performance di un sito web. E trovarli a volte piò sembrare complicato, ma non è così. Fortunatamente, esistono diversi strumenti e metodi per accedere a queste informazioni.

 

Utilizzare la Funzione “Ispeziona” del Browser:

La maggior parte dei browser moderni, come Google Chrome, offre una funzione “ispeziona” che permette agli utenti di analizzare vari aspetti di una pagina web. Una delle sezioni più utili in questo contesto è la “tab network”. Qui, è possibile monitorare tutte le risorse che vengono scaricate durante il rendering di una pagina, compresi gli status code associati.

Procedura su Google Chrome: Apri la pagina web che desideri analizzare. Fai clic con il tasto destro e seleziona “ispeziona” o utilizza la combinazione di tasti “CTRL + Maiusc + I”. Una volta aperta la console di ispezione, spostati sulla “tab network”. Dopo aver fatto scroll sulla pagina, vedrai un elenco di tutte le risorse scaricate con i relativi status code.

 

Usare le estensioni SEO per Google Chrome

Se desideri un metodo più rapido e specifico per analizzare gli status code, soprattutto per le risorse di tipo HTML, esistono diverse estensioni SEO per Google Chrome che possono aiutarti. Una di queste è “SEO Pro Extension“. Questa estensione fornisce informazioni dettagliate su un sito web, da titoli e descrizioni, a tag robots, fino a link e ai nostri status code, compresi eventuali redirect e catene di redirect. Installando questa estensione, puoi ottenere tutte le informazioni necessarie in pochi secondi.

 

Si, siamo alla fine

Wow, che incredibile carrellata di codici! Ovvio che, per garantire una buona ottimizzazione per i motori di ricerca, è essenziale monitorare e correggere eventuali errori legati ai codici di stato HTTP. Un sito ben ottimizzato con risposte positive del server non solo offre una migliore esperienza all’utente, ma è anche visto favorevolmente dai motori di ricerca, migliorando la sua visibilità e ranking.

 

 

Vuoi sapere se il tuo sito è ottimizzato lato SEO e se è ben posizionato per guadagnare traffico e clienti? Scoprilo con il nostro Brand Checkup gratuito! 👇

 

 


Vai al Brand Checkup


Sam Mazzotta

SEO e Digital Strategist, noto per organizzare persino i pensieri in liste puntate. È una specie di 'eremita sociale' che trova equilibrio tra il piacere delle connessioni umane (quelle vere) e la meditazione della solitudine. Lontano dal pc puoi trovarlo a leggere, fare una nuotata in mare, cucinare ramen, o immergersi in avventurosi giochi di ruolo.