HTTP, o HyperText Transfer Protocol, è la spina dorsale del World Wide Web. Se stai leggendo questo articolo online in questo momento, sei in balia di questi protocolli.
È incredibile quanto diamo per scontato HTTP. Come tutti i linguaggi di programmazione, HTTP ha codici di stato e codici di errore. Probabilmente hai visto errori 404 e simili, ma quali sono gli altri status code e cosa significano?
HTTP è stato introdotto nel mondo nel 1989 da Tim Berners-Lee, il famoso "Padre di Internet". Da quei primi giorni, il codice alla base di Internet è diventato molto più sofisticato. Ora viviamo nel mondo dell'Internet of Things, che si riferisce a quanti dispositivi diversi sono connessi al Web. Smartphone, smart TV, frigoriferi intelligenti e persino tutta la casa possono essere collegati online.
HTTP funge da intermediario e interprete, abilitando e migliorando la comunicazione tra client e server. In questa guida tratteremo i codici di stato HTTP più comuni, cosa significano e come risolverli.
Cosa sono i codici di stato HTTP?
I diversi tipi di codici di stato HTTP
Relazione tra codici di stato HTTP e SEO
Come correggere gli errori 404?
Come correggere gli errori del codice di stato 503?
In che modo Semrush può aiutarti con gli errori HTTP?
Cosa sono i codici di stato HTTP?
Gli status code di HTTP sono codici a 3 cifre che vengono inviati ogni volta che richiedi una pagina web e che ti dicono come il server ha gestito la richiesta. Non li noterai a meno che non ci sia stato un problema.
I diversi codici ti diranno se le cose vanno alla grande, se ci sono problemi marginali o se c'è un problema grave.
Se sei il proprietario o lo sviluppatore di un sito Web, la comprensione dei codici di stato è fondamentale per risolvere e riparare potenziali problemi di configurazione sul tuo sito.
Per vedere i codici quando navighi con Firefox o Chrome puoi usare estensioni del browser che riveleranno il codice inoltrato per ogni richiesta.
Esistono diversi codici e conoscerli ti sarà utile. Andiamo allora a vedere che cosa significano.
I diversi tipi di codici di stato HTTP
- 100s: Codici informativi: il server riconosce la richiesta avviata dal browser e che è in corso di elaborazione (100-199).
- 200s: Codici di successo: richiesta ricevuta, compresa, elaborata e informazioni attese trasmesse al browser (200-299).
- 300s: Codici di reindirizzamento: è stata sostituita una destinazione diversa per la risorsa richiesta; potrebbero essere necessarie ulteriori azioni da parte del browser (300-399).
- 400s: Codici di errore del client: non è stato possibile raggiungere il sito Web o la pagina; la pagina non è disponibile o si è verificato un problema tecnico con la richiesta (400-499).
- 500s: Codici di errore del server: la richiesta è stata accettata, ma a causa di un errore il server non è stato in grado di soddisfare la richiesta (500-599).
Approfondiamo le varie categorie:
Codici di stato HTTP 100
La richiesta è ancora in corso.
- 100: Continue. Header richiesto ricevuto e accettato, il server è pronto a ricevere il corpo della richiesta.
- 101: Switching protocols. Il tuo browser richiede la modifica dei protocolli, il server è conforme.
- 102: Processing. Richiesta ricevuta e in corso. Risposta non ancora disponibile.
- 103: Early hints. Il server fornisce alcune intestazioni di risposta che consentono il precaricamento delle risorse durante il caricamento del resto della risposta.
Codici di stato HTTP 200
La richiesta è andata a buon fine e il browser ha ricevuto le informazioni.
- 200: Everything OK. La richiesta è riuscita ed è definita dal metodo HTTP utilizzato, come nei seguenti esempi:
GET: risorsa ottenuta ed è nel corpo del messaggio
HEAD: intestazioni nel corpo del messaggio
POST o PUT: la risorsa descrive il risultato dell'azione inviata nel corpo del messaggio
TRACE: il corpo del messaggio contiene il messaggio di richiesta come ricevuto
- 201: Created. Richiesta soddisfatta; nuova risorsa creata. Risposta tipica dopo le richieste POST.
- 202: Accepted. Richiesta del browser accettata, ancora in corso. Può avere successo o no.
- 203: Non-authoritative information. Le informazioni provengono da un server proxy che ha ricevuto un codice di stato 200 "OK".
- 204: No content. Richiesta elaborata, ma nessun contenuto inviato. Le intestazioni possono essere utili.
- 205: Reset content. Come lo status code 204, ma dice all'utente di reimpostare la visualizzazione del documento.
- 206: Partial content. Se il tuo browser utilizza "range headers", questo codice ti informa che è stata inviata solo una parte della risorsa.
- 226: IM used. Il server ha completato una richiesta GET; la risposta riflette manipolazioni dell'istanza.
Codici di stato HTTP 300
Indicano che una risorsa è stata trasferita. Questi codici forniscono informazioni su dove cercare i contenuti trasferiti.
- 300: Multiple choice. La richiesta ha più di una risposta possibile. Il browser/utente dovrebbe sceglierne una.
- 301: Moved permanently. L'URL della risorsa richiesta è stato modificato in modo permanente. Il nuovo URL è fornito nella risposta.
- 302: Found. L'URL della risorsa richiesta è stato temporaneamente modificato. Ulteriori modifiche all'URL potrebbero essere apportate in futuro. Pertanto, questo stesso URI dovrebbe essere utilizzato dal client nelle richieste future.
- 303: See other. Il server ha inviato questa risposta per indicare al client di ottenere la risorsa richiesta su un altro URL con una richiesta GET. Richiede la conoscenza dei quattro metodi di richiesta HTTP primari.
- 304: Not modified. Utilizzato per scopi di memorizzazione nella cache. Dice al client che le risorse memorizzate nella cache non sono cambiate. Il client può continuare a utilizzare la stessa versione memorizzata nella cache della risposta, accelerando così il processo.
- 307: Temporary redirect. Sostituisce il codice di risposta HTTP 302 Found da utilizzare quando una risorsa è stata temporaneamente spostata su un URL diverso. In questo caso, il metodo HTTP utilizzato non deve essere modificato: se è stato utilizzato POST, si deve riutilizzare POST.
- 308: Permanent redirect. Simile a un codice di risposta HTTP 301; la risorsa si trova ora in modo permanente su un altro URL, specificato dall'intestazione Location: HTTP Response.
Codici di stato HTTP 400: Codici errore del client
Indicano che è impossibile trovare il sito Web o la pagina. La pagina non è disponibile o la richiesta è tecnicamente problematica.
- 400: Bad request. Il server non può rispondere a causa di un errore del client.
- 401: Unauthorized. Il cliente deve autenticarsi per ottenere la risposta richiesta.
- 402: Payment required. Status code riservato per un uso futuro; raramente utilizzato in quanto ancora non è stata adottata una convenzione standard.
- 403: Forbidden. Il client non ha diritti di accesso ai contenuti; ad esempio, potrebbe essere richiesta la password.
- 404: Not found. Molto comune sul Web. L'URL non è riconosciuto; la risorsa non esiste.
- 405: Method not allowed. Il server host supporta il metodo ricevuto, ma la risorsa di destinazione no perché è stata disabilitata.
- 406: Not acceptable. La risorsa richiesta può generare solo contenuto non accettabile secondo le intestazioni di accettazione richieste.
- 407: Proxy authentication required. Quando si utilizza un server proxy, il browser deve autenticarsi per continuare.
- 408: Request timeout. Il server vorrebbe chiudere una connessione inattiva; la richiesta non è stata completata del tutto prima del timeout. Alcuni server non inviano alcun messaggio prima della disconnessione.
- 409: Conflict. La tua richiesta è in conflitto con la risorsa/server così com'è in quel momento.
- 410: Gone. Il contenuto richiesto è stato eliminato definitivamente dal server e non verrà ripristinato.
- 411: Length required. La richiesta viene rifiutata poiché il campo dell'intestazione riguardante la lunghezza del contenuto non è definito come richiesto dal server.
- 412: Precondition failed. Le condizioni dell'intestazione della richiesta del browser non sono state soddisfatte dal server.
- 413: Payload too large. La tua richiesta supera i limiti definiti dal server.
- 414: URI too long. La richiesta è troppo lunga per essere elaborata dal server.
- 415: Unsupported media type. Il server rifiuta la richiesta in quanto non supporta il formato multimediale dei dati richiesti.
- 416: Range not satisfiable. Il server non è in grado di restituire la tua richiesta; il campo del range header come specificato può andare oltre l'ambito dei dati dell'URI.
- 417: Expectation failed. I requisiti previsti per il campo di intestazione della richiesta non possono essere soddisfatti dal server.
- 421: Misdirected request. Il server non è configurato per dare una risposta a questa richiesta.
- 422: Unprocessable entity. Gli errori semantici nella richiesta impediscono al server di elaborare una risposta.
- 423: Locked. La risorsa è bloccata e non è possibile accedervi.
- 424: Failed dependency. Richiesta fallita a causa del fallimento della richiesta precedente.
- 425: Too early. Il server non è disposto a processare una richiesta che potrebbe essere ripetuta.
- 426: Upgrade required. Il server rifiuta la richiesta con il protocollo corrente; invia un Upgrade Header che indica il protocollo accettato.
- 428: Pre-condition required. Il server non può elaborare la richiesta finché non vengono specificate le condizioni.
- 429: Too many requests. Questa è una risposta di limitazione della velocità, inviata dal server quando l'utente ha inviato troppe richieste in un determinato periodo di tempo.
- 431: Request header fields too large. I campi di intestazione nella richiesta sono troppo grandi per essere elaborati dal server.
- 451: Unavailable for legal reasons. Al server è vietato concedere l'accesso alla risorsa richiesta; potrebbe essere una pagina web ufficialmente censurata.
Relazione tra codici di stato HTTP e SEO
Ok, hai superato l'interminabile elenco di status code con il loro relativo significato e sei ancora con noi. Questo significa che l'argomento ti interessa davvero!
Anche se in superficie tutte queste informazioni possono sembrare piuttosto aride, in realtà sono davvero preziose quando si tratta di SEO o di visibilità generale sul Web.
Ognuno di questi codici di stato può influire sul posizionamento del tuo sito, anche se alcune categorie sono molto più distruttive di altre.
È fondamentale che tu mantenga una forte relazione con i tuoi sviluppatori web. Scopri quali codici di errore HTTP stanno interferendo maggiormente nella tua visibilità e passali al team di manutenzione del tuo sito.
Problemi critici del crawler
I problemi critici del crawler potrebbero essere il tuo primo punto di riferimento. Gli errori di stato HTTP nei livelli 400 e 500 rendono le tue pagine completamente invisibili ai visitatori del tuo sito. Gli errori di livello 400 (incluso il temuto errore 404 "pagina non trovata") indicano che il contenuto non può essere trovato o è stato completamente rimosso. Gli errori 500 indicano problemi con il server.
I visitatori non rimangono a lungo sul tuo sito quando incontrano pagine con errori di questo tipo. Stai avvantaggiando i tuoi concorrenti finché non risolvi il problema.
Semplicemente non puoi permetterti che questi errori compaiano sulle tue pagine principali.
Problemi di reindirizzamento
I problemi di reindirizzamento hanno un impatto significativo sull'esperienza dell'utente e sulla SEO.
I codici 302/307 reindirizzano temporaneamente gli utenti da un URL a un altro. Google non collabora in questo spostamento e non trasmette la stessa quantità di link equity alla pagina.
Le catene di redirect sono un ostacolo anche per Google, e il risultato è che ad ogni redirect di una catena si perde parte della link equity. A volte, se la catena è troppo lunga, la tua pagina non viene più visualizzata.
I meta refresh nel codice HTML dicono al server di reindirizzare l'utente dopo un certo lasso di tempo. L'utente a quel punto lascia il sito e, di nuovo, verrà persa link equity.
Ricorda: la velocità di caricamento della pagina è un fattore di ranking; più a lungo il visitatore aspetta, più posizioni perderà la pagina.
I problemi di reindirizzamento impediscono ai bot di scansionare e indicizzare le pagine, come se non esistessero. Hai lavorato troppo duramente per lasciarti sfuggire questi problemi, quindi chiedi ai tuoi sviluppatori web di risolverli con urgenza.
Come correggere gli errori 404?
Un errore 404 (o un errore "Pagina non trovata") può essere dovuto a molte ragioni. In ogni caso è un errore lato client invece che lato server. Per affrontare gli errori 404 ti consigliamo di trovare la causa principale di questo errore. Chiediti quanto segue:
- La struttura dell'URL è cambiata? Se sì, reindirizza la vecchia struttura dell'URL alla nuova struttura. Alcuni CMS come Shopify e Wordpress hanno un reindirizzamento automatico non appena cambi una struttura URL.
2. Ricarica la pagina. Potresti dare di matto vedendo che la tua pagina non è disponibile, ma a volte basta semplicemente aggiornare la pagina o aprirla su un altro dispositivo.
3. Svuota la cache e cancella i cookie. Svuota la cache del browser ed elimina i cookie, quindi prova ad accedere nuovamente alla pagina.
Come correggere gli errori del codice di stato 503?
A differenza degli errori 404, questi sono errori lato server che a volte sono fuori dal tuo controllo (quindi non puoi risolverli immediatamente). Considera questi tre fattori quando affronti questo status code:
- Se un sito Web riceve troppo traffico quando ottieni questo errore (assicurati prima che sia traffico reale e non traffico bot), potrebbe essere che l'attuale piano di hosting su cui si trova il tuo sito Web non sia in grado di gestire questo afflusso di traffico. La soluzione migliore sarebbe contattare il provider host e aggiornare il server.
- Se una pagina restituisce un errore 503, il tuo server potrebbe essere in manutenzione o si è bloccato. Sii paziente o contatta il tuo provider host per sapere quando il sito Web tornerà a funzionare.
- Identifica se si tratta di un attacco DoS o DDoS.
In che modo Semrush può aiutarti con gli errori HTTP?
Semrush semplifica la ricerca di determinati tipi di codici di stato HTTP tramite lo strumento Site Audit. Uno dei principali vantaggi di questo tool è che rende molto facile identificare i codici di stato HTTP che puoi individuare per il tuo sito Web o per un cliente. Di seguito è riportato un processo passo passo su come trovarli.
Passo 1: Crea un account su Semrush.
Passo 2: Accedi alla tua dashboard. Seleziona il menu a discesa SEO toolkit per visualizzare gli strumenti SEO:
Passo 3: Nella categoria "On Page & Tech SEO", seleziona la funzione "Site Audit":
Passo 4: Inserisci il dominio del tuo sito Web e seleziona "Avvia l'audit" per iniziare:
Passo 5: Personalizza il tuo audit adattando le impostazioni nelle varie schede che ti vengono presentate, quindi esegui il tuo audit:
Conclusioni
HTTP può sembrare "solo un protocollo", ma è più di questo.
È un linguaggio necessario e quando ne diventerai un esperto scoprirai di essere in grado di comprendere rapidamente errori e blocchi man mano che si sviluppano sui tuoi siti.
Armati di queste nuove conoscenze e diventerà naturale per te occuparti delle riparazioni necessarie che faranno decollare di nuovo la tua SEO e i tuoi profitti.