Guida Completa ai Redirect 301
Tutto quello che devi sapere per gestire i reindirizzamenti in modo corretto,
preservare l'autorità SEO e non perdere nemmeno un punto di ranking durante migrazioni e ristrutturazioni.
🔀 Cos'è un Redirect 301?
Un redirect 301 è un reindirizzamento HTTP permanente: comunica al browser
e ai motori di ricerca che una risorsa è stata spostata definitivamente a un nuovo URL.
Il codice 301 fa parte dello standard HTTP/1.1 e significa letteralmente
"Moved Permanently".
Quando Googlebot incontra un 301, trasferisce la quasi totalità del
link equity (PageRank, autorità) dall'URL di origine a quello di destinazione.
Google stesso stima questo trasferimento vicino al 100%, anche se storicamente
ci fu un periodo in cui si parlava di una piccola perdita. Ad oggi, per uso pratico SEO,
considera il 301 come trasferimento pieno di autorità.
⚠️ Il redirect 301 è permanente: i browser lo mettono in cache.
Usalo solo quando sei certo che il vecchio URL non tornerà mai più attivo.
⚖️ 301 vs 302 vs altri redirect: differenze critiche
-
✅ 301 — Moved Permanently
Spostamento definitivo. Trasferisce il link equity. Usato per migrazioni, cambio dominio,
consolidamento URL, passaggio HTTP→HTTPS. Il bot aggiorna il suo indice con il nuovo URL.
-
🔄 302 — Found (Temporary)
Spostamento temporaneo. Googlebot mantiene l'URL originale nell'indice e
non trasferisce il link equity in modo stabile. Usato per test A/B,
manutenzione, campagne temporanee. Mai usare il 302 al posto del 301.
-
🔁 307 — Temporary Redirect (HTTP/1.1)
Come il 302 ma rispetta il metodo HTTP (GET, POST). Usato principalmente in contesti
applicativi, non in ottica SEO.
-
♾️ 308 — Permanent Redirect
Come il 301 ma mantiene il metodo HTTP originale. Raro in SEO, usato in API REST.
-
🧠 Meta Refresh
Reindirizzamento lato HTML, lento, non trasferisce link equity in modo affidabile.
Evitalo sempre in ottica SEO.
-
⚡ Canonical (rel="canonical")
Non è un redirect, ma un suggerimento. Se vuoi consolidare URL duplicate
senza reindirizzare gli utenti, usa il canonical. Se vuoi trasferire tutto, usa il 301.
⚙️ Quando usare un Redirect 301
- 🌐 Migrazione di dominio — da vecchio-dominio.it a nuovo-dominio.it, 301 su ogni singola URL
- 🔒 HTTP → HTTPS — reindirizza tutte le varianti HTTP alla versione sicura
- 🗂️ Ristrutturazione URL — cambio slug, permalink, categoria di appartenenza
- 🔗 Consolidamento pagine duplicate — mergi più URL simili verso quella canonica
- 🏠 Normalizzazione del dominio — www → non-www (o viceversa), slash finale, maiuscole
- 🗑️ Eliminazione di pagine — se una pagina viene rimossa, 301 verso la più rilevante invece di rispondere 404
- ✂️ Accorciamento URL — URL lunghi e brutti verso versioni pulite e SEO-friendly
- 🏷️ Cambio di estensione — da .php o .html verso URL senza estensione
💻 Implementazione su Apache (.htaccess)
# Redirect singola pagina
Redirect 301 /vecchia-pagina/ https://www.tuosito.it/nuova-pagina/
# Redirect intero dominio (migrazione)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^vecchio-dominio\.it [NC]
RewriteRule ^(.*)$ https://www.nuovo-dominio.it/$1 [R=301,L]
# HTTP → HTTPS (tutti i protocolli)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# www → non-www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.tuosito\.it [NC]
RewriteRule ^(.*)$ https://tuosito.it/$1 [R=301,L]
# non-www → www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Redirect con pattern (es: sezione rinominata)
RewriteRule ^blog/(.*)$ /articoli/$1 [R=301,L]
# Rimozione slash finale
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]
💻 Implementazione su Nginx
# Redirect singola pagina
location = /vecchia-pagina/ {
return 301 https://www.tuosito.it/nuova-pagina/;
}
# HTTP → HTTPS
server {
listen 80;
server_name tuosito.it www.tuosito.it;
return 301 https://$host$request_uri;
}
# www → non-www
server {
listen 443 ssl;
server_name www.tuosito.it;
return 301 https://tuosito.it$request_uri;
}
# Migrazione dominio completa
server {
server_name vecchio-dominio.it www.vecchio-dominio.it;
return 301 https://www.nuovo-dominio.it$request_uri;
}
# Redirect sezione con regex
location ~ ^/vecchia-categoria/(.*)$ {
return 301 /nuova-categoria/$1;
}
💻 Implementazione in PHP e CMS
<?php
// Redirect 301 in PHP puro
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.tuosito.it/nuova-pagina/");
exit();
// Redirect condizionale (es: dopo migrazione DB)
$nuovi_url = [
'/vecchia-pagina-a/' => '/nuova-pagina-a/',
'/vecchia-pagina-b/' => '/nuova-pagina-b/',
];
$current = $_SERVER['REQUEST_URI'];
if (isset($nuovi_url[$current])) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $nuovi_url[$current]);
exit();
}
?>
// WordPress — functions.php
add_action('template_redirect', function() {
if (is_page('vecchia-pagina')) {
wp_redirect(
home_url('/nuova-pagina/'), 301
);
exit;
}
});
🚀 Migrazione di dominio: procedura passo per passo
La migrazione di dominio è l'operazione SEO più rischiosa in assoluto. Seguire questa procedura riduce drasticamente il rischio di perdita di ranking:
-
1. Preparazione (settimane prima)
Esporta il crawl completo del sito (Screaming Frog). Documenta tutte le URL attive,
le pagine con backlink, le keyword posizionate. Prepara la mappa di redirect 1:1.
-
2. Configurazione del nuovo dominio
Lancia il nuovo sito in staging, verificane la struttura, ottimizza i contenuti.
Non lasciare il vecchio dominio online durante i test con lo stesso contenuto.
-
3. Implementa i 301 su ogni URL
Crea redirect 1:1 da ogni vecchia URL alla corrispondente nuova.
Mai redirigere tutto verso la homepage: Google lo interpreta come redirect soft 404.
-
4. Aggiorna Google Search Console
Usa la funzionalità "Cambio di indirizzo" in GSC per notificare Google della migrazione.
Invia la nuova sitemap.xml.
-
5. Aggiorna i backlink principali
Contatta i siti con i backlink più autorevoli e chiedi di aggiornare i link direttamente.
Riduci la catena di redirect per i link più importanti.
-
6. Monitora per 3-6 mesi
Controlla GSC ogni settimana: errori di copertura, calo impressioni, anomalie nel crawl.
Mantieni i redirect attivi per almeno 12 mesi.
⛓️ Redirect Chain e Redirect Loop: come evitarli
Una redirect chain si verifica quando una URL non punta direttamente alla destinazione finale
ma passa per uno o più URL intermedi:
A → B → C → D
Ogni hop aggiuntivo comporta una perdita progressiva di link equity, rallenta il
tempo di risposta per l'utente e consuma crawl budget. Google segue le chain fino a un massimo
di 5 hop, dopodiché smette di seguirle.
Un redirect loop si verifica quando la destinazione del redirect punta nuovamente
all'URL di partenza: A → B → A. Il browser mostra un errore
"Too many redirects" e la pagina è irraggiungibile.
Regola d'oro: ogni redirect deve essere sempre diretto, da A alla destinazione finale Z, senza passaggi intermedi. Dopo ogni modifica, ricrawla il sito per verificare le chain.
- 🔍 Usa Screaming Frog → Reports → Redirect Chains per mapparle tutte
- 🛠️ Aggiorna sempre i redirect esistenti quando aggiungi una nuova destinazione
- 📋 Mantieni un file di mappatura aggiornato con tutte le redirect attive
👻 Attenzione ai Soft 404 da Redirect
Un soft 404 si verifica quando un redirect porta l'utente (e il bot) a una pagina
che tecnicamente risponde con un codice 200 OK, ma che di fatto non contiene contenuto
pertinente alla richiesta originale.
L'errore più comune: redirigere tutte le pagine eliminate o non trovate verso la homepage.
Google legge questo pattern come un segnale di bassa qualità e nel tempo può devalutare il sito.
Come comportarsi invece:
- ✅ Se esiste una pagina correlata → 301 verso quella pagina specifica
- ✅ Se esiste la categoria padre → 301 verso la categoria
- ✅ Se non esiste nulla di correlato → rispondi con un vero 404 o 410 (Gone)
- 🚫 Mai 301 generico verso la homepage per comodità
💎 Redirect 301 e Link Equity: come funziona il trasferimento
Il link equity (o "link juice") è l'autorità trasferita da un URL a un altro
tramite i link. Quando implementi un 301, Google trasferisce l'autorità accumulata dall'URL
originale — backlink, PageRank storico, segnali comportamentali — verso il nuovo URL.
Il processo non è istantaneo: Google deve ricrawlare la pagina originale, processare il redirect,
aggiornare l'indice e rivalutare l'URL di destinazione. Questo può richiedere da giorni a settimane
a seconda dell'autorità del sito e della frequenza di crawl.
- 📈 Backlink verso URL redirectata → il PageRank fluisce verso la destinazione
- ⏳ Tempo di consolidamento → attendi 4-8 settimane prima di valutare l'impatto
- 🔗 Aggiorna i link interni → non lasciare che i tuoi link interni passino per redirect: puntali direttamente alla destinazione finale
- 🌍 Richiedi aggiornamento backlink → contatta i siti con link autorevoli e chiedi di aggiornare l'URL puntato direttamente
⚠️ Errori critici da non commettere mai
-
🏠 Redirect di massa verso la homepage — il soft 404 più comune. Google lo rileva e penalizza. Ogni 301 deve puntare alla pagina più pertinente disponibile.
-
🔄 Usare il 302 al posto del 301 — il 302 non trasferisce link equity e mantiene il vecchio URL nell'indice. Errore fatale nelle migrazioni.
-
⛓️ Creare redirect chain — ogni hop intermedio diluisce l'autorità e rallenta il crawl. Aggiorna sempre i redirect esistenti prima di aggiungerne di nuovi.
-
🗑️ Rimuovere i redirect troppo presto — mantienili attivi almeno 12 mesi, idealmente sempre. I backlink sul web non si aggiornano da soli.
-
📭 Non aggiornare i link interni — ogni link interno che passa da un redirect è uno spreco di crawl budget e una micro-perdita di link equity.
-
🔒 Redirigere HTTP verso HTTPS ma lasciare risorse miste — il mixed content blocca il browser e vanifica il redirect. Aggiorna ogni risorsa (immagini, script, CSS) alla versione HTTPS.
-
🧪 Non testare prima del deploy — usa sempre un ambiente di staging o testa le regole .htaccess con strumenti online prima di applicarle in produzione.
-
📋 Non documentare i redirect — senza un registro aggiornato, dopo 6 mesi non ricordi più cosa punta dove. Usa un foglio condiviso con: origine, destinazione, data, motivo.
🔒 Gestione corretta HTTP → HTTPS
La migrazione a HTTPS richiede di gestire quattro varianti dello stesso dominio e portarle tutte a un'unica versione canonica:
# Le 4 varianti da unificare:
# http://tuosito.it
# http://www.tuosito.it
# https://tuosito.it
# https://www.tuosito.it ← destinazione finale canonica
# .htaccess — soluzione completa
RewriteEngine On
# Step 1: forza HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Step 2: forza www (dopo HTTPS)
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
⚠️ Dopo la migrazione HTTPS: aggiorna la sitemap, il tag canonical, il profilo GSC, gli URL nei backlink principali e tutti gli asset interni al sito.
📊 Come monitorare i redirect con Google Search Console
Dopo aver implementato i redirect, Google Search Console è il tuo pannello di controllo principale:
-
🗺️ Copertura dell'indice — controlla le URL escluse per motivo "Reindirizzato".
Se ci sono URL che non dovrebbero essere redirectate, intervieni subito.
-
🔍 Ispezione URL — inserisci il vecchio URL per vedere come Google lo vede:
se il redirect è corretto, mostrerà l'URL di destinazione come URL canonico dichiarato da Google.
-
📈 Performance → Query — monitora impressioni e click sulle keyword principali
nelle settimane successive alla migrazione. Un calo temporaneo è normale; una caduta prolungata
indica problemi nei redirect.
-
🔗 Link → Link esterni — verifica che i backlink più autorevoli
vengano riconosciuti sul nuovo URL di destinazione nel tempo.
-
📬 Cambio di indirizzo — in caso di migrazione di dominio, usa
questo strumento specifico per accelerare il processo di riconoscimento da parte di Google.
Disponibile nelle impostazioni di GSC.
✅ Best practice avanzate da esperto SEO
- 📐 Mappa 1:1 sempre — ogni vecchio URL deve avere il suo redirect specifico verso la pagina più pertinente, non verso la homepage
- 📋 Tieni un registro permanente — documento condiviso con tutte le redirect: origine, destinazione, data implementazione, motivo
- 🔗 Aggiorna i link interni subito — dopo ogni redirect, aggiorna tutti i link interni che puntavano al vecchio URL. Non lasciare che passino per il redirect
- ⏳ Non rimuovere mai i redirect — i backlink sul web non si aggiornano automaticamente. Un redirect rimosso = link equity persa per sempre
- 🧪 Testa prima del deploy — usa Redirect Checker online o Screaming Frog per simulare ogni regola prima di applicarla
- 🔍 Ricrawla dopo ogni modifica — usa Screaming Frog per mappare chain, loop e redirect non previsti immediatamente dopo ogni deploy
- 📊 Monitora GSC per 3 mesi — ranking, impressioni, errori di copertura vanno osservati con frequenza settimanale nelle prime settimane post-migrazione
- 🌍 Informa i webmaster chiave — per i 10-20 backlink più autorevoli, contatta il webmaster e chiedi di aggiornare il link direttamente: è la mossa che più accelera il recupero dei ranking
🛠️ Strumenti indispensabili per i redirect
- 🕷️ Screaming Frog SEO Spider — crawl completo, rilevamento chain, loop, soft 404 e redirect non previsti
- 🔬 Redirect Checker (redirect-checker.org) — testa singole URL e visualizza ogni hop della catena con i codici HTTP
- 🔎 Google Search Console — monitoraggio copertura, ispezione URL, strumento cambio di indirizzo
- ⚡ Ahrefs / Semrush — Site Audit per rilevare redirect chain, loop e backlink che puntano a URL redirectate
- 🧰 htaccess tester (htaccess.madewithlove.com) — testa le regole RewriteRule senza toccare il server
- 🌐 HTTP Status Checker — verifica in batch lo stato HTTP di centinaia di URL contemporaneamente
- 🔐 SSL Labs (ssllabs.com) — dopo la migrazione HTTPS, verifica la corretta configurazione del certificato
📋 Checklist SEO Redirect 301
- ✅ Ogni vecchio URL ha un redirect specifico verso la pagina più pertinente (non la homepage)
- ✅ Tutti i redirect sono 301 (non 302, non meta refresh)
- ✅ Non esistono redirect chain: ogni redirect è diretto A → Z
- ✅ Non esistono redirect loop
- ✅ I link interni puntano direttamente alle nuove URL (non attraverso redirect)
- ✅ La sitemap.xml è aggiornata con le nuove URL
- ✅ I tag canonical sono aggiornati alle nuove URL
- ✅ HTTP e www/non-www sono normalizzati verso un'unica versione canonica
- ✅ GSC è aggiornata con la nuova proprietà / strumento cambio indirizzo usato
- ✅ Il registro dei redirect è documentato e aggiornato
- ✅ I redirect sono stati testati in staging prima del deploy
- ✅ Il monitoraggio GSC è pianificato per le prossime 8 settimane
- ✅ I backlink più autorevoli sono stati notificati del cambio URL