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