Verificare gli status code delle pagine del nostro sito è fondamentale affinché siano indicizzate correttamente dai motori di ricerca. Vediamo cosa sono i codici di stato HTTP e le migliori pratiche SEO per gestirli correttamente.
In questa guida completa scoprirai:
Le informazioni sono tratte dal corso SEO online professionale.
Gli status code (o response codes) indicano se una specifica richiesta HTTP è stata completata correttamente. Sono parte integrante del protocollo HTTP (acronimo di Hypertext Transfer Protocol), il protocollo usato da client e server per comunicare e scambiare informazioni.
Praticamente, quando il client (un browser o un crawler come Googlebot) richiede una risorsa ad un server, quest’ultimo invia in risposta uno status code (o codice di stato) che è formato da tre cifre.
Le risposte HTTP inviate dai server generalmente consistono di due parti:
Gli headers contengono il response code HTTP e altre informazioni, come ad esempio le istruzioni su quanto a lungo il client dovrebbe conservare la risposta in cache.
Gli headers non sono mostrati all’utente, ma forniscono istruzioni al client su come gestire la risposta e come mostrare il body payload.
Quando nella risposta HTTP è presente un body payload, viene usato per fare il rendering e mostrare la pagina all’utente.
Esistono cinque categorie di status code e ognuna trasmette un diverso tipo di messaggio:
Gli status code 1xx sono di tipo informativi e indicano che una richiesta è stata ricevuta e compresa, ma non è ancora stata processata.
I codici di stato della categoria 1xx si trovano abbastanza raramente e per questo motivo non saranno approfonditi.
Gli status code 2xx indicano richieste che hanno avuto successo e tutto è andato secondo i piani. Dal punto di vista SEO, lo status code della categoria 2xx più importante da conoscere è il 200.
Quando un server invia lo status code 200, comunica al client che la richiesta è stata ricevuta con successo e fornisce in risposta il contenuto richiesto. Lo status code 200 comunica quindi che tutto è andato bene.
Si ha un uso non corretto dello status code 200 quando, ad esempio, viene richiesta una pagina che non esiste e viene restituita come risposta uno status code 200 anziché un codice 404 o 410.
Nel gergo di Google Search Console questo fenomeno viene definito come errore soft 404.
Gli status code 3xx indicano che è richiesta un’ulteriore azione. La richiesta è stata ricevuta dal server, ma al momento non può essere soddisfatta.
Quando il client riceve uno status code 3xx, deve inviare una nuova richiesta alla location che il server ha restituito con il redirect. Gli status code che descriviamo in questa sezione sono tutti redirect.
Questo succede quando viene fatta una richiesta per l’URL A, ma l’URL A viene rediretto all’URL B. Quindi la richiesta dovrebbe in realtà essere fatta direttamente all’URL B.
In questa sezione vediamo i seguenti status code 3xx, molto importanti per la SEO:
Lo status code 301 (o redirect 301) comunica che una risorsa è stata spostata in modo permanente in un’altra location. Pertanto ogni richiesta dovrà essere rediretta ad un altro URL.
Ricorda che i browser salveranno in cache i redirect 301 così se in futuro la pagina dovesse venire richiesta nuovamente verrà mostrata più velocemente.
Il codice 301 viene usato, ad esempio, quando un sito ha migrato da HTTP a HTTPS e ogni URL in HTTP è rediretto alla sua versione in HTTPS. I redirect 301 sono essenziali per il successo delle migrazione SEO dei siti.
Invece, non è corretto usare il response code 301 quando una pagina è temporaneamente inaccessibile.
Lo status code 302 (o redirect 302) comunica che una risorsa è stata temporaneamente spostata in un’altra location.
A causa della sua natura temporanea, nessun segnale di popolarità o di rilevanza viene trasmesso dall’URL di partenza all’URL di destinazione e l’URL rediretto continuerà a posizionarsi su Google.
Dopo un periodo di tempo prolungato, i redirect 302 vengono considerati come dei redirect 301 dai motori di ricerca (in linea di massima, diciamo che potrebbe volerci un mese prima che un redirect 302 venga considerato come un 301 da parte di Google).
Esempio di uso corretto del redirect 302: poniamo il caso che tu stia gestendo una campagna su Google Ads e vuoi che per un breve periodo di tempo i visitatori atterrino su URL B anziché su URL A. Quando la campagna sarà finita, andrai subito a rimuovere il redirect 302.
Esempio di uso scorretto del redirect 302: poniamo che tu stia gestendo una migrazione e decidi di implementare redirect 302 al posto dei redirect 301. In questo caso i segnali di ranking non verranno trasmessi dai vecchi URL ai nuovi e questo inciderà in modo negativo sul posizionamento.
Lo status code 303 (o redirect 303) comunica che il server sta redirezionando l’URL richiesto verso un altro URL.
Ad esempio, può essere usato per evitare che gli utenti inviino per sbaglio il form due volte quando usano il pulsante “indietro” del browser. Infatti, il redirect 303 comunica che bisognerebbe fare una richiesta di follow-up all’URL temporaneo usando il metodo GET.
E’ corretto usare i redirect 303 per i form, ma non è corretto usarli in altre circostanze. Infatti, i response codes 303 trasmettono link equity, ma occorre parecchio tempo affinché questo avvenga.
È quindi scorretto usare un redirect 303 al posto di un 301 quando un contenuto viene spostato in via definitiva.
Lo status code 304 (o redirect 304), comunica che la risorsa non è stata modificata dall’ultima volta che è stata richiesta e pertanto non verrà reinviata al client, il quale dovrà usare la versione salvata in cache.
Ad esempio, poniamo di aver visitato una pagina il giorno 01 Gennaio 2020 alle ore 9:00. Il giorno 02 Gennaio visitiamo la pagina di nuovo e vogliamo chiedere al server se la pagina ha subito delle modifiche dall’ultima volta che l’abbiamo visitata.
In questo caso, possiamo farlo aggiungendo la seguente condizione alla richiesta:
È pertanto una best practice fornire lo status code 304 agli utenti quando il contenuto non è cambiato. Dal punto di vista SEO, lo status code 304 offre benefici soprattutto quando si parla di siti di grandi dimensioni (dalle 100.000 pagine a salire) come gli E-Commerce, Marketplace e i grandi portali editoriali.
Lo status code 307 (o redirect 307) viene utilizzato anche come reindirizzamento interno nei casi in cui il browser sappia che è applicato il protocollo HTTPS.
Il browser conosce questa informazione o perché gli è stato comunicato durante le richieste precedenti o perché il dominio si trova nell’elenco Preload HSTS.
L’elenco Preload HSTS è un elenco di domini (condiviso tra i vari browser) che utilizzano il protocollo HTTPS. Anche se un utente può richiedere la versione HTTP di un URL, il browser utilizzerà il redirect 307 interno per richiedere la versione HTTPS, evitando così richieste non necessarie e non sicure.
È dunque corretto usare il redirect 307 quando si vuole eseguire un redirect interno per assicurarsi che la connessione rimanga protetta.
Invece, è scorretto usare il 307 quando un contenuto viene spostato in modo permanente, poiché in questi casi bisogna utilizzare il redirect 301.
Il codice di stato 308 (o redirect 308) è l’equivalente HTTP 1.1 del redirect 301 e non consente di modificare il metodo di richiesta da POST a GET.
Dal punto di vista SEO, ci sono due considerazioni da fare:
Per le ragioni appena citate, non è consigliabile usare il response code 308.
I codici di stato HTTP 4xx indicano che si è verificato un errore lato client. Gli errori possono essere principalmente di tre tipi:
In questa sezione tratteremo i seguenti status code 4xx:
Il codice di stato 401 è un codice di errore e comunica che l’autenticazione HTTP non è riuscita.
Per accedere alla pagina richiesta potrebbe essere necessario il nome utente e la password oppure non è consentito l’accesso in base all’ indirizzo IP.
In genere vedrai lo status code 401 quando i crawler tentano di accedere agli ambienti di staging e hai implementato l’autenticazione HTTP per impedire l’accesso.
In questi casi visualizzare il response code 401 è corretto, poiché è preferibile evitare l’indicizzazione dell’ambiente di staging che deve rimanere riservato.
Un tipico esempio di uso errato del codice di stato HTTP 401 si ha quando lo si usa al posto del 403 per indicare che l’autorizzazione non è riuscita.
Il codice di stato HTTP 403 (o errore 403) indica che è vietato richiedere un determinato URL.
Questo status code viene comunemente utilizzato per impedire ai crawler di effettuare richieste dopo un comportamento scorretto. Viene inoltre restituito nel caso in cui il client fornisca le credenziali di accesso errate.
È corretto quindi usare il response code 403 quando i crawler richiedono troppi URL al tuo sito e tu rispondi con il codice 403 per fermarli.
Invece, è sbagliato usare lo status code 403 al posto del 401 quando vogliamo indicare che un client non è autorizzato ad effettuare richieste.
Il codice di stato 404 (o errore 404) indica che la risorsa richiesta non è stata trovata. E’ molto comune, in quanto lo riscontriamo quando clicchiamo su un link non funzionante.
Potrebbe capitare che delle pagine esistenti restituiscano “errore 404” a causa di un bug o in seguito a problemi di manutenzione del server. Avere URL che restituiscono 404 è negativo se non hai rimosso effettivamente il contenuto.
Sebbene i motori di ricerca non eliminino subito dall’indice gli URL che restituiscono status code 404, potrebbero farlo in un secondo momento se tale response code persiste per molto tempo.
Linkare pagine 404, oltre che per i motori di ricerca, è negativo anche dal punto di vista dell’esperienza utente, in quanto creano una sorta di vicolo cieco per i visitatori.
È quindi corretto usare il response code 404 se l’URL richiesto non esiste più o non è mai esistito.
Invece, è scorretto usare il 404 per pagine esistenti e che dovrebbero funzionano bene.
Il codice di stato 410 (o errore 410) indica che l’URL richiesto è stato rimosso in modo permanente. Ciò significa che l’URL esisteva in precedenza, ma è stato successivamente rimosso e non sarà più ripristinato.
I motori di ricerca sono in grado di rimuovere rapidamente gli URL dal loro indice quando viene restituito lo status code 410. Proprio per tale motivo l’utilizzo corretto del 410 può incidere molto sui risultati di una campagna SEO.
Quindi è corretto usare il response code 410 per tutti gli URL che sono stati rimossi in modo esplicito e non saranno ripristinati, mentre è scorretto utilizzarlo per URL temporaneamente non disponibili.
Il codice di stato 429 (o errore 429) indica che un client ha inviato troppe richieste ad un server in un determinato lasso di tempo.
Se le richieste continuano ad arrivare nonostante sia stato comunicato il response code 429, il server potrebbe decidere di iniziare a rispondere con un codice 403.
Se il server continua a restituire lo status code 429 per un periodo di tempo molto prolungato, Google potrebbe rimuovere quel contenuto dall’indice.
Questo è uno dei tanti motivi per cui ti devi sempre assicurare investire in un hosting solido e che restituisca sempre i giusti status code.
Un tipico uso corretto del codice di stato HTTP 429 si ha quando un crawler richiede troppi URL in un periodo di tempo breve.
In questo caso, con un codice di stato HTTP 429, il server invierà un chiaro segnale a Googlebot di dovrebbe rallentare.
Nota bene: per combattere i crawler spam è però più corretto usare il codice 403 e non il 429.
Lo status code 430 non è un codice di stato ufficiale. Questo response code viene utilizzato erroneamente da Shopify che ha fatto confusione con l’uso degli status code e invia erroneamente un codice di stato 430 quando dovrebbe restituire un 429.
Chi eroga SEO per Shopify a livello professionale (proprio come me), potrà confermartelo.
Il codice di stato HTTP 451 (o errore 451) indica che l’URL richiesto non è disponibile per motivi legali.
Quando viene erogato questo status code, dovrebbe essere fornita anche una spiegazione che specifichi perché la risorsa non è disponibile e la legislazione o il regolamento di riferimento.
Il response code 451 può essere utilizzato quando qualcuno ha copiato in modo palese il contenuto di un altro sito e successivamente gli è stato ordinato di rimuoverlo.
Invece, non è corretto utilizzare lo status code 451 quando utenti provenienti dalla European Economic Area (EEA) richiedono risorse da siti che si trovano al di fuori dell’EEA, per il timore di ripercussioni che potrebbero scaturire dal GDPR.
I codici di stato 5xx vengono restituiti quando i client fanno richieste valide, ma i server non possono restituirle per qualche motivo. Ad esempio, il sito potrebbe essere troppo occupato o temporaneamente non disponibile per manutenzione.
Se i motori di ricerca ricevono errori 5xx durante la scansione di un sito web, potrebbero mettere in atto una serie di azioni, nessuna delle quali è positiva dal punto di vista SEO:
In questa sezione tratteremo i seguenti codici di stato:
Il codice di stato 500 (errore 500), indica che il server ha riscontrato problemi durante l’elaborazione della richiesta, ma non è in grado di dichiarare il motivo.
È sbagliato usare lo status code 500 quando il server è effettivamente a conoscenza del problema e avrebbe pertanto dovuto rispondere con un suggerimento più specifico.
Lo status code 503 (o errore 503) indica che il server è temporaneamente non disponibile e sarà nuovamente disponibile in seguito. Ciò può essere dovuto alla manutenzione programmata (sebbene sconsiglio vivamente di farlo) o se il server è troppo occupato.
Come accade con il codice 429, Google può rimuovere dall’indice i contenuti per i quali sta ricevendo response code 503 per un periodo di tempo prolungato.
Pertanto, in fase di consulenza SEO, consiglio sempre di includere un valore “Retry after” nella risposta nel caso in cui decidiamo di utilizzare questo status code.
È corretto usare il codice di stato 503 quando il server è troppo occupato e non è in grado di elaborare immediatamente la richiesta del client.
È invece scorretto usare il codice di stato HTTP 503 con un valore “Retry after” troppo lontano nel passato o nel futuro.
Il codice 524 non esiste ufficialmente, ma è stato creato da Cloudflare e viene inviato quando scade l’origine della richiesta. Si tratta di un problema relativo esclusivamente al server di Cloudflare.
Puoi verificare gli status code utilizzando:
Le prime due modalità indicate possono andare bene se si devono verificare gli status code di singole pagine, ma sono inefficaci se dobbiamo controllare un grosso numero di URL.
Questa procedura è simile per tutti i browser. Ogni browser è dotato di strumenti integrati:
Un’alternativa alle soluzioni integrate sono le estensioni del browser, come il popolare Redirect Path di Ayima per Google Chrome.
Con Google Search Console puoi verificare lo status code di un URL utilizzando lo strumento Controllo URL:
Dato che i crawler dei motori di ricerca e i siti comunicano tramite il protocollo HTTP, è fondamentale per un consulente SEO conoscere bene gli status code più comuni per diagnosticare e risolvere i problemi SEO velocemente.
Quando i crawler richiedono le pagine del tuo sito, è necessario che venga restituito status code HTTP 200 (OK). Durante la loro scansione non devono individuare pagine che restituiscono status code 5xx e 4xx e possibilmente pochi 3xx.
Se non conosci questi aspetti tecnici e come gestirli correttamente, potrai fare SEO solo a livello amatoriale e non potrai mai diventare un SEO Specialist.
Se ritieni che sia preferibile ricevere un supporto professionale, puoi visitare la pagina dedicata ai servizi SEO. Mentre per dubbi o domande sull’argomento, non esitare a scriverle nei commenti.
Ottieni l’accesso a guide, strategie e tutorial esclusivi che non condivido da nessun’altra parte.
Sottoscrivo la Privacy Policy di Valentino Mea. Sottoscrivendo acconsenti a ricevere informazioni e offerte riservate. Rispettiamo la tua privacy, i tuoi dati sono al sicuro e non saranno mai ceduti a terzi.
Vuoi sviluppare un business online di successo o vuoi essere formato anche tu ad alti livelli?
Copyright © 2013 - 2023 · Valentino Mea Srls rating 5.0/5 su 22 recensioni · C.F. / P.iva: 04373930611 · Privacy Policy · Cookie Policy · Sitemap · All rights reserved
Ciao Valentino, ti ringrazio per questa bella guida. Ho letto che alcuni servizi in cloud segnalano il timeout della connessione HTTP con il codice di stato 610. Mi chiedevo se può esserci un collegamento tra il posizionamento nei motori di ricerca e la rilevazione di questo status code. Grazie mille!
Buongiorno Teresa,
ti confermo che il codice di stato 610 può avere ripercussioni negative sul posizionamento, se viene rilevato da GoogleBot.
Buon lavoro!