Redirect 301 htaccess

Redirect 301 htaccess best practice

Scritto da on . Postato in SEO

Vediamo come implementare il redirect 301 con htaccess e le principali regole di reindirizzamento che ci possono risultare molto utili per eliminare duplicazioni sistemiche, mantenere il posizionamento in seguito al restyling di un sito web (quando vi è l’esigenza di modificare gli URL) oppure quando si migra ad una nuova piattaforma (ad esempio da Joomla a WordPress).

Perché il redirect 301 è fondamentale

Il redirect 301 o spostamento permanente è il processo tramite il quale un URL viene reindirizzato verso un URL differente.

Ogni buon consulente SEO dovrebbe sapere che nel momento in cui si modifica la struttura delle URL di un sito, occorre necessariamente implementare i redirect 301 in modo che ogni vecchio URL deve ridirezionare verso il corrispondente nuovo URL al fine di:

  1. non generare errori 404 (restituiti dal server quando la risorsa richiesta non esiste);
  2. non vanificare l’effetto sul ranking di eventuali backlinks che puntano alle vecchie URL;
  3. non perdere il traffico generato dalla vecchie URL.

Evidentemente in pochi si preoccupano di questi aspetti, in quanto ancora oggi mi capita di dover intervenire su siti in cui la perdita di traffico dipende sistematicamente da una non corretta gestione dei redirect (o di una loro completa assenza).

Case history: qualche anno fa analizzando un’importante perdita di traffico sul sito di una multinazionale, mi resi conto di come i backlinks provenienti da altri siti (tra cui Wikipedia) puntavano a pagine che restituivano 404. Il danno si era verificato in seguito ad una migrazione da Joomla a WordPress poiché gli sviluppatori non si erano preoccupati di gestire questo aspetto con le dovute analisi. E’ stato sufficiente implementare dei semplici redirect 301 via htaccess verso le nuove URL per recuperare tutto il traffico perso in circa una mese.

Differenza tra redirect 301 e 302

Lato utente la differenza fra redirect 301 e 302 è impercettibile, poiché in entrambi casi si viene reindirizzati verso il nuovo indirizzo. Anche i motori di ricerca, abituati alla cattiva implementazione dei webmaster, considerano entrambi questi reindirizzamenti come definitivi. In linea teorica però:

  • Redirect 301: reindirizzamento permanente;
  • Redirect 302: reindirizzamento temporaneo (protocollo HTTP 1.0) o trovato (protocollo HTTP 1.1).

Quindi il 301 è il redirect corretto da implementare nella maggior parte dei casi.

Redirect 301 htaccess intero sito

Quando si ha l’esigenza di reindirizzare in modo permanente le richieste da un vecchio dominio verso uno nuovo, la regola più corretta da inserire nel file htaccess presente nella root del vecchio dominio è la seguente:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]

In questo modo si ottiene un reindirizzamento di massa di tutte le richieste dal vecchio dominio verso il nuovo dominio.

Redirect 301 htaccess singolo URL

Quando invece si vuole reindirizzare un vecchio URL verso un nuovo URL, la regola da inserire nell’htaccess è la seguente:

Options +FollowSymLinks
RewriteEngine on
Redirect 301 /vecchio-url.html http://www.dominio.it/nuovo-url.html

Questa regole permette di reindirizzare l’indirizzo http://www.dominio.it/vecchio-url.html verso l’indirizzo http://www.dominio.it/nuovo-url.html. In questo modo ogni volta che un client richiederà il file vecchio-url.html sarà automaticamente reindirizzato al file nuovo-url.html.

Redirect 301 htaccess da non www verso www e viceversa

Per prevenire duplicazioni sistemiche è corretto stabilire la versione canonica del dominio (detta anche dominio principale). A tal fine è buona prassi reindirizzare ogni URL senza www verso la versione con www (o viceversa). Per farlo la regola da inserire nel file .htaccess è:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dominio\.it$
RewriteRule ^(.*)$ http://www.dominio.it/$1 [R=301,L]

In questo esempio, ogni qual volta richiediamo la versione senza www (http://dominio.it) viene restituita la versione con www (http://www.dominio.it).

Se invece abbiamo stabilito che la versione canonica deve essere quella senza www, la regola da inserire è:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^dominio\.it$ [NC]
RewriteRule ^(.*)$ http://dominio.it/$1 [R=301,L]

In questo secondo esempio ogni qual volta richiediamo la versione con www (http://www.dominio.it) viene restituita la versione senza www (http://dominio.it).

Redirect 301 per eliminare index.php dall’URL

Un problema che hanno molti siti e CMS realizzati in php è la presenza della stringa /index.php nelle URL (chi utilizza Joomla e Magento sa bene a cosa mi riferisco). Il codice da inserire nel .htaccess per eliminare index.php è:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)index\.php$ /$1 [R=301,NC]

Conclusioni

Oggi abbiamo visto alcune buone regole per implementare il redirect 301 via htaccess. Naturalmente occorre testare il funzionamento di questi codici, i quali per poter funzionare potrebbe essere necessario variare le precedenti regole inserite nel proprio file .htaccess oppure le configurazioni del proprio server. Inoltre è consigliabile non copiare i codici indicati direttamente nel vostro file .htaccess, ma è preferibile copiarli prima in un file di testo per rimuovere la formattazione e solo in seguito nel vostro file htaccess. In caso contrario, le regole potrebbero non funzionare.

Se hai suggerimenti o per maggiori informazioni sui redirect 301 tramite htaccess non esitare ad utilizzare i commenti.

Commenti (41)

  • Roberto

    |

    Ciao Valentino,
    sul mio dominio attualmente ho WordPress ma voglio passare a Joomla. Ho caricato joomla in una sottocartella così: ilmiosito.it/joomla. Ora come posso fare per impostare joomla come sito principale (ilmiosito.it) senza spostare la cartella? Ringrazio in anticipo per l’eventuale risposta.

    Rispondi

    • Valentino Mea

      |

      Ciao Roberto,
      il tuo quesito è fuori target rispetto al topic di questo articolo (redirect tramite htaccess), ma provo comunque ad aiutarti.

      Per risolvere il tuo problema l’unico modo è cambiare la Document Root del server, dove dovrai impostare la cartella contenente Joomla. Non vedo ulteriori alternative se non vuoi spostare la cartella nella root principale (soluzione molto più semplice). In bocca al lupo!

      Rispondi

  • Gianni Sperti

    |

    Buongiorno Valentino,
    che regola devo inserire per poter trasformare tutte le url del mio sito da /pagina a /pagina.html. In pratica vorrei aggiungere il suffisso .html a tutte le mie pagine.
    Grazie e buona giornata!
    Gianni

    Rispondi

    • Valentino Mea

      |

      Buongiorno Gianni,
      sinceramente non comprendo le ragioni per cui dovresti aggiungere l’estensione .html alle tue URL.

      In ogni caso, per aggiungere l’estensione .html alle URL tramite htaccess, puoi provare con la seguente regola di riscrittura:

      RewriteCond %{REQUEST_URI} !^.*\.html$
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ $1.html [L,R=301]

      Naturalmente il funzionamento dipende dal contenuto del file htaccess, il quale potrebbe presentare regole in contrasto. Buon lavoro!

      Rispondi

  • Francesco

    |

    Buongiorno Valentino, grazie per l’utile articolo sul 301.
    Io ho un caso un po’ particolare da esporti: l’azienda per cui lavoro aveva un sito con estensione .it (esempio: Azienda.it). Per questioni che non sono riuscito ad approfondire (io non lavoravo ancora con loro), hanno perso il dominio .it e hanno rifatto il sito in .com.

    Ovviamente non hanno fatto nessun redirect e hanno perso molto del traffico precedente. In questi giorni sono riusciti a riacquistare il dominio.it che adesso punta al .com.

    La domanda è questa: come faccio, non avendo accesso al precedente DB, a effettuare un redirect 301 dal vecchio al nuovo dominio? E, considerando che è passato quasi un anno, è ancora utile farlo?
    Grazie per la tua attenzione.

    Rispondi

    • Valentino Mea

      |

      Buongiorno Francesco,
      effettivamente è incredibile che ancora oggi vi siano aziende che non gestiscano la migrazione SEO del proprio sito.

      Venendo ai tuoi quesiti:

      1. Ora che siete nuovamente proprietari del vecchio dominio con estensione .it puoi tranquillamente predisporre tutti i redirect 301 direttamente nel file htaccess di questo dominio;
      2. Visto che la mancata gestione della migrazione ha comportato una perdita di traffico, sicuramente vi sono degli asset da recuperare e quindi ha sicuramente senso gestire la migrazione anche a distanza di un anno. Naturalmente sarà la bravura di chi gestirà la migrazione a comprendere e gestire da quali asset dipendeva il traffico e la conseguente perdita.

      Spero di esserti stato utile. In bocca al lupo!

      Rispondi

  • Stefano

    |

    Buongiorno,
    il programma che ho utilizzato per fare il sito internet mi genera file .html. Non riuscendo a nascondere l’estensione ho provato a inserire il redirect 301 da vecchio link a nuovo link per fare in modo che digitando:

    www.sandroesteve.it/momenti

    non mi restituisca una pagina 404 ma bensì mi reindirizzi alla pagina corretta. E’ giusto fare così oppure genera qualche problema di seo e indicizzazione? Per la precisione ho inserito:

    Redirect 301 /vecchio-url.html http://www.dominio.it/nuovo-url.html

    Rispondi

    • Valentino Mea

      |

      Buongiorno Stefano,
      in realtà non comprendo perché dovresti rimuovere l’estensione .html, anzi non ne vedo alcun motivo.

      In ogni caso, per rimuovere le estensioni delle URL tramite htaccess, si può provare la seguente regola di riscrittura:

      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^([^\.]+)$ $1.html [NC,L]

      In merito alle problematiche relative alle SEO, ho già risposto in questo commento.

      Buon lavoro!

      Rispondi

  • Aristide Felli

    |

    Posso fare un redirect 301 di un file dinamico tipo ‘file.php?id=1’ verso ‘file-1’?

    Rispondi

    • Valentino Mea

      |

      Buongiorno Aristide,
      certo, puoi farlo implementando regole di riscrittura.

      Rispondi

  • marine

    |

    Ciao Valentino,
    che regola devo inserire nel mio sito ora che ho attivato un certificato SSL?
    Vorrei che in automatico tutte le chiamte verso http vadano direttamente in https.
    Grazie!
    marine

    Rispondi

    • Valentino Mea

      |

      Buongiorno Marine,
      per forzare il redirect da http verso https tramite htaccess, puoi provare la seguente sintassi:

      RewriteEngine On 
      RewriteCond %{HTTP_HOST} ^miosito\.it [NC]
      RewriteCond %{SERVER_PORT} 80 
      RewriteRule ^(.*)$ https://www.miosito.it/$1 [R,L]

      Il funzionamento dipende dal contenuto del file htaccess.
      Buon lavoro!

      Rispondi

  • Web Agency Fano

    |

    Buongiorno e grazie per l’articolo che mi ha aiutato a fare redirect 301.
    Se io dovessi far reindirizzare un gruppo di link che segue il /2016 in / (home). Mi spiego meglio:
    far reindirizzare tutti i link con /2016, quindi /2016/chi-siamo, /2016/dove-siamo, etc tutti in Miosito.it. Come posso mettere una regola del genere?
    Grazie

    Rispondi

    • Valentino Mea

      |

      Buongiorno,
      sono lieto che l’articolo ti sia risultato utile.

      Non mi è chiaro da quanto scrivi se ti occorre fare redirect 301 di tutte le URL della directory verso la homepage (tipico redirect many to one) oppure se devi fare redirect verso la risorsa equivalente senza la directory.

      In entrambi i casi è consigliabile implementare direttive RedirectMatch. A titolo esemplificativo, potresti provare qualcosa del genere:

      RedirectMatch 301 ^/2016/$ http://miosito.it/

      Naturalmente ti consiglio di provare in un’area di test, per verificare che funzioni.
      Buon lavoro!

      Rispondi

  • Salvo

    |

    Ciao Valentino cosa mi suggerisci per fare le cose in modo corretto senza perdere lato seo. Stiamo facendo un restyling di un sito e ci è stato chiesto di implementare il blog direttamente dentro al dominio principale con struttura dominio.com/blog. Prima era blog.dominio.com. Abbiamo migrato tutti gli articoli su dominio.com/blog. Il nuovo sito non è ancora online e quindi non abbiamo penalizzazioni da google al momento. Una volta finito il sito, il vecchio lo possiamo cancellare o deve rimanere online? Grazie mille.

    Rispondi

    • Valentino Mea

      |

      Buongiorno Salvo,
      partiamo dal presupposto che la migrazione di per se non comporta alcuna penalizzazione, ma sono i cambiamenti tecnici apportati al sito che se non gestiti in maniera corretta possono provocare la perdita di traffico organico.
      Venendo ora alla tua richiesta, se la migrazione è stata gestita in maniera corretta e tutti i redirect 301 sono stati implementati come scrivi, potete tranquillamente eliminare il sottodominio. Del resto se lo lasciate online rischiate una penalizzazione per contenuti duplicati.
      In bocca al lupo!

      Rispondi

  • Emiliano

    |

    Ciao Valentino, innanzitutto mille grazie per i tuoi scritti, son davvero molto utili per chi come me appassionato da anni, si sta avvicinando al mondo della SEO. Volevo a tal punto chiederti un informazione: ho il sito della mia attività, per motivi burocratici sono costretto a spostare il sito intero cambiando il dominio ad esempio Dominio.com su Nuovodominio.com. Ho modificato un pò la grafica e reso soprattutto responsive il sito.

    La struttura delle pagine è rimasta la medesima, ho soltanto aggiunto qualche nuova pagina ma magari con l’ottimizzazione on-site riuscirò col tempo a far salire la pagina. Ora non voglio perdere il traffico finora ottenuto anche poichè è il mio veicolo e vetrina online (di prodotti di falegnameria), a tuo avviso occorre inserire un htaccess nel vecchio dominio con la regola:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]

    Oppure per ogni singola pagina (anche se fondamentalmente invariata dal punto di vista della struttura e nuova solo per grafica)?

    Dopo occorre segnalar a Google dalla Search Console questa modifica? Considera che ho attivato una nuova mail e vorrei gestir la console con la nuova mail eliminando la vecchia, è semplice il passaggio? Molte Grazie

    Rispondi

    • Valentino Mea

      |

      Buongiorno Emiliano,
      in merito alla prima domanda che poni, se come scrivi la struttura delle URL è completamente invariata, è sufficiente inserire la regola specificata nel paragrafo “Redirect 301 htaccess intero sito” e che tu ripeti nel commento.

      In merito alla seconda richiesta, puoi leggere la Guida a Google Search Console, dove nel paragrafo “Cambio indirizzo” è spiegato tutto ciò che ti occorre.

      Buon lavoro!

      Rispondi

  • Simona

    |

    Buongiorno, io ho un problema con un sito, ho creato il file htaccess per reindirizzare tutte le URL con .html finale verso URL senza html. Ad esempio:

    www.dominio.it/url.html deve diventare www.dominio.it/url

    Ho usato questa regola e funziona in parte:

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ (/[^\ ]+)\.html\  [NC]
    RewriteRule ^ %1 [L,R=301]

    Le URL che presentano trattini come ad esempio:

    www.dominio.it/url-url.html

    rimangono invariate.

    Sbaglio qualcosa nella regola?

    Grazie e buona giornata

    Rispondi

    • Valentino Mea

      |

      Buongiorno Simona,
      a titolo di suggerimento, ritengo che l’errore sia nella regola RewriteRule.

      In ogni caso per poter rispondere al tuo quesito e implementare correttamente i redirect 301, occorre conoscere tutto il contenuto del file htaccess per verificare le altre regole che racchiude e che potrebbero andare in conflitto con quelle che hai inserito.

      Buon lavoro!

      Rispondi

  • lorenza

    |

    Buonasera,
    ti ringrazio per questa guida, e vorrei sapere cosa ne pensi di questa complicazione in cui mi sono imbattuta proprio operando un Redirect 301 htaccess intero sito, così come tu descrivi.
    Ho notato usando Majestic e anche Semrush, che il redirect viene registrato come un backlink e a mio avviso si incappa in qualche complicazione, infatti:
    majestic me lo da come backlink privo di anchor text, (e capisce che si tratta di un redirect), mentre semrush mi segnava questo backlink come “toxic” nonostante il sito da cui parte il redirect sia sempre stato sano e quindi mi domando se non sia un problema operare questo redirect senza inserire un anchor text come si fa in genere con i link. Che ne pensi?
    Grazie per la risposta

    Rispondi

    • Valentino Mea

      |

      Buongiorno Lorenza,
      non mi è chiaro cosa intendi quando scrivi “operare questo redirect senza inserire un anchor text come si fa in genere con i link”, forse stai facendo confusione sull’argomento.

      Effettuare un redirect da un dominio all’altro di per sé non provoca alcuna complicazione. Le complicazioni si verificano quando si gestiscono le migrazioni senza avere le competenze tecniche e strategiche per farlo.

      Quindi se la migrazione SEO è stata gestita correttamente e non è stato perso traffico, continuerei a monitorare senza preoccuparmi ulteriormente in tal senso.

      In merito a Semrush, il tool Backlink Audit è in beta e non gli darei molto credito. In ogni caso occorre analizzare il caso concreto per poter rispondere alla tua richiesta.

      Buon lavoro!

      Rispondi

  • Mirco

    |

    Buongiorno,
    ho fatto una migrazione di dominio e ho impostato sul sito vecchio il file htaccess con il redirect 301 link per link.
    Purtroppo in alcuni casi il redirect non funziona, sai spiegarmi perché?
    Ti faccio un esempio. Sul sito Vecchiodominio.com c’è il seguente file htaccess:

    # Inizio .htaccess
    RewriteEngine On
    RewriteBase /
    Redirect 301 /bacche-goji-biologiche/ http://www.nuovodominio.com/alimentazione/bacche-goji-biologiche/
    

    però se digito l’indirizzo:

    http://www.vecchiodominio.com/bacche-goji-biologiche/
    va in 404 su
    http://www.nuovodominio.com/bacche-goji-biologiche/

    in cosa sbaglio?

    Grazie

    Rispondi

    • Valentino Mea

      |

      Buongiorno Mirco,
      non mi è chiaro se hai migrato un intero sito verso un nuovo dominio, oppure se ti interessa reindirizzare soltanto una URL del vecchio dominio verso il nuovo dominio:

      1. Nel 1° caso è consigliabile utilizzare la sintassi presente nel paragrafo “Redirect 301 htaccess intero sito”
      2. Nel 2° caso non vedo errori nella sintassi e dovrebbe funzionare tutto correttamente. Probabilmente ti basta svuotare la cache del browser.

      Buon lavoro!

      Rispondi

  • Mauro

    |

    Ciao Valentino e grazie dei consigli. Avrei bisogno di chiederti un’informazione: dopo che imposto i redirect dal vecchio al nuovo dominio e dopo che segnalo a Google, dalla Search Console, che ho cambiato dominio…cosa faccio con il dominio vecchio e tutti i suoi contenuti? Devo sempre lasciarli online affinché il redirect funzioni oppure posso eliminare tutto lasciando solo l’htaccess che è quello che da le indicazioni? Grazie!

    Rispondi

    • Valentino Mea

      |

      Ciao Mauro,
      da quello che scrivi, ritengo che sia sufficiente lasciare il file htaccess con le regole relative ai redirect 301 mentre il resto lo puoi tranquillamente eliminare. Prima di procedere è consigliabile sempre conservarsi un backup per ripristinare lo stato precedente in caso di problemi. Buon lavoro!

      Rispondi

  • Stefano

    |

    Ciao, lavoro per una community noprofit che ha acquistato un nuovo gtld e vorrebbe “riunire” tutti i siti sparsi nel mondo che dovrebbero far parte della community.
    Il problema principale è che il servizio di hosting sarebbe meglio rimanesse quello vecchio per ognuno di essi.
    Quali sono le linee guida secondo te per come muoversi in una situazione del genere?

    Rispondi

    • Valentino Mea

      |

      Ciao Stefano,
      dal punto di vista dei redirect 301, questi possono essere effettuati sia dallo stesso server che da altri hosting. Mentre le linee guida relative ad una migrazione di molteplici siti sono molto numerose e specifiche in base al singolo caso, dove bisogna valutare attentamente sia fattori on-site che off-site per non arrecare danni al traffico. Per maggiori informazioni puoi leggere la pagina relativa alla migrazione di un sito lato SEO.

      Rispondi

  • Claudia

    |

    Ciao Valentino, io ho in giro per il web un sacco di link riferiti al vecchio dominio claudiagalli.it che ho tentuto e su cui ho fatto il redirect al nuovo claudiagalli.net. Quando clicco appunto su uno di questi vecchi link mi manda sì al nuovo sito ma con il 404. Vorrei evitare il 404. Devo reindirizzate tutti i link uno a uno? Ho fatto una prova, ma non funziona… Nel .htaccess del vecchio dominio ho inerito questo:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://claudiagalli.net/$1 [R=301,L]
    
    Options +FollowSymLinks 
    RewriteEngine on 
    Redirect 301 /1/il_sogno_lucido_9641147.html http://www.claudiagalli.net/blog/

    Cosa sbaglio?

    Ti ringrazio anticipatamente per l’aiuto!

    Claudia

    Rispondi

    • Valentino Mea

      |

      Ciao Claudia,
      in linea di massima rimandare backlink a pagine che erogano status code 404 non è corretto. Analizzando quanto scrivi, l’errore è nel fatto che la seconda sintassi va inserita nel file .htaccess del nuovo dominio e non del vecchio, come hai fatto tu. Sperando di esserti stato di aiuto, in bocca al lupo!

      Rispondi

  • Mauro

    |

    Io avevo il sito su https ma per via di alcune esigenze pubblicitarie ho scelto di portarlo su http. Ho già fatto tutto ma ho il problema dei backlink che puntanto al vecchio url https.
    Ho provato decine di codici su htaccess ma niente. Il redirect 301 da HTTPS a HTTP non funziona.
    Mi viene il dubbio che non sia possibile farlo.. Sapete aiutarmi?

    Rispondi

    • Valentino Mea

      |

      Ciao Mauro,
      è possibile farlo, ma dipende da molteplici aspetti, tra cui:

      1. il contenuto del file htaccess;
      2. se si tratta di un hosting condiviso;
      3. se hai ancora il certificato di sicurezza o meno;
      4. ecc.

      Quindi la questione non è immmediata e semplice da risolvere (ma penso che te ne sia già reso conto). In bocca al lupo!

      Rispondi

  • Francesco

    |

    Grazie Valentino per le indicazioni e i consigli.
    Nel nostro caso veniamo da una migrazione mal gestita di un sito ecommerce: nomeecommerce.com su piattaforma Spreecomemrce (ugh!) nato nel 2010-2011, a cui era stato agganciato, con buoni risultati, un blog in: nomewpblog.nomeecommerce.com
    E’ successo che nella migrazione verso un ecommerce con piattaforma WP+WOOcommerce meglio gestibile che con quella SpreeCommerce, si è passati ad unico dominio: ecommerce.com e la parte blog è diventata quindi nativa e coerente.
    Problema? Il sito ha dei problemi di visibilità su Google, e ad indicatore dei problemi il fatto che il monitoraggio sulle keywords dei post del blog by Google Alert non segnala più la pubblicazione dei post.
    Tornando al tema del redirect 301 la domanda è questa: i vecchi backlinks che puntavano ad un vecchio path (e potrebbero essercene in giro vari, il problema è collezionarli tutti) possiamo ancora recuperarli agli occhi di Google con una corretta gestione del 301 oppure, dovremmo redirigerli uno ad uno, oppure ancora dobbiamo darli per persi non avendolo fatto tempestivamente all’atto della migrazione?
    Grazie
    Francesco

    Rispondi

    • Valentino Mea

      |

      Buongiorno Francesco,
      in questo caso occorre fare principalmente 3 considerazioni:

      1. le precedenti URL portavano traffico al sito? Se la risposta è positiva prima di pensare ai backlink è necessario concentrarsi su questo aspetto per individuare la perdita e recuperare il traffico peduto.
      2. che tipo di traffico (direct, referral, ecc.)? In base alla risposta le decisioni in merito cambiano di molto.
      3. quali di questi backlinks conviene recuperare? Per dare risposta a questa domanda occorre creare una link profile completa (recuperando tutti i backlinks) e poi svolgere una link pruning (analisi dei backlinks).

      Da punto di vista tecnico una volta implementati i redirect recuperi naturalmente anche i backlinks. In base alla quantità di redirect e ai topic di ogni singola risorsa bisognerà poi valutare se creare regole di reindirizzamento (che consentono di reindirizzare più URL contemporaneamente) oppure se reindirizzare singolarmente le URL.

      Il vostro caso, ti renderai conto, è piuttosto complesso da rispondere in un commento. Ci sono tutta una serie di analisi (piuttosto complesse) e considerazioni da fare per darti le risposte che cerchi. Ritengo che nel vostro caso rivolgersi ad un professionista, che sia io o qualcun altro, è la scelta più efficace. Spero di esserti stato comunque utile. In bocca al lupo!

      Rispondi

      • Francesco

        |

        Grazie Valentino, sì in effetti è complesso rispondere esaustivamente in un post, direi che ci sentiamo settimana prossima per valutare un audit. Grazie ancora. Francesco

        Rispondi

  • Lorenzo

    |

    Ciao, io sto allestendo un e-commerce con wordpress/woocommerce e desidererei usare il protocollo HTTPS, volendo redirigere tutto il traffico verso le pagine, sia quelle attuali che quelle future, verso il protocollo HTTPS secondo te va bene una regola de genere?

    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.dominio.com/$1 [R,L]
    

    Se no come la potrei correggere? Il sito è in costruzione quindi non ha bisogno dei redirect che ho letto nell’articolo.
    Ciao e grazie

    Rispondi

    • Valentino Mea

      |

      Ciao Lorenzo,
      la regola che hai indicato per effettuare un redirect 301 da http verso https è sostanzialmente corretta, quindi dovrebbe funzionare. Potresti specificarla ulteriormente trattandosi di un reindirizzamento permanente sostituento [R,L] con [R=301,L]. Buon lavoro!

      Rispondi

  • francesco

    |

    Ciao Valentino,

    ti ringrazio per questo utilissimo articolo! avrei però una domanda:
    ho realizzato un nuovo sito modificando nel contempo il dominio. In questo caso quindi dovrei non solo fare un redirect da un dominio all’altro ma indicare anche le nuove url del nuovo sito.
    Posso usare questo codice?

    Options +FollowSymLinks 
    RewriteEngine on 
    Redirect 301 /vecchio sito.com/vecchio-url1 http://www.dominio.it/nuovo-url1
    Redirect 301 /vecchio sito.com/vecchio-url2 http://www.dominio.it/nuovo-url2
    

    ed indicare il redirect per ogni pagina?

    Grazie mille!

    Rispondi

    • Valentino Mea

      |

      Ciao Francesco,
      ti confermo che bisogna implementare prima il redirect dal vecchio dominio verso il nuovo dominio e poi in seguito, nel file .htaccess del nuovo dominio, implementare i redirect dalle precedenti URL verso le nuove URL. Il codice che hai scritto però non è corretto, trovi quello giusto nel paragrafo “Redirect 301 htaccess singolo URL” di questo articolo. Buon lavoro!

      Rispondi

      • red

        |

        Ciao, anche io sto pianificando lo spostamento un sito da un dominio all’altro, quindi ho bisogno di essere certa di alcuni passaggi. Se ho ben capito:

        1. nel .htaccess del vecchio dominio devo indicare:

        Options +FollowSymLinks 
        RewriteEngine on 
        RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]
        

        in modo tale che ogni accesso al vecchio dominio, indipendentemente dalla pagina, venga reindirizzato al nuovo dominio, un questo modo tutti gli accessi del vecchio dominio atterrano sul nuovo

        2. mentre nel .htaccess del nuovo dominio devo mettere, per ogni pagina qualcosa del tipo:

        Options +FollowSymLinks 
        RewriteEngine on 
        Redirect 301 /vecchiodominio.it/pag1 http://www.dominio.it/pag1.html
        Redirect 301 /vecchiodominio.it/pag2 http://www.dominio.it/pag2.html
        

        andando avanti così per ogni url?

        Io avrei bisogno di reindirizzare ogni pagina del tipo vecchiodominio.it/page1 su nuovodominio.it/page1, poichè sto facendo proprio un cambio di dominio.
        Ho inoltre un’altra domanda da fare, scusa ma non ho mai fatto questa cosa, il file htaccess è un unico file per tutto il sito vero? E’ associato al dominio o all’hosting? Nel senso questi reindirizzamenti posso farli rinnovando solo il dominio o devo necessariamentente rinnovare anche l’hosting?

        Rispondi

        • Valentino Mea

          |

          Ciao,
          perdonami se approvo solo ora il tuo commento. Provo a rispondere a tutti i tuoi dubbi sui redirect 301 tramite file htaccess. Tieni presente che ogni hosting ha regole precise e quindi quello che scrivo potrebbe non essere corretto in assoluto.

          In merito al primo punto è tutto corretto, hai ben compreso l’articolo.

          In merito al secondo punto non necessariamente devi inserire la sintassi per i redirect 301: ad esempio se il sito è identico e/o presenta le medesime URL del vecchio dominio, non c’è bisogno. Se invece le URL sono differenti occorre inserire le direttive di reindirizzamento, che possono essere implementate una per volta tramite direttive Redirect (solo se sono poche URL) oppure tramite direttive RedirectMatch che permettono di utilizzare espressioni regolari (nel caso di reindirizzamenti molteplici).

          In merito al file htaccess, questo file è presente nella root principale del tuo hosting il quale a sua volta è associato ad un dominio che punta ad esso (ogni dominio per essere visibile deve puntare ad un hosting). Quindi se il vecchio dominio punta al vecchio hosting devi rinnovare anche l’hosting altrimenti potresti far puntare il vecchio dominio al nuovo hosting e non devi rinnovare il vecchio hosting (perdonami il gioco di parole).

          Spero di esserti stato utile. In bocca al lupo!

          Rispondi

Lascia un commento