Regole generali per il Redirect

A volte ti potrà capitare di dover gestire i Redirect 301 (reindirizzamenti definitivi) all’interno di un progetto web realizzato con CMS generici quali WordPress, Drupal, Joomla, Magento, Prestashop, con CMS customizzati ma anche con altre tecnologie o linguaggi di programmazione.

In entrambi i casi dovrai fare attenzione a rispettare le principali regole utili a una buona ottimizzazione per la SEO.
In questo approfondimento ti fornirò alcune spiegazioni generali spiegandoti quali sono le soluzioni che potrai utilizzare per ottenere un risultato ottimale utile anche durante la fase iniziale di analisi di un sito web tramite il SEO Audit.

Il significato del Response Code 301

Il Response Code 301 è un codice di stato HTML.
Quando un server viene interrogato da un qualsiasi programma esterno (un browser come Firefox o Chrome, gli spider dei vari motori di ricerca, altri programmi che scansionano i web server), allo scopo di ottenere informazioni su una particolare risorsa (pagina web, file, immagine, etc), risponde a questa richiesta indicando al programma stesso un codice univoco che caratterizza lo stato nel quale si trova, in quel momento, la risorsa richiesta.

Nel caso di un codice 301 il server avvisa il programma che il contenuto richiesto (come detto: un testo, una pagina, una categoria, una semplice immagine, etc) non è più rintracciabile presso l’url indicata ma è stato spostato in modo definito (permanente) in un’altra posizione (altra url).
Successivamente a questa risposta il server si occupa di completare la richiesta indirizzando direttamente il richiedente alla nuova url creata.

torna all’indice

Quando è necessario fare un Redirect 301?

Potrebbe essere necessario dover utilizzare questo comando in alcune specifiche occasioni:

  • migrare un sito da un dominio a un altro dominio.
    Esempio: http://www.dominio1.it –> http://www.dominio2.it
  • migrare da una directory a un dominio principale (e viceversa).
    Esempio: http://www.subdirectory.dominio.it → http://www.dominio.it
  • migrare da una directory a una nuova directory.
    Esempio: http://www.subdirectory1.dominio.it → http://www.subdirectory2.dominio.it
  • impostare la struttura di un dominio da www a senza www.
    Esempio http://www.dominio.it → http://dominio.it
  • modificare le url (non solo riferite al titolo) di un post, di una categoria, di una tag, di un Custom Post Type, di una semplice immagine
  • modificare un link che, dopo un controllo effettuato con tools di analisi quali Google Search Console o Screaming Frog, risulti interrotto e cioè che punti a url non più funzionanti
  • modificare contenuti che, dopo un controllo sia manuale che con gli stessi precedenti tools, generano un codice d’errore 404 in quanto non più trovati o non più esistenti

torna all’indice

I Redirect 301 e WordPress

Veniamo ora a un caso molto comune nella realizzazione di un sito, alla sua ottimizzazione o alla possibile migrazione di contenuti.
Ti potrebbe capitare di dover gestire, nello specifico di questi casi sulla piattaforma WordPress, uno o più reindirizzamenti. Potrai farlo, essenzialmente, in due modi:

  1. gestione e modifica attraverso il file .htaccess;
  2. utilizzo di uno specifico plugin.

E’ possibile anche gestire la procedura tramite codice di programmazione (per esempio realizzato con il linguaggio PHP) ma in questo articolo preferisco non considerare questa opzione.

Questo perché prevede la modifica / aggiunta di comandi al codice sorgente da gestire in modo avanzato sempre con il Tema Figlio (Child Theme) ma anche perché, come ti spiegherò in seguito, la lettura dell’ .htaccess è la prima operazione che viene eseguita sul server e di conseguenza il primo caso è certamente la procedura più veloce e performante.

torna all’indice

Il file .htaccess di WordPress

Prima di guidarti alla sua modifica ti spiego in cosa consiste e a cosa serve questo particolare file.
Innanzitutto il significato del nome .htaccess corrisponde a hypertextaccess ed è caratteristico dei server che usano la tecnologia Apache (web server, nello specifico) con sistema operativo Linux.

L’.htaccess deve sempre essere scritto in questo modo (con il punto iniziale) e deve essere posizionato nella root principale del sito in oggetto.

ATTENZIONE: alcuni editor di testo aggiungono, se non correttamente impostati, estensioni di tipo .htm, .html, .txt; si ottiene quindi un file del tipo .htaccess.txt / .htaccess.html
Questa impostazione è errata e impedisce il corretto funzionamento del file vanificando le modifiche e il suo utilizzo.

Ricordati che le regole in esso inserite hanno validità per tutte le directory e sottodirectory del sito; può anche accadere che in una o più di queste sottodirectory sia stato inserito un ulteriore file .htaccess contenente regole differenti da quelle presenti nella root del sito. In questo caso le regole del primo file verranno sovrascritte e quindi sostituite da quelle del secondo file.

Vediamo ora la logica di funzionamento: quando il software che gestisce un server Apache riceve una richiesta inviata da uno spider di un motore di ricerca (Googlebot, per semplificare) per prima cosa controlla che nel sito sia presente il file .htaccess.
Se lo trova automaticamente legge le direttive in esso contenute e le esegue in modo sequenziale.
E’ per questo che possiamo far eseguire differenti operazioni tramite queste file.

Ti presento ora una struttura tipica del file che WordPress crea in automatico quando viene installata all’interno di un nuovo sito e che viene memorizzata sempre all’interno della directory principale denominata /httpdocs

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

torna all’indice

Fare un Redirect 301 con .htaccess

Ecco invece come fare un reindirizzamento di tipo 301 utilizzando l’.htaccess. La sintassi che puoi utilizzare è di questo tipo:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Redirect301 /vecchiaURL/ http://www.sito1/nuovaURL

Come puoi notare, alla chiusura della regola mod_rewrite ho aggiunto una semplice linea di comando che contiene il codice specifico per il Redirect. Nello specifico:

  1. Redirect301 → viene dichiarato un comando che ha lo scopo di reindirizzare secondo il percorso proposto
  2. /vecchiaURL/ → indica il path del contenuto che vogliamo reindirizzare.
    IMPORTANTE: inserisci solo il percorso relativo omettendo quello assoluto
  3. http://www.sito1/nuovaURL → indica il percorso assoluto che contiene il nuovo contenuto

Quindi è possibile aggiungere sequenzialmente tutte le istruzione utilizzando la stessa sintassi. Puoi farlo per reindirizzare articoli, categorie, tag, Custom Post Type, immagini, file, etc. Si tratta ovviamente di un lavoro che può risultare lungo e complesso ma che permette di ottenere ottimi risultati lato SEO.

Potresti voler anche utilizzare le tante espressioni regolari del ModuleRewrite di Apache allo scopo di impostare, in riferimento al Redirect 301, differenti regole e filtri più generali.

torna all’indice

Fare un Redirect 301 con plugin

Come anticipato in precedenza è possibile ottenere il medesimo risultato utilizzando, invece dell’aggiunta delle linee di comando all’interno del file .htaccess, plugin specifici.

Questa procedura permette di velocizzare le varie operazioni aiutando, in parte, il compito allo sviluppatore / gestore del sito web.
Ha però alcune controindicazioni:

  • l’aggiunta di ulteriori plugin rallenta la velocità del sito;
  • si tratta di una procedura meno professionale e che potrebbe comportare, in un secondo momento problemi nel caso la gestione del sito e della sua struttura non fosse più affidata a te direttamente;
  • questi plugin devono sempre essere monitorati e aggiornati all’ultima versione stabile;
  • l’utilizzo dipende anche da come sono stati realizzati e sviluppati con il rischio di avere conflitti con il resto della struttura di WordPress;
  • le regole impostate tramite plugin vengono processate in un secondo momento rispetto a quelle contenute nell’.htaccess

Se, nonostante questi dubbi, hai ugualmente deciso di utilizzare un plugin te ne voglio indicare due molto utili.

Il primo è il famoso e molto utilizzato Yoast SEO. Si tratta di un plugin gratuito che però, per essere apprezzato al massimo delle sue funzionalità, richiede l’acquisto di una licenza annuale.

Fino ad alcuni mesi fa il modulo dei Redirect 301 era inserito nella versione gratuita liberamente scaricabile e installabile mentre ora è previsto unicamente in quella a pagamento. Puoi valutare il costo collegandoti alla specifica pagina del plugin.

Se invece sei interessato a un plugin gratuito ma al contempo molto valido ti voglio consigliare Redirection realizzato da John Godley. Con questo plugin potrai gestire una vasta tipologia di operazioni come dichiarato dallo sviluppatore. Molto utile per gestire la migrazione di pagine e contenuti da un vecchio sito oppure il cambiamento della struttura all’interno di un sito.

Prima di installarlo valuta anche la data degli aggiornamenti (comunque sempre molto tempestivi) e leggi la sezione delle valutazioni e il forum supporto tecnico specifico allo scopo di scoprire se questo plugin può esser utile per le tue specifiche necessità.

torna all’indice

Conclusioni

Questo breve approfondimento ha avuto lo scopo di introdurti a questo specifico argomento. Ricordati, soprattutto nel caso tu voglia gestire i Redirect 301 tramite file .htaccess, di eseguire sempre inizialmente un backup della tua installazione salvandolo in locale in modo tale da poter ripristinare l’installazione precedente nel caso la procedura non andasse a buon fine.

torna all’indice