Come fare i Redirect 301: Consigli e strumenti utili in ottica SEO

In questo articolo voglio parlare in modo semplice ma esaustivo del Redirect 301, importante per maneggiare i link del nostro sito, vecchio e/o nuovo che sia, anche in ottica SEO.
Arriva sempre il momento in cui facciamo aggiornamenti sostanziali al nostro sito internet, ritrovandoci a dover cambiare i link delle pagine che lo compongono. Questo capita quando eliminiamo delle pagine o degli articoli al nostro blog, quando cambiamo dominio, o soprattutto quando cambiamo la struttura di base. Chi ha un sito in Joomla! o vuole aggiornarne la versione dopo tanto tempo, chi invece vuole passare da Joomla! a WordPress e viceversa, o chi vuole unire due o più siti internet.
Questo comporta delle conseguenze anche dal punto di vista SEO, in particolar modo per la variazione dei link. Per evitare penalizzazioni da parte di Google è fondamentale effettuare dei reindirizzamenti permanenti delle pagine vecchie a quelle nuove, utilizzando semplici tecniche tanto care a Google: il Redirect 301. In questo articolo spiego brevemente come effettuare un Redirect 301 sia per i casi semplici che per quelli più complessi.
Rispetto agli altri articoli del mio blog, tratterò degli argomenti di stampo più tecnico, per cui cercherò di rendere accessibile alcuni concetti a quante più persone possibili, non esperte ma anche esperte, rivedendo alcune definizioni.
COSA SIGNIFICA REDIRECT 301
Su internet si trasmettono informazioni in diversi modi, ossia tramite dei protocolli. Quello più comune è il “modo” chiamato protocollo HTTP.
Quando navighiamo su internet il protocollo HTTP (ma non solo) gestisce la trasmissione di informazioni: il risultato della trasmissione viene codificato con dei codici numerici. Vi è mai capitato di navigare su un sito e vedere una pagina con il messaggio ERRORE 404? Sicuramente. 404 è il codice che indica pagina non trovata, o meglio: “mi hai chiesto di prendere informazioni accedendo alla pagina del link che mi hai segnalato ma a quel link non corrisponde nessuna pagina internet. Se siete curiosi di conoscere il significato di tutti i codici potete farlo da questo link: codici di stato HTTP.
Il codice 301 invece dice “ho cambiato un link del mio sito, se qualcuno vi accede reindirizzalo in modo permanente al nuovo link che ti segnalalo”.
Il redirect 301 serve proprio a questo: evitare gli errori 404, non graditi da Google, quando variamo alcuni link del nostro sito.
REDIRECT 301: SCENARI FREQUENTI
- Cambio nome dominio
- Cambio alcuni link particolari del sito
- Rinnovo il sito e cambio in blocco i link di una categoria di contenuti
- Vario in blocco i link che iniziano con un ID numerico
- Combinazioni tra il punto 3 e il punto 4
MODALITÀ DI IMPLEMENTAZIONE DI UN REDIRECT 301
Vediamo in generale quali sono le tipologie di implementazione di un Redirect 301, per poi spiegare le varie sintassi più avanti.
Nel caso di redirect di un intero sito, scenario in cui ci si trova quando cambiamo il dominio dello stesso, bisogna individuare il file principale del nostro sito, ricrearlo (facendo una copia del vecchio, è sempre buona prassi) e scriverci dentro pochissime righe di codice che corrispondono all’istruzione di reindiriccamento con codice 301. Nel caso di siti o CMS sviluppati in php, è in genere index.php.
In alternativa possiamo lasciare il file principale così com’è ed inserire l’istruzione del redirect in un file chiamato .htaccess.
Il redirect di uno o più link può essere implementato in due modi principali:
- Aggiungendo delle regole specifiche nei file .htaccess, file particolari presenti nello spazio fisico dedicato al nostro sito e fornitoci dal nostro fornitore di servizi di hosting (Aruba o Siteground per esempio).
- Utilizzando dei plugin o componenti specifici nel caso in cui utilizziamo dei CMS come Joomla!, WordPress, Prestashop, ecc…
PLUGIN O file .htaccess?
La scelta dipende dai vari scenari e dalle varie problematiche che possono emergere per i motivi più disparati.
L’utilizzo del file .htaccess è consigliabile quando i redirect da effettuare sono pochi e specifici. Tale soluzione, infatti, sebbene più immediata, può comportare alcuni problemi: il problema classico e più frequente lo si ha quando i reindirizzamenti da effettuare sono tanti: il server che ospita il nostro sito ci fornisce un errore dovuto al problema in questione e non ci mostra le pagine del sito web, in primis la home page. Tale problema può essere raggirato ma comporta conoscenze tecniche importanti che ci permettono di scrivere codice avanzato.
Nel caso in cui lo scenario in cui operiamo prevede l’implementazione di tanti redirect è consigliabile utilizzare specifici plugin, ovviamente nel caso in cui utilizziamo CMS noti, come ad esempio WordPress, Joomla!.
Un plugin degno di nota per chi utilizza WordPress è Redirection: molto semplice da utilizzare, permette di effettuare anche reindirizzamenti complessi tramite l’utilizzo di espressioni regolari.
Per Joomla è possibile utilizzare il componente nativo Redirect (sotto la voce Componenti) o il plugin ReDJ, che permette l’utilizzo di espressioni regolari.
In generale la soluzione dei plugin risulta quella più efficace e semplice, per motivi legati all’hosting o se abbiamo creato il nostro sito web con WordPress. In quest’ultimo caso infatti spesso capita che la scrittura diretta su file .htaccess non dia i risultati sperati (a meno di scritture di codice avanzato).
REDIRECT 301 DI UN INTERO SITO (#1)
Possiamo procedere in due modi: tramite file .htaccess o tramite scrittura di codice PHP, ASP, HTML, ecc..
CASO FILE .htaccess
Se volessi reindirizzare un vecchio sito, ad esempio
http://www.nstella.it
verso il nuovo
http://www.nicostella.it
andiamo nel file .htaccess di nstella.it e scriviamo il seguente codice
1 |
Redirect 301 /index.php http://www.nicostella.it/ |
o ache (è equivalente)
1 |
Redirect 301 http://www.nstella.it http://www.nicostella.it/ |
Possiamo anche utilizzare la sintassi alternativa
1 |
Redirect permanent /index.php http://www.nicostella.it/ |
Quindi la sintassi è:
Redirect 301 URL-VECCHIO-SITO URL-NUOVO-SITO
CASO SCRITTURA CODICE PHP O CASI ALTERNATIVI
In alternativa possiamo implementare il reindirizzamento tramite codice. Di seguito mostro solo il caso del codice PHP.
Per trasferire nstella.it, inserisco nel suo file index.php il seguente codice
1 2 3 4 |
<? Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.nicolastella.it/" ); ?> |
che dice: “nstella.it si è trasferito in modo permanente sul sito nicolastella.it. Reindirizzami lì!”
Per i reindirizzamenti con altri codici vi rimando a questa pagina completa del wiki di Giorgio Taverniti.
REDIRECT 301 SINGOLO DI ALCUNI LINK SPECIFICI (#2)
Nel caso in cui vogliamo reindirizzare dei singoli link specifici, la sintassi è la stessa del caso precedente.
Caso redirect con .htaccess di una pagina da vecchio dominio a nuovo dominio.
1 |
redirect 301 www.nstella.it/blog/siti-web/ www.nicolastella.it/blog/siti-internet/ |
Reindirizzo
www.nstella.it/blog/siti-web/
su
www.nicolastella.it/blog/siti-internet/
Caso redirect con .htaccess di una pagina sullo stesso dominio.
1 |
redirect 301 /blog/siti-web/ www.nicolastella.it/blog/siti-internet/ |
Reindirizzo
www.nicolastella.it/blog/siti-web/
su
www.nicolastella.it/blog/siti-internet/
Effettuare questo tipo di redirect con i plugin è semplicissimo ed intuitivo in quanto i plugin ci chiedono semplicemente qual è il vecchio link da reindirizzare e su quale link deve essere reindirizzato.
REDIRECT 301 DI UN BLOCCO DI LINK APPARTENENTI AD UNA CATEGORIA (#3)
Prendiamo ora in esame il caso in cui vogliamo effettuare un redirect 301 di un blocco di articoli di una categoria. Ad esempio:
voglio che tutti gli articoli del link
/blog/siti-web/
vengano reindirizzati su
/blog/siti-internet/
In questo caso utilizziamo una semplice regola delle espressioni regolari.
1 |
redirect 301 /blog/siti-web/(*) www.nicolastella.it/blog/siti-internet/($1) |
Cosa abbiamo fatto?
- Semplicemente (*) vuol dire: “tutto quello che c’è dopo /blog/siti-web/
- Memorizzamelo come variabile ($1)
- Fatto ciò il link che hai memorizzato usalo per reindirizzarmelo sul nuovo dominio, quindi mettilo in coda al link www.nicolastella.it/blog/siti-internet/
La stessa regola Vale per reindirizzamenti sullo stesso dominio
1 |
redirect 301 /blog/siti-web/(*) /blog/siti-internet/($1) |
Le espressioni regolari possono essere utilizzate anche nei plugin. Basta semplicemente seguire le istruzioni. Sul plugin Redirection di WordPress ci chiede di inserire il link di partenza, quello di arrivo, e ci chiede infine di fare un check della casella Regex, nel caso in cui abbiamo fatto uso di espressioni regolari (Regex = Regular Expression)
REDIRECT 301 DI LINK CON ID NUMERICO VERSO LINK SENZA ID (#4)
Se abbiamo una serie di link che iniziano con un numero? Questo è uno dei possibili scenari in cui ci ritroviamo se utilizziamo CMS come Joomla!
Supponiamo di avere una serie di link del tipo
www.nstella.it/blog/siti-web/124-realizzare-un-sito-internet
www.nstella.it/blog/siti-web/345-seo-e-web
ecc…
Sia nel caso in cui migriamo da un CMS ad un altro (da Joomla! a WordPress è un caso classico), sia nel caso in cui vogliamo ottimizzare gli url, togliendo quei fastidiosi numerini, possiamo effettuare un redirect 301 utilizzando le espressioni regolari.
1 |
redirect 301 /blog/siti-web/([0-9]+)-(.*) /blog/siti-internet/($2) |
Cosa abbiamo fatto?
- Prendi tutti i link dopo /blog/siti-web/
- Memorizza tutti i numeri nel caso appaiano ad inizio link, tramite la sintassi ([0-9]+) e memorizzali in una variabile chiamata $1, che non utilizzerò.
- Dopo i numeri ci sarà un trattino “-“
- Dopo il trattino ci sarà il resto del link (.*). Bene, memorizzalo in una variabile chiamata ($2)
- Riscrivimi il nuovo link, reindirizzandomi lì, utilizzando ($2) ossia quella parte di link senza numeri
Seguendo gli esempi precedenti :
Il link 124-realizzare-un-sito-internet verrà trasformato in realizzare-un-sito-internet;
124 sarà ($1)
realizzare-un-sito-internet sarà ($2)
il trattino che separa i numeri dal resto del link verrà ignorato
Questo è il caso in cui si fanno redirect sullo stesso dominio. Nel caso in cui si cambia dominio la sintassi è semplice:
1 |
redirect 301 /blog/siti-web/([0-9]+)-(.*) www.nicolastella.it/blog/siti-internet/($2) |
REDIRECT 301 MISTO: CASO COMBINAZIONE DEI CASI PRECEDENTI (#5)
A dire il vero il caso (#4) visto in precedenza è già una combinazione di (#3) e (#4)
Possiamo utilizzare più redirect per reindirizzare varie categorie che hanno articoli i cui link iniziano con un numero.
REDIRECT 301 IN WORDPRESS: PLUGIN CONSIGLIATO
Se non vuoi perdere tempo impostando i redirect nel file .htaccess puoi utilizzare un plugin WordPress implementato per la loro gestione.
Ce ne sono molti, basta effettuare una ricerca nella pagina dei plugin di WordPress. Io ti consiglio il plugin denominato Redirection.
CONSIGLI UTILI IN OTTICA SEO
- Tieni sotto controllo i link delle pagine e articoli del tuo sito tramite Google Search Console. Idividua i link non trovati e reindirizzali verso i nuovi link. Questo monitoraggio è fondamentale soprattutto se si effettua un restyling ed una riorganizzazione sostanziale del tuo nuovo sito web
- Fai attenzione alle pagine su cui fai i redirect 301! Una pagina deve essere reindirizzata su un’altra pagina che ha lo stesso tema. Per capirci meglio, se vogliamo reindirizzare una pagina che parla di redirect verso la home del nostro sito, potremo ricevere penalizzazioni in ottica SEO. Trovare quindi una pagina di destinazione che sia correlata a quella di partenza!
- Il punto 2 può portare ai soft redirect, soprattutto quando reindirizziamo diversi contenuti specifici verso la home page del nostro sito. Questa tecnica viene vista come Soft Redirect 404. Per approfondire l’argomento invito a leggere questo articolo interessante.