Redirect 301: Guida ed Esempi

Redirect 301: Guida ed Esempi

I Redirect 301 sono un modo per ridirezionare l’utente da un contenuto ad un altro.

Perchè ho detto un modo e non il modo?

Perchè avendo specificato 301, parleremo solamente di uno dei tre modi per ridirezionare l’utente.

Il redirect 301, infatti, è il codice numerico (status code) che sta per Moved Permanently, ed indica che il contenuto è stato spostato in modo permanente.

Gli altri status code sono 302 e 307, che indicano un redirect temporaneo e sono utilizzati rispettivamente in HTTP 1.0 e HTTP 1.1.

In questo articolo vedremo come funzionano i redirect 301, come vengono interpretati dai motori di ricerca, i loro vantaggi ed infine l’implementazione.

Come Funziona un Redirect?

Sostanzialmente il funzionamento di un redirect è molto semplice.

L’utente atterra sulla pagina A.

Il webserver (o la pagina stessa) è configurato per ridirezionare da A a B.

Perfetto: l’header HTTP viene modificato, includendo lo status code che abbiamo visto poco fa, e la pagina di destinazione B.

Tutto qui.

Ora l’utente si ritrova sulla pagina B, e se non ha fatto caso all’URL neanche sa di essere stato ridirezionato.

Bene.

La parola Technical SEO ti dice qualcosa? Sapere gestire i redirect 301 è essenziale in questo ambito. Fortunatamente ho scritto qualcosa di utilissimo: scarica la Technical SEO Checklist e mantieni il tuo sito al top.

Perché Utilizzare i Redirect 301?

C’è un grande vantaggio nell’utilizzare i redirect 301, che vedremo proprio ora.

Abbiamo detto che 301 sta per spostato permanentemente?

Esatto. E questa è anche l’indicazione che ricevono i motori di ricerca.

Il crawler di un motore di ricerca, infatti, subisce la stessa ridirezione che abbiamo visto poco fa.

Leggendo lo status code 301, il crawler viene a conoscenza del nuovo percorso in cui l’oggetto indicizzato è stato spostato.

Di conseguenza il motore di ricerca aggiornerà quell’oggetto nel proprio indice, semplicemente sostituendo al vecchio indirizzo, il nuovo.

Carino eh?

E dal punto di vista SEO?

Sicuramente appena hai letto la parola motore di ricerca hai pensato ai vantaggi che ti accennavo.

I redirect 301, infatti, sono una buona pratica per la SEO, proprio perchè permettono di mantenere il posizionamento e l’autorità.

Quindi, quando devo utilizzare un 301?

  • Vuoi spostare una pagina senza perdere il posizionamento e l’autorità dai motori di ricerca;
  • Vuoi spostare una pagina senza perdere il traffico dai referral;

Ovviamente non devi usarli se il redirect è temporaneo.

Redirect 301 secondo i Motori di Ricerca
Prima di andare avanti con la pratica, ti chiedo solo di ricambiare il mio lavoro lasciandomi un +1 o una condivisione.

Per te è solo un click e per me è una fonte di motivazione.

Ti ringrazio davvero 🙂

Continuiamo.

 

Come si Implementano?

I redirect 301 (come tutti gli altri) possono essere implementati in due modi:

  • Impostando il redirect dal file di configurazione del webserver;
  • Impostando il cambio di “Location” lato server (es. con PHP) nella pagina da ridirezionare;
  • Impostando il meta-tag “refresh” nella pagina da ridirezionare.

Vediamoli uno ad uno.

Redirect 301 su Apache

Se utilizzi il webserver Apache, puoi impostare i redirect 301 nel file di configurazione .htaccess.

Vediamo alcuni esempi pronti per situazione.

Pagine Singole

Redirect 301 /pagina-a /pagina-b

Come vedi questa direttiva è molto semplice ed intuitiva.

Intera Sottodirectory in una Nuova

Redirect 301 /subdir/(.*) /newdir/$1

Ecco, questa già è un poì più intricata. Abbiamo appena introdotto le RegEx (Regular Expressions).

Allora, brevemente:

  • .* indica tutti i caratteri;
  • () indica di salvare il pattern indicato tra parentesi, come riferimento;
  • $1 è quel riferimento.

In sostanza, qualsiasi carattere dopo /subdir/, viene riportato dopo /newdir/.

Quindi, ad esempio /subdir/qualsiasi/altra/cosa rimanda a /newdir/qualsiasi/altra/cosa.

Intero Sito su Nuovo Dominio

RewriteEngine On
RewriteRule ^(.*) http://newdom.it/$1 [R=301,L]

Tre cose nuove:

  • ^ indica che si prende in considerazione tutta la stringa. Tutto l’URL quindi.
  • R=301 imposta il redirect 301;
  • L indica che questa è l’ultima direttiva di Rewrite.

Puoi ottenere lo stesso risultato utilizzando RedirectMatch invece di Rewrite.

RedirectMatch 301 ^(.*) http://newdom.it/$1

Directory su Sottodominio

RedirectMatch 301 /subdir/(.*) http://subdom.mydom.it/$1

Se hai letto gli esempi precedenti non hai bisogno di alcuna spiegazione 🙂

Ricapitoliamo

Per il redirect su Apache, abbiamo utilizzato delle direttive nel file .htaccess.

Abbiamo incontrato le direttive Rewrite, appartenenti al modulo mod_rewrite.c.

Redirect e RedirectMatch, invece, appartengono a mod_alias.c.

Le RegEx sono l’ostacolo che molti si trovano davanti. Esse permettono di creare regole basate su pattern di caratteri.

Sono strumenti molto potenti eh!

Redirect 301 su IIS

Se usi Microsoft Internet Information Services, non ti consiglio di andare a modificare il file web.config, ma di installare l’estensione URL Rewrite, ed utilizzare il pannello di gestione di IIS.

Se, invece, devi impostare dei semplici redirect senza RegEx, modifica il web.config con questo modo.

<?xml version="1.0"?>
<configuration>
<location path="document.asp">
<system.webServer>
<httpRedirect enabled="true" destination="document" httpResponseStatus="Permanent" />
</system.webServer>
</location>
</configuration>
</xml>

Implementare i Redirect 301 nella Pagina

Se hai necessità di creare un redirect dalla pagina statica che stai modificando, puoi modificare l’header HTTP con funzioni server-side, oppure utilizzare l’HTML refresh.

Ora vedremo come impostare un redirect 301 con i più diffusi linguaggi di programmazione Web.

In PHP

header("HTTP/1.1 301 Moved Permanently");
header("Location: /newpage.php" );

Basta utilizzare la funzione header() all’inizio della pagina da ridirezionare.

Il resto si commenta da solo :).

In ASP / .NET

VBScript

<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", " /newpage.asp"
%>

VB.NET

Private Sub Page_Load(object sender, System.EventArgs e)
Response.Status = "301 Moved Permanently"
Response.AddHeader("Location","/newpage.aspx")
End Sub

In HTML

A differenza degli altri visti fino ad ora, questo tipo di redirect è client-side, ovvero viene eseguito dal client una volta scaricato il documento HTML.

<meta http-equiv=refresh content="0; URL=/newpage.html">

Tecnicamente indica il numero di secondi che devono passare prima che la pagina si aggiorni, puntando ad un nuovo URL.

Non è un vero e proprio redirect, ma sembra che i motori di ricerca lo trattino come un 301.

Ah! Anche se l’ho trattato in questa categoria, l’HTML non è un linguaggio di programmazione Web 😉

In Conclusione

Abbiamo visto che i redirect 301 sono uno strumento indispensabile, che prima o poi ogni webmaster arriva a dover utilizzare.

Si utilizzano quando una risorsa viene permanentemente spostata ad un altro indirizzo.

L’utente viene ridirezionato, i motori di ricerca aggiornano i loro indici e noi sorridiamo.

I redirect 301, quindi, rappresentano anche il metodo per non perdere i risultati del duro lavoro di SEO.

Ora guarda quanto è lunga questa guida, e pensa che puoi ringraziarmi semplicemente lasciandomi un +1 o condividendo l’articolo.

Ci vuole meno di un secondo, costo zero, e mi renderai felice e ancora più motivato a scrivere articoli utili come questo.

Ti ringrazio davvero.

Ah, e per qualsiasi cosa, l’area per i commenti è di tutti, anche tua 😉

Davide

Fondatore ed Autore at FortyZone
Diplomato nel 2015 in Informatica. Studio Informatica alla Sapienza di Roma. Ho diversi interessi e passioni, tra cui musica, cinema, sviluppo software e web, SEO e digital marketing. Ah, suono il basso.