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.

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?

A seconda del server utilizzato, la dicitura può variare leggermente: che venga visualizzato “Gone”, “410 Gone” o “HTTP Status 410”, il fondamento tecnico rimane lo stesso, ovvero che la risorsa richiesta è stata rimossa in modo permanente.

Esistono diversi modi per scoprire se un URL restituisce questo o altri codici di stato 4xx. Negli strumenti per sviluppatori di Google Chrome (scheda “Network”), è possibile visualizzare direttamente il codice di stato al momento del caricamento di un URL. Anche i plugin per browser come Ayima Redirect Path o strumenti web come httpstatus.io offrono informazioni rapide a riguardo.

La sezione Codici di stato in un progetto SISTRIX

Anche in un progetto di SISTRIX è possibile analizzare i codici di stato di tipo 4xx. Alla voce di menu Codici di stato” troverai un elenco dettagliato di tutte le pagine che attualmente rispondono con un codice di errore: questo non aiuta solo a individuare i classici errori 404, ma anche a monitorare i contenuti eliminati in modo permanente.

Scopri subito come sfruttare SISTRIX per rilevare e correggere le pagine di errore del tuo sito! Sette giorni per provare l’intero tool senza alcun costo nascosto, né disdetta necessaria: testa subito SISTRIX gratuitamente.

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.