Che cos’è un codice di stato 410?

Il codice di stato 404 (“Not Found”) viene riportato quando l’URL richiesto non è al momento disponibile sul server. Il codice di stato 410 (“Gone”), invece, viene utilizzato quando un URL è stato permanentemente cancellato.

La differenza principale tra i codici di stato 410 (“Gone”) e 404 (“Not Found”) riguarda il fatto che per il codice di stato 404 non è ancora chiaro se l’URL sarà nuovamente disponibile in futuro, oppure no: esso indica quindi una situazione possibilmente temporanea, mentre il codice di stato 410 una condizione duratura.

Ricorda che, se desideri spostare una pagina verso un nuovo URL, dovresti usare invece il codice di stato 301.

Come riconosco un codice di stato 410?

Il nome di questo codice può variare leggermente a seconda del server del sito: che sia “Gone”, “Error 410” o “HTTP Status 410”, il significato rimane comunque lo stesso.

In quali casi dovrei usare un codice 410, invece di un 404?

Utilizzare il codice di stato corretto a seconda del caso d’uso è vantaggioso sotto diversi aspetti.

Prima di tutto, i visitatori che vedono un codice di stato 410 capiscono che la pagina richiesta era disponibile in passato, ma adesso non lo è più.

Nel caso la pagina mostrasse invece un codice di stato 404, non è chiaro se la risorsa non sia presente al momento, oppure se sia stata definitivamente cancellata: potrebbe trattarsi di un link rotto oppure di un semplice errore di battitura.

Per Google un codice di stato 410 indica chiaramente che la pagina non esiste più, essendo questo status code più complesso da utilizzare rispetto ad un 404.

Se quindi hai eliminato definitivamente una risorsa è consigliabile che l’URL corrispondente rimandi un codice di stato 410, in modo che i siti che inviano link a questa pagina comprendano (sulla base delle relative linee guida) che devono cancellare o modificare tali link.

Siccome questo codice di stato può essere memorizzato nella cache, Googlebot e i browser eviteranno di richiedere l’URL per un certo periodo di tempo.

Il comportamento di Googlebot con i codici di stato 410 e 404 è stato spiegato in un video di Matt Cutts: quando Googlebot riceve uno status code 404 decide di “proteggere” la pagina nel sistema di crawling per 24 ore, con l’ipotesi che “il codice di stato sia stato mostrato accidentalmente” e non necessariamente perché si tratta di un errore. Se invece Googlebot incontra un codice di stato 410, Google comprende che il Webmaster ha ponderato la scelta, per cui considera immediatamente l’URL come una pagina di errore, togliendola dall’Indice.

Nel 2018, durante un Webmaster Hangout, John Müller ha risposto ad una domanda su questo tema nel modo seguente:

Dal nostro punto di vista a medio e lungo termine, il codice di stato 404 è uguale al 410: in entrambi i casi togliamo l’URL dall’Indice.

L’URL verrà inoltre richiesto meno frequentemente, in modo da evitare d’investire risorse nella scansione di pagine che sappiamo non essere disponibili.

La piccola differenza è che il 410, in alcuni casi, comporta l’eliminazione dell’URL dall’Indice più velocemente rispetto ad un 404. In generale stiamo parlando di pochi giorni di differenza, comunque.

Se hai quindi eliminato dei contenuti puoi utilizzare uno dei due codici senza problemi. Se il contenuto è già stato cancellato da tempo non è comunque più presente nell’Indice, e a noi fa poca differenza se si tratta di un codice 404 o 410.

Nel caso quindi un contenuto dovesse essere nuovamente disponibile in futuro, utilizza un codice di stato 404; se invece non sarà mai più presente nel sito, usa un 410.

Come riconosco un codice di stato 410?

Esistono diversi tool utili per scoprire se un URL sta riportando un codice di stato 410: nel browser di Google, Chrome, all’interno degli strumenti per gli sviluppatori, trovi tutte le informazioni a riguardo nella sezione “Network”.

Sezione Network negli strumenti per sviluppatori di Google

Oppure usa il browser plugin Ayima Redirect Path.

Ayima Redirect Path

Esistono poi naturalmente moltissimi tool nel web che offrono simili informazioni: due di questi sono urlitor.com e httpstatus.io, messo a disposizione da Tom Anthony per testare i codici di stato di più URL contemporaneamente.

La sezione Codici di stato nell'Optimizer SISTRIX

Utilizzando infine SISTRIX, ti basterà aprire un progetto Onpage e selezionare la sezione “Insights > Struttura del sito”, cliccando poi sulla voce “Codici di stato”. All’interno del primo riquadro ti verranno mostrati tutti gli status code del sito, compreso il tipo 4XX.

Cliccando sulle icone potrai inoltre ottenere maggiori informazioni sui codici di quella categoria.

Come posso usare un codice di stato 410 per la SEO?

Ecco alcuni alcuni casi pratici da considerare:

  • Eliminazione in bulk di prodotti scontati o fuori produzione;
  • Eliminazione in bulk di contenuti vecchi o obsoleti;
  • Cancellazione di URL che generano poco o nessun traffico;
  • Cancellazione di URL creati automaticamente da un CMS;
  • Cancellazione di URL creati automaticamente da hacker.

Come si crea un codice di stato 410?

La realizzazione tecnica di un codice di stato 410 dipende dal web server in uso: di seguito troverai quelli più popolari.

Web server: Apache

Esistono numerosi metodi per creare un codice di stato 410 con un server Apache. Ipotizzando che la nostra pagina /chiedi-a-sistrix/paginainesistente/ sia stata cancellata, bisognerà aggiungere al file .htaccess le stringhe seguenti:

RewriteRule  ^/chiedi-a-sistrix/paginainesistente/ - [L,R=410]
RewriteRule ^/chiedi-a-sistrix/paginainesistente/ - [G]
Redirect gone /paginainesistente/

L’ultimo esempio permette addirittura la creazione di una propria pagina di errore. Per farlo, bisogna semplicemente aggiungere una stringa aggiuntiva in cui viene specificato quale pagina HTML dovrebbe essere mostrata per il codice 410:

ErrorDocument 410 /pagina-410.html
Redirect gone /paginainesistente/

Web server: Ngix

Se invece si utilizza il server Ngix, è possibile aggiungere il file ngix.conf seguente in un server block già esistente, oppure in uno nuovo:

location ^/chiedi-a-sistrix/paginainesistente/ { return 410; }

Anche in questo caso si può aggiungere un file HTML da mostrare per il codice di stato 410:

error_page 410 /pagina-410.html;

Per saperne di più su questo tema puoi leggere il nostro articolo sui codici di stato.