Redirect 301: come evitare i reindirizzamenti inutili
Il redirect 301 è lo strumento giusto quando una pagina cambia indirizzo per sempre, e va usato senza esitazioni. Il danno arriva da un'altra parte: dai reindirizzamenti che nessuno ha deciso, nati da uno slash finale dimenticato, da un link scritto con http invece di https, da una migrazione fatta sopra un'altra migrazione. Su un sito con centinaia di pagine è un problema che si accumula senza fare rumore. Ognuno costa una richiesta in più prima che il visitatore veda la pagina e, sommati, rallentano il sito fino a creare catene e loop.
Immagina un caso tipico, a titolo di esempio. Un link in una newsletter punta a http://miosito.it/casa. Il server lo manda su https, poi su www, poi aggiunge lo slash finale: tre salti per arrivare a una pagina che esiste da sempre, e nessuno li ha scelti. Si sono accumulati negli anni, un intervento alla volta. È lo stesso problema che PageSpeed Insights segnalava con il controllo sui reindirizzamenti, oggi confluito in una voce diversa: per questo chi lo cerca può non trovarlo più con il vecchio nome.
In questa guida vediamo cosa significa il codice 301, quando usarlo e come si differenzia dal 302. Poi passiamo agli esempi .htaccess pronti all'uso e ai passaggi per WordPress, Joomla e PrestaShop. La parte centrale riguarda i reindirizzamenti inutili: come riconoscerli, come eliminare catene e loop, quanto pesano sulla velocità e con quali strumenti gratuiti li trovi. Un'avvertenza prima di toccare qualsiasi file: fanne una copia, perché un redirect sbagliato si prova prima di metterlo online e, come vedremo, i browser possono ricordarsi di un 301 anche dopo che lo hai tolto.
Cos'è un redirect 301 e quando serve
Il redirect 301 è un reindirizzamento permanente: il server risponde con il codice HTTP 301 (Moved Permanently) e indica il nuovo indirizzo della pagina. Reindirizzare significa mandare chi richiede un URL verso un altro URL. Ecco la risposta, con le intestazioni che contano:
HTTP/1.1 301 Moved Permanently
Location: https://www.miosito.it/newuri
Content-Type: text/html
Le informazioni stanno tutte nelle intestazioni, il corpo è tipicamente vuoto. Secondo la documentazione di Google, 301 e 308 sono permanenti: l'indicizzazione tratta la destinazione come canonica, ed è il segnale più forte che puoi dare.
Lo usi in tre scenari: una pagina spostata, un cambio di dominio (qui trovi la guida per cambiare dominio senza perdere il posizionamento) e il passaggio da http a https. L'immagine che usiamo con i clienti è quella del negozio che da via Roma 34 si trasferisce in via Trieste 89: se sul vecchio indirizzo non appendi il cartello «ci siamo trasferiti», chi arriva se ne va. Il redirect 301 è quel cartello.
Redirect 301 vs 302: quale usare
La scelta dipende da una domanda: la pagina torna al vecchio indirizzo? Se no, usa il 301. Se sì (promozione a tempo, test, spostamento provvisorio), il 302. Per Google i redirect temporanei non rendono la destinazione canonica e l'URL di partenza di solito resta nei risultati, quindi un 302 dimenticato su una migrazione definitiva ottiene l'effetto opposto a quello voluto.
| Codice | Tipo | Quando usarlo |
|---|---|---|
| 301 | permanente | pagina spostata per sempre, cambio dominio, passaggio a https |
| 302 | temporaneo | promozione a tempo, test, spostamento provvisorio |
| 308 | permanente | come il 301, ma il metodo non cambia (POST resta POST) |
Un dettaglio che si dimentica: secondo l'RFC 9110 il 301 è memorizzabile in cache di default, il 302 no salvo intestazioni esplicite come Cache-Control o Expires. Un 301 sbagliato può quindi restare nel browser dei visitatori anche dopo che l'hai tolto dal server. Meta refresh e JavaScript sono alternative, ma Google preferisce il redirect lato server: il rendering JavaScript può fallire e il redirect potrebbe non essere mai visto. Dopo un 301 i browser trasformano un POST in GET, per questo esiste il 308.
Come impostare un redirect 301: esempi .htaccess e CMS
Per fare un redirect 301 su un sito Apache aggiungi una regola con il flag R=301 nel file .htaccess; sugli altri sistemi dipende dal CMS.
Redirect 301 con il file .htaccess
Fai una copia del file prima di toccarlo. Il file .htaccess vale per Apache: su Nginx la regola va nella configurazione del server. Per una singola pagina:
RewriteEngine On
RewriteRule ^vecchia-pagina/?$ https://www.miosito.it/nuova-pagina [R=301,L]
Da http e senza www verso https con www in un salto solo:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.miosito\.it$ [NC]
RewriteRule ^(.*)$ https://www.miosito.it/$1 [R=301,L]
Dietro una CDN o un proxy %{HTTPS} può risultare sempre off e creare un loop, quindi la regola va provata.
Redirect WordPress con un plugin
Per le singole pagine basta un plugin dedicato, per esempio Redirection: indichi da dove a dove e scegli 301.
Redirect 301 su Joomla
Il componente Redirects del core agisce solo sugli URL in errore 404, non su pagine funzionanti, e richiede il plugin di sistema Redirect attivo. Per reindirizzare una pagina ancora online serve .htaccess: se preferisci affidarlo a un esperto Joomla, ci siamo.
Redirect 301 su PrestaShop
Nella pagina SEO & URL del back office trovi l'opzione di reindirizzamento all'URL canonico: nessun redirect, 301 o 302. La documentazione consiglia il 301 a modifiche finite. PrestaShop rigenera la parte di .htaccess tra i commenti ~~start~~ e ~~end~~: le regole personalizzate vanno fuori da quel blocco e prima di quelle che smistano le pagine, altrimenti possono sparire o non funzionare (vedi la nostra SEO per PrestaShop).
Come evitare i reindirizzamenti inutili
I redirect inutili si eliminano alla fonte, e quelli sullo stesso sito sono sotto il tuo controllo. Il più frequente è lo slash finale: https://www.miosito.it/casa dà un 301 verso https://www.miosito.it/casa/. Su Apache dipende da DirectorySlash (modulo mod_dir), attivo di default per le directory. Disattivarlo può esporre l'elenco dei file di una directory: la soluzione è scrivere i link interni già con l'URL definitivo.
Scegli una convenzione, con o senza slash, e applicala ovunque. Se le tue pagine non sono directory e vuoi gli URL senza slash, questa regola lo toglie in un solo salto:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]
Lo stesso vale per www e https: link interni e sitemap devono già puntare all'URL finale, così il redirect resta una rete di sicurezza e non un passaggio obbligato. Nelle newsletter e agli inserzionisti dai sempre l'URL finale: shortener e tracciamenti esterni sono più difficili da controllare. HSTS evita il salto da http a https nelle visite successive, il preload anche nella prima.
Come evitare redirect a catena e loop
Una catena nasce quando più regole si sommano nel tempo. Un esempio: http://miosito.it/casa, poi https://miosito.it/casa, poi https://www.miosito.it/casa, poi https://www.miosito.it/casa/. Il rimedio è un solo salto verso l'URL finale, più link interni aggiornati. Dopo ogni migrazione riscrivi le vecchie regole perché puntino alla destinazione definitiva, invece di aggiungerne una sopra l'altra.
Il loop è il caso estremo: A rimanda a B e B rimanda ad A. In Chrome compare ERR_TOO_MANY_REDIRECTS (troppi reindirizzamenti) e la pagina non si apre. Una causa possibile è la CDN vista sopra, con %{HTTPS} sempre off.
I crawler di Google seguono per impostazione predefinita fino a 10 salti. In Search Console «Pagina con reindirizzamento» non è di per sé un errore, mentre «Errore di reindirizzamento» comprende catena troppo lunga, loop, URL finale oltre la lunghezza massima e URL errato o vuoto nella catena. Sul valore SEO resta tranquillo: Gary Illyes ha dichiarato nel 2016 che i redirect 30x non fanno perdere PageRank. Il problema non è il valore perso, ma il tempo.
Redirect e Core Web Vitals: quanto pesano davvero
Ogni redirect richiede un'altra richiesta HTTP e, secondo la documentazione Chrome, può ritardare il caricamento di centinaia di millisecondi. Il TTFB (tempo al primo byte) non è un Core Web Vital, ma è la prima delle quattro parti dell'LCP, e un TTFB alto può dipendere da redirect multipli sul server. Come riferimento di massima il TTFB dovrebbe stare a 0,8 secondi o meno, mentre un LCP buono è di 2,5 secondi o meno per almeno il 75% delle visite.
In Lighthouse, il motore di analisi di PageSpeed Insights, il vecchio controllo «Avoid multiple page redirects» falliva con due o più redirect. Da Lighthouse 13 è confluito nell'insight Document request latency, che segnala il documento se la richiesta è stata reindirizzata una o più volte (insieme a server oltre 600 ms e risposta non compressa). Per il quadro completo c'è la nostra guida per migliorare la velocità del sito.
Come rilevare i redirect inutili con strumenti gratuiti
Per trovare i redirect inutili non servono strumenti a pagamento. Un redirect checker online mostra i salti di un singolo URL, mentre per un intero sito serve una scansione.
| Strumento | Cosa fa |
|---|---|
| curl | elenca tutti i salti di un URL da terminale |
| Chrome DevTools (scheda Network) | mostra le richieste e i redirect mentre la pagina si carica |
| Estensione Redirect Path | segnala i redirect mentre navighi |
| httpstatus.io | controlla online codice di stato e redirect di un URL |
| Screaming Frog (gratuito fino a 500 URL per scansione) | trova redirect temporanei e permanenti, catene e loop su tutto il sito |
Da terminale, questo comando mostra tutti i salti di un URL:
curl -sIL https://www.miosito.it/casa | grep -E "^HTTP|^[Ll]ocation"
Se tra la prima richiesta e la pagina finale compare più di un Location, hai una catena da accorciare. Se la scansione restituisce centinaia di URL e non sai da dove partire, possiamo guardarla insieme.
Inizia da qui
Il redirect 301 resta lo strumento giusto quando una pagina cambia indirizzo per sempre. Il danno arriva da quelli che nessuno ha deciso: slash finale, www, https e catene lasciate dalle migrazioni successive, che costano tempo di caricamento e, nei casi peggiori, un errore di reindirizzamento. Parti da curl o da una scansione sulle pagine più importanti, correggi prima link interni, sitemap e newsletter perché puntino all'URL finale, poi riduci ogni catena a un solo salto e prova la regola prima di metterla online. Se vuoi un parere sul tuo caso, contattaci per una verifica.

Stefano Rigazio
25+ anni nel digital per far crescere aziende B2B ed ecommerce senza gonfiare i costi. Strategia, AI, SEO e automazioni “utili” per migliorare conversioni e processi.
Metodo concreto, dati alla mano: ottimizzo ciò che hai già e lo faccio rendere di più.




Ultimi articoli pubblicati
Compilate il modulo, senza impegno, spiegando di cosa avete bisogno e sarete ricontattati, nel più breve tempo possibile, per parlarne in tutta tranquillità.
13043 Cigliano (VC)
Via Salussolia, 23
Tel: 3400032218
Email:


