Lo status code HTTP 307 indica al Client che la pagina che desidera raggiungere è stata spostata temporaneamente su un altro URL. La definizione ricorda quella del codice di stato 302, ma esistono delle differenze sostanziali da considerare.
È probabile che i codici di stato 301 e 302 ti siano familiari: vengono utilizzati quando un sito si “trasferisce” permanentemente o temporaneamente ad un altro indirizzo. Il codice di stato 307 è meno conosciuto, ma porta alcuni vantaggi differenti al server, rispetto al 302.
I codici di stato HTTP della tipologia 3xx
Quando entri in un sito avviene il processo seguente:
- Il Client (in questo caso il browser) avvia una richiesta al web server;
- Il web server risponde con un codice di stato. Ogni codice di stato è formato da tre cifre e indica se la richiesta è avvenuta con successo e dove o come si possono trovare le informazioni richieste se il sito è stato spostato.
Esistono diverse tipologie di codici di stato, distinguibili grazie alla prima cifra che li compongono: la 3xx riguarda i reindirizzamenti. Il codice più famoso di questa tipologia è il 301, che indica al Client (cioè al browser) che la pagina è stata spostata definitivamente ad un nuovo indirizzo. Il 302, invece, comunica uno spostamento temporaneo, così come il 307.
I codici della tipologia 3xx sono quindi fondamentali quando si effettua la migrazione di un sito per evitare perdite di ranking.
A cosa serve il codice di stato 307?
Il codice di stato 307 indica un reindirizzamento temporaneo (“Temporary Redirect”): questo significa che la pagina richiesta al browser è stata temporaneamente reindirizzata ad un altro URL. L’URL originale esiste però ancora e potrà essere riutilizzato in futuro.
Con un redirect 307 Googlebot continua a scansionare ed indicizzare la pagina vecchia, a differenza del redirect 301 (che invece porta il motore di ricerca ad aggiornare la pagina nell’Indice e a spostare il Link Juice verso il nuovo URL).
Il codice di stato 307 viene soprattutto utilizzato quando si effettuano dei lavori di manutenzione sul sito. Non è in cache per impostazione predefinita.
Codici di stato 307 e 302: le differenze principali
Esiste un aspetto fondamentale per cui il codice di stato 307 viene considerato il successore del 302.
In un 307, il Client non può cambiare il metodo di richiesta HTTP. Questo lo distingue dallo stato 302, dove il metodo di richiesta POST viene spesso cambiato in GET, che non è ottimale in termini di sicurezza.
D’altro canto il codice di stato 302 è retrocompatibile e più adatto anche ai sistemi vecchi.
Il codice di stato 307 e la SEO
Il comportamento di Google nei confronti del codice di stato 307 è uguale a quello del 302, per cui la vecchia pagina continuerà ad essere indicizzata.
Per questo motivo è importante usare questo codice solo per reindirizzamenti temporanei, preferendo il 301 per quelli duraturi in modo da evitare perdite di ranking.
Un caso speciale: redirect 307 nel browser
Un reindirizzamento 307 può anche essere fatto dal Client, cioè dal browser. Questo caso avviene se l’HTTP Strict Transport Security (HSTS) è attivato per un URL che l’utente richiede via HTTP. Questo meccanismo di sicurezza fa in modo che la connessione sia criptata in HTTPS, in modo da aumentare la protezione da parte dei cosiddetti attacchi “Man in the middle”.
Per Google, solo il lato server è decisivo: in questo caso, è preferibile un reindirizzamento 301 da HTTP a HTTPS.