Redirect permanente 308
Cos'è un redirect permanente 308, come preserva il metodo HTTP segnalando la permanenza a differenza di un 301 e come Google trasferisce i segnali di ranking attraverso di esso.
Lingue
1 segnale di evidenza in questa pagina
- Strumento live correlatoHTTP Status & Redirect Checker
Un redirect permanente 308 è uno spostamento definitivo, come un 301, con una garanzia rigorosa in più: il client non deve cambiare il metodo della richiesta sul nuovo URL e, poiché un client conforme ripete la stessa richiesta invece di crearne una nuova, anche il corpo viaggia con essa, quindi un POST resta un POST. Per la SEO è equivalente a un 301: la documentazione di Google lo definisce «Equivalent to 301», Gary Illyes dice che Google lo fonde con 301 e Fabrice Canel di Bing conferma che Bing li tratta allo stesso modo. Non c'è quindi un motivo di ranking per preferire l'uno all'altro. Scegli 308 quando devi reindirizzare una richiesta diversa da GET che deve arrivare intatta, come un endpoint API, un webhook, un modulo o un POST di autenticazione, perché un 301 può, «per ragioni storiche», trasformare silenziosamente quel POST in GET e perdere il corpo. Per uno spostamento normale di pagina, il passaggio da http a https o un cambio di dominio, tutti casi di GET, 301 resta il default pragmatico grazie al supporto più ampio di strumenti, CDN e plugin. Nel 2026 il supporto dei browser è alto, circa 96,5% o più secondo caniuse, ma conviene controllare il proprio stack: alcuni plugin CMS, pannelli di regole edge e proxy legacy espongono ancora solo 301/302/307.
TL;DR — Un 308 Permanent Redirect dice «questo URL è stato spostato per sempre», proprio come un 301, ma con una promessa in più: il metodo della richiesta non può cambiare sul nuovo indirizzo e, poiché il browser ripete la stessa richiesta invece di crearne una nuova, di norma viaggia anche il resto, compresi i dati di un modulo. Così l’invio di un modulo resta un invio di modulo invece di trasformarsi silenziosamente in una semplice visita di pagina. Per i motori di ricerca i due codici sono identici, quindi per un normale redirect «questa pagina si è spostata» va bene 301. Scegli 308 quando reindirizzi qualcosa che non è solo una pagina su cui si fa clic, come un’API o un modulo, e la richiesta originale deve arrivare intatta.
Che cos’è davvero un 308
Quando un server porta il browser da un URL a un altro, contrassegna la risposta con un numero: un codice di stato. Alcuni di questi numeri significano «questa pagina è stata spostata definitivamente»:
- 301 — “Moved Permanently.” Il codice originale e più antico per i redirect permanenti. Esiste dai primi tempi del web.
- 308 — “Permanent Redirect.” Un codice più recente, aggiunto alla specifica nel 2015, che svolge lo stesso compito più una garanzia che il 301 non offriva.
Quella garanzia è l’intero motivo per cui esiste 308. Nella maggior parte dei casi, quando visiti una pagina, il browser invia una richiesta semplice chiamata GET: «dammi questa pagina». Ma quando invii un modulo o accedi, il browser invia un POST, cioè una richiesta che trasporta dati (quello che hai digitato). Con un 301 vecchio stile, il browser può tecnicamente trasformare il POST in un semplice GET durante il passaggio al nuovo URL, e di solito quei dati vanno persi. Un 308 non può cambiare il metodo in quel modo. Poiché il browser ripete la stessa richiesta invece di crearne una nuova, i dati normalmente arrivano insieme; ma se è importante per ciò che stai costruendo, come una chiamata API o un flusso di checkout, non fidarti soltanto della specifica: prova la richiesta reale e verifica che il corpo arrivi al nuovo URL.
Evidence for this claim RFC 7538 defines 308 Permanent Redirect as a permanent move whose redirect follow-up must not change the request method. Scope: HTTP semantics for 308 responses. Confidence: high · Verified: IETF: RFC 7538 §3 — 308 Permanent RedirectUn 308 danneggia la SEO?
No. La documentazione stessa di Google dice letteralmente che 308 è “Equivalent to 301.” (traduzione)
«equivalente a 301». Sono entrambi redirect permanenti ed entrambi trasferiscono i segnali di
ranking di una pagina al nuovo URL nello stesso modo. Anche Bing li tratta allo stesso modo. Non
esiste un bonus di ranking per usare 308, né una penalizzazione: la scelta riguarda il comportamento
tecnico descritto sopra, non le classifiche di ricerca. Evidence for this claim Google treats 308 as equivalent to 301 for Search and groups both as permanent redirects. Scope: Google Search processing; the two status codes remain semantically different for HTTP clients. Confidence: high · Verified: Google: HTTP status codes and Search Google: Redirects and Google Search
Quando dovresti usarne uno?
Per una pagina normale che è stata spostata, per un nuovo URL, un passaggio da http a https
o un cambio di dominio, il semplice 301 è la scelta facile e universale. Lo comprendono tutti
i browser, i plugin e gli strumenti di hosting.
Usa 308 in particolare quando ciò che stai reindirizzando non è una semplice pagina:
- Un’API chiamata da altro software.
- Un modulo o un accesso che invia dati.
- Un webhook, cioè un URL automatizzato a cui un altro servizio invia POST.
In questi casi non puoi permetterti che la richiesta venga declassata silenziosamente e che i dati vadano persi: 308 garantisce che non accada.
Vuoi la storia della specifica, le citazioni esatte di Google e Bing e snippet di server da copiare e incollare? Passa alla scheda Advanced.
TL;DR — Un 308 è il redirect permanente che preserva rigorosamente il metodo: lo stesso segnale di canonicalizzazione di un 301 (la documentazione di Google dice “Equivalent to
301”), ma garantisce che il client non cambi il metodo sul nuovo URL. Poiché un client conforme ripete la stessa richiesta invece di crearne una nuova, anche il corpo viaggia con essa. Esiste perché HTTP ha avuto per anni un codice temporaneo che preservava il metodo (307) prima di averne uno permanente: RFC 7538 (2015) ha colmato il vuoto e RFC 9110 ora rimanda direttamente a 308 dalla propria definizione di 301. Per la SEO i due sono intercambiabili (Illyes: Google «fonde» 308 con 301; Canel di Bing conferma la parità). Scegli 308 quando deve sopravvivere una richiesta diversa da GET, come una migrazione API/versione, un URL webhook o un POST di autenticazione/modulo, ma verifica la preservazione di metodo e corpo con il tuo client invece di darla per scontata dalla specifica. Altrimenti 301 resta il default: nel 2026 il supporto browser di 308 è forte, circa 96,5% o più secondo caniuse, ma RFC 9110 lo considera ancora giovane e non universalmente riconosciuto, e alcuni plugin CMS, pannelli edge e proxy legacy espongono solo 301/302/307.
Cosa significa 308, a livello meccanico
Un redirect permanente 308 porta lo stesso messaggio di un 301, questa risorsa ora si trova permanentemente a un nuovo URL, con un’aggiunta che il 301 non ha mai garantito: il client non deve cambiare il metodo della richiesta sulla destinazione. Poiché il client ripete la stessa richiesta invece di emetterne una nuova, il corpo viaggia con essa per un client conforme alla specifica. È una conseguenza della garanzia sul metodo, non una promessa certificata separatamente, quindi verificala end-to-end con il tuo client e server invece di darla per scontata. MDN descrive 308 come il codice che mantiene invariati metodo e, in pratica, corpo della richiesta durante il redirect, mentre 301 potrebbe non farlo.
La versione in linguaggio semplice che uso nella guida sui redirect di Ahrefs è: “A 308 redirect is the same as a 301 redirect, except it retains the HTTP method of the original request, GET or POST, when performing the redirect.” (traduzione) «Un redirect 308 è uguale a un redirect 301, salvo che conserva il metodo HTTP della richiesta originale, GET o POST, durante il redirect.» Oppure, ancora più breve, nella guida sui codici di stato HTTP: “308 Permanent Redirect – Has the same functionality as a 301 redirect, except you can’t switch between POST and GET.” (traduzione) «Redirect permanente 308: ha la stessa funzionalità di un redirect 301, salvo che non puoi passare da POST a GET.» Evidence for this claim RFC 7538 defines 308 Permanent Redirect as a permanent move whose redirect follow-up must not change the request method. Scope: HTTP semantics for 308 responses. Confidence: high · Verified: IETF: RFC 7538 §3 — 308 Permanent Redirect
Ecco la differenza in concreto. Supponiamo che un client invii con POST un ordine a /api/orders
con un corpo JSON:
POST /api/orders HTTP/1.1
Host: shop.example.com
Content-Type: application/json
{ "sku": "A-100", "qty": 2 }Se l’endpoint risponde con 301 e il client applica la vecchia concessione «puoi passare a GET», la richiesta può arrivare al nuovo URL come GET vuoto: il corpo è sparito e l’ordine è perso. Con 308 il client deve ripetere il POST sul nuovo URL; un client conforme porta con sé il corpo, quindi l’ordine va a buon fine. Confermalo nei log del tuo client e server (vedi la scheda Scripts) invece di presumere che valga universalmente. Questa è l’intera distinzione pratica: emerge solo quando la richiesta originale non era un semplice GET.
Perché esiste 308: la storia della specifica
È la parte che la maggioranza delle spiegazioni salta, ma è il modo più chiaro per capire il codice.
Prima venne 307. HTTP aveva già un redirect temporaneo che preservava il metodo, 307, molto prima di avere un equivalente permanente. La specifica centrale originale (RFC 7231) non definiva un corrispettivo permanente di 307. Esistevano quindi un codice temporaneo «mantieni il metodo» e un codice permanente «puoi cambiare il metodo» (301), ma nessun codice permanente «mantieni il metodo».
RFC 7538 colmò il vuoto. 308 fu aggiunto appositamente per essere il 307 permanente mancante: prima come RFC 7238 sperimentale (giugno 2014), poi standardizzato come RFC 7538 (aprile 2015). È un tappo per un vuoto reale, non un sostituto di 301.
La specifica attuale lo indica direttamente. La RFC 9110, la specifica odierna sulla semantica HTTP, documenta ancora l’ambiguità incorporata nel 301 e poi nomina 308 come soluzione nella definizione stessa di 301: un user agent “MAY change the request method from POST to GET for the subsequent request… If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.” (traduzione) «PUÒ cambiare il metodo della richiesta da POST a GET per la richiesta successiva… Se questo comportamento è indesiderato, si può usare invece il codice di stato 308 (redirect permanente).» Quella frase è l’intero motivo per cui esiste 308, direttamente dalla specifica autorevole. Nella sezione dedicata a 308, RFC 9110 aggiunge un’unica cautela onesta: il codice “is much younger (June 2014) than its sibling codes and thus might not be recognized everywhere.” (traduzione) «è molto più giovane (giugno 2014) dei codici fratelli e quindi potrebbe non essere riconosciuto ovunque.»
Quindi il comportamento POST-to-GET di 301 non è un bug: è una concessione documentata «per ragioni storiche» incorporata nella specifica, e 308 è il modo ufficialmente approvato per evitarla.
301 contro 308: la differenza pratica in una tabella
| Richiesta GET semplice | POST/PUT/DELETE con corpo | |
|---|---|---|
| 301 | Si comporta come 308 | Può essere declassato a GET; il corpo può andare perso |
| 308 | Si comporta come 301 | Metodo e corpo vengono ripetuti con garanzia |
| SEO signal | Uguale (permanente, consolida) | Uguale (permanente, consolida) |
La conclusione è questa: per la stragrande maggioranza dei redirect, che sono semplici GET, 301 e 308 fanno esattamente la stessa cosa. La garanzia serve solo quando è coinvolto un metodo diverso da GET con un corpo. (Per il confronto completo, vedi l’articolo dedicato a 301 contro 308.)
Google tratta 308 come 301 per la SEO?
Sì, senza ambiguità, ed è documentato. La documentazione sui codici di stato HTTP di Google
definisce 301 un redirect che Google “use[s]… as a strong signal that the redirect target should be processed,” (traduzione) «usa come segnale forte affinché la destinazione del redirect venga elaborata» e definisce 308 semplicemente “Equivalent to 301.” (traduzione) «equivalente a 301». Aggiunge una cautela sensata: “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (traduzione) «Anche se Google tratta questi codici allo stesso modo, ricorda che sono semanticamente diversi. Usa il codice appropriato per il redirect, così altri client possono trarne vantaggio.» In parole semplici, Google non ti penalizza per aver scelto quello «sbagliato», ma dovresti comunque usare quello corretto per la richiesta, perché altro software si basa sulla distinzione.
La guida di Google sui redirect colloca entrambi i codici nello stesso livello raccomandato: “The 301 and 308 status codes mean that a page has permanently moved to a new location.” (traduzione) «I codici di stato 301 e 308 significano che una pagina è stata spostata definitivamente in una nuova posizione.» Anche le indicazioni per il cambio di sito nominano esplicitamente 308 invece di trattarlo come un ripensamento di 301: per uno spostamento permanente raccomandano redirect HTTP permanenti «come 301 e 308».
Vale la pena sapere che questa parità non è sempre stata documentata. Gary Illyes ha detto che Google fonde internamente 308 con 301, e la copertura di Search Engine Roundtable descrive il momento in cui è entrato nella documentazione ufficiale come il passaggio da osservazione informale a comportamento su cui fare affidamento. I proprietari che qualche anno fa chiedevano «è davvero documentato?» avevano ragione a essere cauti, anche se il comportamento sottostante non è mai cambiato. Per il testo esatto di Google e dei suoi rappresentanti, la scheda Quotes contiene le citazioni verificate e i link profondi.
Bing tratta 308 come 301?
Sì. Bing non ha una pagina di documentazione dedicata che spieghi 308 come fa Google, ma Fabrice Canel di Microsoft lo ha confermato direttamente su X nel settembre 2024, come riportato da Search Engine Roundtable: Bing tratta i redirect 308 allo stesso modo dei redirect 301. È la dichiarazione autorevole di Bing; per la frase verbatim vedi la scheda Quotes.
Quando usare davvero un 308
È qui che si trova il caso autonomo a favore di 308, e quasi sempre riguarda una richiesta diversa da GET.
Endpoint API e migrazioni di versione. Spostare /v1/ a /v2/ o trasferire un host API è il
caso da manuale. I client raggiungono questi endpoint con POST/PUT/PATCH/DELETE e corpi reali. Un
308 garantisce che metodo e payload sopravvivano all’hop; un 301 rischia un declassamento silenzioso
che lascia la richiesta bloccata.
Migrazioni di siti con molti POST. Flussi di checkout, endpoint di accesso/autenticazione e destinazioni di azioni dei moduli inviano tutti dati con POST. Se uno di questi URL viene spostato durante una migrazione, 308 mantiene intatto l’invio dove 301 potrebbe non riuscirci.
Cambio degli URL webhook. Quando un altro servizio invia POST a un URL webhook che stai spostando, 308 dice al suo client HTTP di ripetere il POST al nuovo indirizzo con il corpo intatto, esattamente ciò di cui ha bisogno il consumer del webhook.
Il filo comune è questo: usa 308 ovunque perdere il corpo o far scendere silenziosamente il metodo a GET romperebbe la funzionalità, non soltanto sposterebbe un po’ di valore SEO.
Prima di attivare uno di questi casi, testalo come un’integrazione, non limitarti al codice di stato:
- Ripeti metodo e payload reali contro una copia staging del nuovo endpoint.
- Conferma se gli header di autorizzazione o i cookie devono essere trasferiti e verifica che lo siano davvero.
- Se la richiesta originale non è idempotente, per esempio un POST che crea un ordine, controlla gli effetti collaterali duplicati durante l’hop del redirect.
- Verifica che sopravviva la query string e l’header
Content-Type, non solo il corpo. - Verifica che il client reale, il mittente webhook, l’SDK API o il browser, segua automaticamente un 308 prima di ritirare il vecchio endpoint. Non tutti i client HTTP lo fanno per default.
Quando 301 resta il default pragmatico
Per tutto ciò che è un semplice GET, 301 resta il default sensato:
- Cambi ordinari degli URL di contenuti o pagine.
- Migrazioni da HTTP a HTTPS.
- Cambi di dominio e migrazioni standard del sito.
- Normalizzazione della slash finale e di
www/non-www.
Qui la richiesta è un semplice GET, quindi la garanzia di 308 non ti offre nulla e 301 vince per universalità. Nessuno dei due ha un costo SEO. Non migrare in massa i 301 esistenti a 308 inseguendo un aumento del ranking: quel vantaggio non esiste. Nella gerarchia delle preferenze per i redirect della guida sui redirect di Ahrefs, 308 e 301 siedono insieme al livello più alto, davanti a meta refresh, JavaScript e altri workaround: sono pari, non gradini di una scala.
Cautele su adozione e supporto: qual è davvero il rischio nel 2026
Il supporto dei browser non è più il rischio pratico di una volta. Secondo il monitoraggio attuale di caniuse, 308 ha circa il 96,5% o più di supporto globale. Controlla la tabella live per il numero odierno, perché cambia: le lacune visibili sono concentrate in browser morti da anni, come quelli precedenti a IE11, versioni antiche di Chrome/Firefox/Safari e il vecchio Android Browser. Se trovi ancora l’avviso «IE11 non funziona con 308», è obsoleto per il traffico mainstream.
La cautela più attuale riguarda gli strumenti. La lacuna onesta del 2026 è che non ogni livello espone un’opzione 308. Alcuni plugin CMS per i redirect, alcuni pannelli CDN/edge e alcuni proxy inversi o bilanciatori di carico più vecchi permettono ancora solo 301/302/307. Prima di impegnarti con 308, verifica che il livello che serve davvero il redirect possa emetterlo invece di declassarlo silenziosamente: la scheda Scripts contiene un comando su una riga per confermare il codice reale sul filo. La nota di RFC 9110 secondo cui è «molto più giovane… e potrebbe non essere riconosciuto ovunque» non riguarda solo i browser: è la cautela generale della specifica per il deployment di 308. Nel 2026 il suo impatto pratico si vede soprattutto negli strumenti, non nei browser mainstream, ma vale come cautela di base della specifica, non come qualcosa da considerare completamente superato.
Una nota non standard: “308 Resume Incomplete”
Una stranezza sottolinea quanto questo codice sia ancora giovane: nel mondo reale 308 non è soltanto un codice di redirect. L’API di upload di Google Drive riutilizza 308 con un significato completamente diverso, “Resume Incomplete”, per segnalare che un upload a blocchi si è fermato e che il client deve riprenderlo. John Mueller lo ha segnalato personalmente (vedi la scheda Quotes) e MDN documenta lo stesso uso non standard. Non cambia nulla sul 308 come redirect, ma mostra bene che 308 è un codice più recente e meno «stabilizzato» culturalmente del venerabile 301.
Catene e hop dei redirect si comportano allo stesso modo
Nulla di quanto detto cambia il funzionamento delle catene di redirect. Per default i crawler di Google seguono fino a 10 hop, anche se è un default e non una costante universale: la documentazione di Google nota che alcuni prodotti possono differire (lo strumento Ispezione URL, per esempio, non segue affatto i redirect). Controlla quindi il dato corrente nella documentazione Google invece di considerare 10 fisso per sempre. Il limite predefinito è identico sia per hop 301s sia per hop 308s. Se accatasti redirect, per esempio un vecchio percorso API che passa da due hop prima di arrivare, valgono le stesse regole per catene e loop: quando puoi, riduci la catena a un solo hop. Per la meccanica vedi l’articolo dedicato alle catene di redirect.
Riepilogo AI
Una sintesi della versione Advanced:
- 308 = permanente e rigorosamente preservante del metodo. Lo stesso messaggio «spostato definitivamente» di 301, più una garanzia che 301 non offre: il client non deve cambiare il metodo della richiesta sul nuovo URL. Un client conforme ripete la stessa richiesta, quindi il corpo viaggia con essa; verificalo end-to-end con il tuo client invece di fidarti soltanto della specifica.
- Equivalente SEO di 301. La documentazione di Google dice che 308 è “Equivalent to
301” (traduzione) «equivalente a 301»; Gary Illyes dice che Google fonde 308 con 301 e Fabrice Canel di Bing conferma che Bing li tratta allo stesso modo. Nessun vantaggio o penalizzazione di ranking. (Le dichiarazioni di Illyes, Mueller e Canel sono riportate da Search Engine Roundtable: confermale sulle fonti originali prima di trattarle come definitive.) - Perché esiste: HTTP ha avuto per anni un redirect temporaneo che preservava il metodo (307) prima di averne uno permanente. RFC 7538 (2015) ha colmato il vuoto. RFC 9110 rimanda a 308 dalla propria definizione di 301: un 301 «PUÒ cambiare il metodo della richiesta da POST a GET… per ragioni storiche» e «se questo comportamento è indesiderato, si può usare 308».
- Usa 308 per: migrazioni API/versione, spostamenti di URL webhook e flussi POST di moduli/autenticazione, ovunque perdere metodo o corpo romperebbe la funzionalità. Prima di cambiare, ripeti metodo e payload reali in staging e conferma header di autenticazione, idempotenza e comportamento del client nel seguire il redirect.
- Usa 301 per: spostamenti ordinari di pagina, HTTP→HTTPS, cambi di dominio e normalizzazione, cioè tutti i GET semplici in cui la garanzia di 308 non offre nulla e 301 vince per supporto universale.
- Adozione: il supporto browser è forte, circa 96,5% o più secondo caniuse, con lacune soprattutto nei browser morti da anni; RFC 9110 mantiene però la cautela generale «giovane, potrebbe non essere riconosciuto ovunque» per 308. Nel 2026 ciò emerge soprattutto come lacuna degli strumenti: alcuni plugin CMS, pannelli CDN/edge e proxy legacy espongono solo 301/302/307. Verifica che il livello di redirect possa emettere davvero 308 e ricorda che 308 è memorizzabile euristicamente, quindi un 308 errato o ritirato può restare nelle cache.
- Nota: Google Drive riutilizza «308 Resume Incomplete» per gli upload interrotti, un uso non legato ai redirect che mostra quanto il codice sia ancora giovane.
Documentazione ufficiale
Documentazione di fonte primaria su 308, proveniente dai motori di ricerca e dalla specifica HTTP.
- Codici di stato HTTP, errori di rete e DNS e Google Search — elenca 308 come “Equivalent to
301,” (traduzione) «equivalente a 301», con la cautela che sono semanticamente diversi ma trattati allo stesso modo e il limite di 10 hop. - Redirect e Google Search — “The
301and308status codes mean that a page has permanently moved to a new location.” (traduzione) «I codici di stato 301 e 308 significano che una pagina è stata spostata definitivamente in una nuova posizione.» - Spostamenti di sito con modifiche agli URL — raccomanda redirect HTTP permanenti «come 301 e 308» per uno spostamento permanente.
Specifiche HTTP
- RFC 9110 — Semantica HTTP — la specifica attuale. §15.4.9 definisce 308 e la cautela “much younger… might not be recognized everywhere” (traduzione) «molto più giovane… potrebbe non essere riconosciuto ovunque»; §15.4.2 definisce 301 e indica 308 come soluzione alla conversione POST-to-GET indesiderata.
- RFC 7538 — Codice di stato HTTP 308 (redirect permanente) — lo standard che ha introdotto 308 nell’aprile 2015, rendendo obsoleta la RFC 7238 sperimentale del giugno 2014.
Riferimenti
- MDN — redirect permanente 308 — semantica di preservazione di metodo/corpo e uso non standard «Resume Incomplete» di Google Drive.
- caniuse — codice di stato HTTP 308 — tabella del supporto browser globale (circa 96,5% o più).
Citazioni dalla fonte
Dichiarazioni documentate di Google, Bing e della specifica HTTP. Ogni link porta direttamente al passaggio citato nella pagina sorgente.
Google: l’equivalenza di base
“301 (moved permanently): Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed.” (traduzione) «301 (spostato definitivamente): Google segue il redirect e i sistemi Google usano il redirect come segnale forte affinché la destinazione venga elaborata.» — documentazione Google Search Central. Vai alla citazione
- “308 (moved permanently): Equivalent to
301.” (traduzione) «308 (spostato definitivamente): equivalente a 301». Vai alla citazione - “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (traduzione) «Google tratta questi codici allo stesso modo, ma ricorda che sono semanticamente diversi. Usa il codice appropriato per il redirect, così altri client possono trarne vantaggio.» Vai alla citazione
- “The
301and308status codes mean that a page has permanently moved to a new location.” (traduzione) «I codici di stato 301 e 308 significano che una pagina è stata spostata definitivamente in una nuova posizione.» Vai alla citazione
Gary Illyes, Google
- Sul modo in cui Google gestisce 308: “we just merge that with 301 so we really don’t care iirc.” (traduzione) «lo fondiamo semplicemente con 301, quindi non ci importa davvero, se ricordo bene». Riportato dalla copertura verbatim di Search Engine Roundtable, Google Officially Treats 308 Redirects As 301 Redirects (luglio 2021): conferma sulla fonte originale prima di trattarlo come definitivo.
John Mueller, Google
- Sull’uso non standard: “Google Drive uses a 308 redirect as a Resume Incomplete response to indicate to the client when an incomplete upload stalled. So that is a bit different. But you can use it as a normal redirect.” (traduzione) «Google Drive usa un redirect 308 come risposta Resume Incomplete per indicare al client quando un upload incompleto si è fermato. È quindi un po’ diverso, ma puoi usarlo come redirect normale.» Riportato da Search Engine Roundtable, Google può trattare i redirect 308 come i redirect 301 (maggio 2018): conferma sulla fonte originale prima di trattarlo come definitivo.
Fabrice Canel, Microsoft Bing
- “I accidentally deleted my reply, so confirming again: Bing treats 308 redirects the same as 301 redirects.” (traduzione) «Ho cancellato per errore la mia risposta, quindi confermo di nuovo: Bing tratta i redirect 308 allo stesso modo dei redirect 301.» Fabrice Canel su X (settembre 2024), riportato da Search Engine Roundtable, Bing tratta i redirect 308 allo stesso modo dei redirect 301: conferma sulla fonte originale prima di trattarlo come definitivo.
RFC 9110: la specifica sulla semantica HTTP
- Sul motivo per cui esiste 308, dalla definizione stessa di 301 nella specifica: “For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead.” (traduzione) «Per ragioni storiche, un user agent PUÒ cambiare il metodo della richiesta da POST a GET per la richiesta successiva. Se questo comportamento è indesiderato, si può usare invece il codice di stato 308 (redirect permanente).» Leggi RFC 9110
- Sull’adozione: 308 “is much younger (June 2014) than its sibling codes and thus might not be recognized everywhere.” (traduzione) «è molto più giovane (giugno 2014) dei codici fratelli e quindi potrebbe non essere riconosciuto ovunque.» Leggi RFC 9110
Questo redirect dovrebbe essere un 308?
Poiché 301 e 308 sono equivalenti per la SEO, non è una decisione di ranking: tutto dipende da una domanda: è coinvolta una richiesta diversa da GET con un corpo e il livello di redirect può emettere davvero 308? Procedi passo dopo passo.
Should I use a 308 for this redirect?
La versione breve è: GET semplice → 301; richiesta diversa da GET che devi preservare (e che il tuo stack può servire) → 308. Per la SEO i due sono intercambiabili, quindi decidono soltanto la questione del metodo e un controllo rapido: «i miei strumenti possono farlo davvero?».
Miti ed errori sul 308
Tratti direttamente dai failure mode che vedo più spesso.
“308 is better for SEO than 301.” (traduzione) «308 è migliore di 301 per la SEO». Falso. La
documentazione di Google dice “Equivalent to 301,” (traduzione) «equivalente a 301» e Illyes,
Mueller e Canel di Bing confermano la parità. Nessun motore tratta 308 come superiore per la SEO.
Sceglierlo riguarda la correttezza di metodo e corpo, mai un vantaggio di ranking.
“You should migrate all your existing 301s to 308s.” (traduzione) «Dovresti migrare tutti i redirect esistenti al nuovo codice». È puro churn senza alcun vantaggio di ranking. Se le richieste reindirizzate sono semplici GET, cioè la stragrande maggioranza dei redirect da pagina a pagina, 301 si comporta già allo stesso modo nella pratica. Riserva il passaggio ai redirect che trasportano davvero metodi diversi da GET.
“308 isn’t safe because it’s newer.” (traduzione) «308 non è sicuro perché è più recente». È un’esagerazione soprattutto per i browser: RFC 7538 ha più di dieci anni, Google e Bing confermano il supporto a livello di motore e caniuse mostra attualmente circa 96,5% o più di supporto browser, con lacune soprattutto in versioni morte da tempo. RFC 9110 mantiene la cautela generale «più giovane, potrebbe non essere riconosciuto ovunque» per 308; nel 2026 emerge soprattutto come lacuna degli strumenti, non dei client o dei motori di ricerca, ma non è una cautela completamente superata.
“A 301 will always mangle my POST/API request.” (traduzione) «301 rovinerà sempre la mia richiesta POST/API». È un’esagerazione. Molti client moderni preservano il comportamento abbastanza bene; il rischio reale documentato dalla specifica è la conversione specifica POST-to-GET che RFC 9110 consente «per ragioni storiche», quando un client applica quella concessione legacy. 308 rimuove del tutto il rischio; non sta correggendo un fallimento garantito e universale.
“308 is only ever a redirect code.” (traduzione) «308 è sempre e soltanto un codice di redirect». Non proprio. L’uso non standard di Google Drive, “308 Resume Incomplete”, riutilizza il codice per un upload interrotto, con un significato completamente diverso. Ricorda che l’uso reale di 308 è più giovane e meno stabilizzato di quello di 301.
Contrasto bonus: “permanent redirects lose PageRank.” (traduzione) «i redirect permanenti fanno perdere PageRank». Non è il tema centrale dell’articolo, ma merita una frase: la guida stessa di Google raggruppa 301 e 308 come redirect permanenti usati come segnale per elaborare il nuovo URL come destinazione canonica. È continuità, non una perdita di valore. Trattalo come comportamento di elaborazione documentato da Google, non come garanzia assoluta che «non si perda mai PageRank»; la formulazione più stretta sul segnale canonico è quella supportata dall’attuale fonte.
Confermare e implementare un 308
La cosa più utile che puoi fare con 308 è verificare il codice di stato reale sul filo: il problema più comune non è il browser, ma un livello di strumenti che declassa silenziosamente il 308 previsto a 301 (o non emette affatto un redirect).
Controlla il codice di stato con curl
# Show only the response headers; -I sends a HEAD request.
curl -sI https://example.com/old-path | head -n 1
# → HTTP/1.1 308 Permanent Redirect (what you want)
# → HTTP/1.1 301 Moved Permanently (your layer downgraded it)Per confermare che il metodo venga davvero preservato su un POST, che è l’intero punto di
308, segui il redirect con -L e osserva cosa arriva: -X POST insieme a --data resterà un
POST attraverso l’hop solo se il server ha restituito 308/307:
curl -sIL -X POST --data '{"sku":"A-100"}' \
-H 'Content-Type: application/json' \
https://api.example.com/v1/orders
# Inspect each hop's request line; a 308 keeps it "POST", a 301 may show "GET".Traccia un’intera catena
Se il percorso passa da più di un hop, stampa ogni codice di stato della catena per individuare un declassamento o un hop aggiuntivo imprevisto:
curl -sIL https://example.com/old-path \
| grep -iE '^HTTP/'
# Each line is one hop. Collapse chains to a single hop where you can.Controlla se un 308 è memorizzato prima di ritirarlo
RFC 9110 rende 308 memorizzabile euristicamente: un client o un intermediario può decidere di
metterlo in cache anche senza un header Cache-Control esplicito. Questo significa che un 308
errato (o da annullare) può continuare a essere servito dalla cache molto dopo la correzione della
regola all’origine. Prima di concludere che un redirect è «bloccato»:
- Prova sia con un client nuovo (privato/incognito, senza visite precedenti) sia con uno che ha già raggiunto il vecchio URL: client con e senza cache possono comportarsi diversamente.
- Controlla gli header
Cache-Control,ExpireseAgedella risposta concurl -sI. - Prova separatamente un GET semplice e una richiesta rappresentativa diversa da GET: il caching può comportarsi in modo diverso a seconda del metodo.
- Se devi ritirare un 308, svuota esplicitamente la cache edge/CDN: non presumere che basti rimuovere la regola all’origine e aspettati che alcuni client che hanno già memorizzato il vecchio redirect non lo richiedano di nuovo autonomamente.
Console Chrome DevTools: controlla un redirect dal browser
Incolla nella Console DevTools (F12 → Console) per vedere URL finale e stato senza lasciare la pagina. Un fetch con redirect manuale riporta direttamente lo stato della prima risposta:
// Reports the status of the first response (the redirect itself), not the target.
fetch('https://example.com/old-path', { method: 'HEAD', redirect: 'manual' })
.then(r => console.log('type:', r.type, 'status:', r.status || '(opaqueredirect)'));
// Follow the chain and log where it lands:
fetch('https://example.com/old-path', { method: 'HEAD', redirect: 'follow' })
.then(r => console.log('final URL:', r.url, 'final status:', r.status));Bookmarklet: un clic per sapere «cosa restituisce questo URL?»
Trascina un segnalibro con questo contenuto come URL, poi fai clic su una pagina qualsiasi per inserire un URL e visualizzare stato finale e URL di destinazione:
javascript:(function(){var u=prompt('URL to check:',location.href);if(!u)return;fetch(u,{method:'HEAD',redirect:'follow'}).then(function(r){alert('Final status: '+r.status+'\nLanded on: '+r.url);}).catch(function(e){alert('Error: '+e);});})();Implementa 308 sul server
Apache (.htaccess) — mod_rewrite con R=308 esplicito:
RewriteEngine On
RewriteRule ^old-path/?$ /new-path [R=308,L]nginx — return 308 è preciso e non ambiguo:
location = /old-path {
return 308 https://example.com/new-path;
}Express.js (Node) — passa il codice di stato a redirect():
app.all('/api/v1/orders', (req, res) => {
// 308 keeps the POST body intact on the way to /api/v2/orders
res.redirect(308, '/api/v2/orders');
});Next.js — imposta permanent: true e verrà emesso 308 (i redirect permanenti di Next sono 308):
// next.config.js
module.exports = {
async redirects() {
return [
{ source: '/api/v1/:path*', destination: '/api/v2/:path*', permanent: true },
];
},
};Il comportamento dei framework e del livello di hosting non è fisso tra le versioni. Per esempio,
la gestione dei redirect di Next.js può cambiare in base alla versione e al punto in cui il redirect
viene attivato: una voce redirects() in next.config.js, una chiamata permanentRedirect() in una
Server Action o una risposta in streaming non risolvono necessariamente tutti lo stesso codice di
stato. La stessa cautela vale per le versioni dei moduli Apache/nginx e per ogni livello CDN o proxy
davanti all’origine. Tratta ogni snippet sopra come punto di partenza, non come garanzia, e conferma
la documentazione corrente della tua versione.
Dopo averne distribuito uno, ripeti il controllo curl -sI sopra per confermare che sul filo passi
davvero un 308: è il passaggio di verifica che molti saltano e poi rimpiangono.
Strumenti per confermare un 308 sul filo
Strumenti gratuiti di Patrick
- Redirect Checker — traccia un URL o una piccola serie e
conferma che la prima risposta sia
308, che la destinazione sia corretta e che la catena finisca con una risposta finale sana. - Bulk HTTP Status Code Checker — controlla fino a 500 URL migrati, filtra risposte 301/302/307 inattese ed esporta catene o loop da correggere.
Dimostra il comportamento rigoroso quando conta
curlcon un payload di test sicuro — ripeti il metodo reale contro un endpoint staging o non distruttivo e segui il redirect. Conferma che la sorgente emetta 308.- Log dell’applicazione o dell’API gateway — verifica che la destinazione abbia ricevuto lo stesso metodo, content type e corpo. Un redirect checker dimostra stato e destinazione; i log di ricezione dimostrano che la preservazione del metodo ha funzionato end-to-end.
- Pannello Network di Browser DevTools — utile per moduli e flussi di autenticazione, ma prova separatamente client webhook e API perché l’interoperabilità è il motivo per scegliere 308 invece di 301.
- Ispezione URL di Google Search Console — per URL di pagine indicizzabili, conferma che lo spostamento permanente venga elaborato come un 301 e che la destinazione sia la canonica selezionata.
Mettiti alla prova: redirect permanente 308
Cinque domande rapide su cos’è un 308, perché esiste e come lo trattano i motori di ricerca. Scegli una risposta per ciascuna e poi controlla.
Risorse che vale la pena leggere
I miei articoli
- 11 tipi di redirect e il loro impatto SEO (con Joshua Hardwick) — la mia definizione di 308, l’idea che «per la SEO sono uguali, ma contano i moduli» e la gerarchia delle preferenze in cui 308 e 301 condividono il livello più alto.
- Codici di stato HTTP e il loro impatto SEO — dove lo dico chiaramente: 308 «ha la stessa funzionalità di 301… salvo che non puoi passare da POST a GET» e i 308 «vengono trattati come i 301 e consolidano in avanti».
- Una migrazione del sito richiede più di una checklist — perché in uno spostamento permanente scelgo 301 o 308, non 302/307.
- La guida per principianti alla SEO tecnica — il posto dei redirect nel quadro più ampio.
Dall’industria
- Redirect e Google Search — la guida ufficiale di Google sui redirect, che nomina insieme 301 e 308 come opzioni permanenti.
- Codici di stato HTTP, errori di rete e DNS e Google Search — la documentazione che definisce 308 «Equivalent to 301» con la cautela che sono semanticamente diversi.
- RFC 9110 — semantica HTTP — la specifica corrente; la definizione di 301 indica 308 come soluzione alla conversione POST-to-GET indesiderata.
- RFC 7538 — codice di stato HTTP 308 (redirect permanente) — lo standard che ha introdotto 308.
- MDN — redirect permanente 308 — semantica di metodo/corpo e nota sull’uso «Resume Incomplete» di Google Drive.
- caniuse — codice di stato HTTP 308 — la tabella del supporto browser che smentisce il mito di un 308 fragile.
- Bing tratta i redirect 308 allo stesso modo dei redirect 301 (Search Engine Roundtable) — la conferma del 2024 di Fabrice Canel per Bing.
- Google tratta ufficialmente i redirect 308 come redirect 301 (Search Engine Roundtable) — il contesto del «lo fondiamo semplicemente con 301» di Gary Illyes e del momento in cui la documentazione è diventata ufficiale.
Cronologia modifiche
Aggiornato il 8 ago 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.
Aggiornato il 17 lug 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.
Try it live
This is a real endpoint on this site — not a simulation.
Hit it from the button, open it in a new tab, or
curl -i it from your terminal, and the server answers with the actual status code this article is about.