In questa lezione vedremo come gestire i cosiddetti redirect permanenti, cioรจ i redirezionamenti, gestiti lato-server, caratterizzati dal codice HTTP 301 "Moved Permanently" (anche conosciuti come Redirect 301).
Cosโรจ un redirect?
Nellโambito del web publishing, si definisce "redirect" un sistema automatico di inoltro degli utenti che cercando di accedere una data risorsa web vengono spostati su unโaltra.
Ad esempio gli utenti che digitano:
https://www.mrwebmaster.it
vengono reindirizzati automaticamente su:
https://www.mrw.it
In questo caso il redirect avviene a livello di dominio, ma nulla vieta che il redirect avvenga allโinterno dello stesso dominio. Ad esempio digitando:
https://www.miosito.com/risorsa-A
lโutente potrebbe essere trasferito su:
https://www.miosito.com/risorsa-B
In questo caso il dominio non cambia, ma cambia lโindirizzo della risorsa sulla quale lโutente atterra.
Quando utilizzare un redirect?
I redirect, solitamente, sono utilizzati quando una determinata risorsa (ad esempio una pagina web) viene spostata: in questo caso la risorsa cercata dallโutente non cambia il suo contenuto, ma ha solo modificato lโindirizzo web presso cui รจ reperibile.
Un altro caso frequente di utilizzo dei redirect riguarda le risorse rimosse: in questo caso il redirect puรฒ essere utilizzato per trasferire lโutente su una pagina web simile e che tratta lo stesso argomento (se, viceversa, non vi sono pagine di questo tipo il server dovrebbe mostrare un errore di tipo 404 oppure 410).
Cosa significa "Moved Permanently"?
Iniziamo col dire che il 301 รจ un codice di stato del protocollo HTTP mediante il quale, in fase di scambio di informazioni tra un server ed un client, il primo comunica al secondo che la pagina web richiesta non si trova piรน alla URL originale ma รจ stata spostata, ed รจ stata spostata in via definitiva e permanente. Questโultima precisazione รจ di vitale importanza: esistono, infatti, altri codici di stato (tipicamente il 302) che comunicano, viceversa, uno spostamento solo provvisorio.
Sal punto di vista dellโutente umano lโutilizzo di un codice di redirect piuttosto che di un altro non fa alcuna differenza, dal punto di vista dello spider sรฌ! Utilizzando lo status code 301, infatti, forniamo una preziosa informazione al motore di ricerca: gli stiamo comunicando, infatti, che la vecchia URL non esiste piรน ed il contenuto รจ stato trasferito su una nuova URL.
Cosรฌ facendo, il motore di ricerca procede ad un update del proprio database aggiornando la URL del contenuto e trasferendovi, contestualmente, la page authority, i link in ingresso e tutte gli altri indici che avevano contribuito a posizionare la vecchia URL nelle SERP.
Approfondimento: per approfondire le differenze tra i codici di stato 301 e 302 si consiglia la lettura di questo articolo.
Quanto utilizzare un Redirect 301
Quando si sposta un sito web, si effettua un restyling o, per qualsiasi altra ragione, si cambia la struttura delle URL delle pagine di un sito web, รจ necessario saper gestire correttamente i redirect delle vecchie URL verso le nuove. Questo tipo di operazione, come abbiamo giร capito, risulta importantissima non solo da un punto di vista della user experience ma anche, e forse soprattutto, da un punto di vista SEO.
Senza una adeguata e corretta gestione dei redirect, infatti, chi accedesse alle vecchie pagine del sito si troverebbe davanti ad una pagina di errore 404 (pagina inesistente) con la conseguente perdita di una visita (se il visitatore รจ un essere umano) o del ranking della pagina (se il visitatore รจ uno spider).
In un contesto del genere lโutilizzo dei redirect 301 รจ determinante per garantire al sito un costante afflusso di traffico di ricerca organico, traffico che crollerebbe drasticamente se le nuove URL del sito non fossero "agganciate" alle vecchie con la conseguente perdita dellโintera indicizzazione che il sito aveva guadagnato nel tempo.
Benefici dei Redirect 301 (e conseguenze di una loro mancata impementazione)
La creazione di un sistema di redirect permanenti ha effetti virtuosi di vario tipo:
- gli utenti che accedono alle vecchie pagine vengono redirezionati automaticamente sulle nuove URL che ospitano i contenuti da loro cercati;
- gli spider vengono a conoscenza del cambio delle URL e procedono allโaggiornamento delle informazioni in possesso del motore di ricerca;
- il motore di ricerca elimina piรน velocemente le vecchie URL sostituendole con quelle nuove;
- eventuali link in ingresso sulle vecchie URL continuano ad apportare valore alle nuove URL;
- la page authority delle vecchie URL viene trasferita alle nuove.
Viceversa, la mancata implementazione di un sistema del genere potrebbe causare danni piuttosto seri al sito web:
- gli utenti che accedono alle vecchie URL si ritroverebbero in una pagina di errore (status code 404 โ pagina inesistente);
- gli spider che scansionano le vecchie URL si troverebbero in un "vicolo cieco": ogni pagina di errore 404 corrisponde ad un "alt" per lo spider che interromperebbe cosรฌ la scansione delle nostre pagine;
- le vecchie URL verrebbero mantenute per un certo periodo di tempo (anche lungo) nel motore di ricerca ed al contempo verrebbero "devalorizzate" perchรจ non raggiungibili perdendo velocemente il posizionamento che avevano guadagnato nel tempo;
- le nuove URL verrebbero aggiunte allโindice del motore di ricerca e trattate come nuovi contenuti: in un primo momento, pertanto, il motore di ricerca potrebbe identificarle come contenuti duplicati delle vecchie URL;
- i link in ingresso e la page authority delle vecchie URL verrebbero perse ed il posizionamento delle pagine nuove partirebbe da zero;
- aumenterebbero vertiginosamente gli errori 404 (relativi alle vecchie URL) e, di conseguenza, il motore di ricerca potrebbe abbassare il giudizio di qualitร ed affidabilitร del sito web (con conseguente declassamento generale nelle SERP).
Alla luce di quanto sopra, immagino abbiate capito quanto sia importante saper gestire correttamente i redirect permanenti. Vediamo, di seguito, una carrellata di codici per lโimplementazione di questo tipo di redirect nel vari linguaggi server-side.
Implementare un redirect permanente utilizzando i vari linguaggi lato server
Redirect 301 in Classic ASP
<%
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", " http://www.miosito.it/nuova_pagina.asp"
%>
Redirect 301 in ASP.Net
Sintassi C#:
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.miosito.it/nuova_pagina.aspx");
}
Sintassi VB.Net:
Private Sub Page_Load(object sender, System.EventArgs e)
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.miosito.it/nuova_pagina.aspx");
End Sub
Redirect 301 con PHP
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.miosito.it/nuova_pagina.php");
?>
Redirect 301 con Cold Fusion
<CFHEADER statuscode="301" statustext="Moved Permanently">
<CFHEADER name="Location" value="http://www.miosito.it/nuova_pagina.cfm">
Redirect 301 con Perl
#!/usr/bin/perl -w
use strict;
print "Status: 301 Moved Permanantlyn";
print "Location: http://www.miosito.it/nuova_pagina.cgi/nn";
exit;
Redirect 301 con JSP
response.setStatus(301);
response.setHeader("Location", "http://www.miosito.it/nuova_pagina.jsp");
response.setHeader("Connection", "close");
Gestire redirect permanenti con .htaccess
Un altro modo, molto utilizzato, per la gestione del redirect 301 riguarda Apache. Eโ possibile, infatti, configurare dei redirect mediante il file .htaccess in modo piuttosto semplice. Vediamo la sintassi:
redirect 301 /pagina_vecchia.html /pagina_nuova.html
Ovviamente nulla vieta di impostare un 301 su un nuovo dominio (cosa, necessaria quando si รจ cambiato il dominio del sito):
redirect 301 /pagina.html http://www.nuovosito.it/pagina.html
Attraverso una Rewrite Rule possiamo anche gestire lo spostamento di un intero sito web. Supponendo che il nuovo sito sia caratterizzato solo da un nuovo dominio, mentre i percorsi di cartelle e pagine sono i medesimi, possiamo far ricorso a questo codice:
RewriteEngine on
RewriteRule (.*) http://www.nuovosito.it/$1 [R=301,L]
Gestire redirect attravereso cPanel
Se disponete di un hosting con cPanel potete gestire i redirect in modo estremamente semplice attraverso lโinterfaccia del pannello di controllo. Per farlo accedete a cPanel, e cliccate sulla voce Reindirizzamenti disponibile nella sezione Domini.
lโinterfaccia si compone di 4 campi:
- Tipo: permette di definire il tipo di reindirizzamento (permanente o temporaneo);
- https?://(www.)?: consente di specificare il dominio al quale applicare il redirect;
- Il campo successivo consente di specificare una singola pagina del dominio;
- Reindirizza a: consente di specificare la URL di destinazione.
Oltre a questi campi รจ possibile prevedere se applicare i redirect solo se la chiamata ha oppure non ha il prefisso www. Eโ anche possibile utilizzare il carattere Jolly (*) per applicare il redirect a tutte le pagine presenti in una data cartella.
Gestire redirect su WordPress
Se, come molti webmaster, utilizzate WordPress come CMS per il vostro sito web, avete la possibilitร di gestire i redirect in modo molto semplice ed automatizzato utilizzando uno degli appositi plugin disponibili. Tra i tanti segnaliamo Redirection, un plugin con piรน di 10 anni di storia ed oltre un milione di installazioni.
Consente di impostare redirect senza dover intervenire sul file .htaccess ma attraverso una semplice interfaccia visuale. Eโ anche possibile impostare redirect basati su specifiche istruzioni condizionali (ad esempio รจ possibile impostare un redirect solo se lโutente sta utilizzando un determinato browser).
Per scaricare il plugin e per una lista completa delle sue funzionalitร si faccia riferimento a questa pagina della directory ufficiale di WordPress.
Gestire redirect 301 con HTML
Eโ una domanda che mi viene spesso posta durante seminari e nei vari forum. La risposta รจ: NON รจ possibile impostare redirect permanenti utilizzando un semplice markup HTML. Il perchรจ รจ piuttosto intuitivo: attraverso HTML, infatti, non possiamo agire sul protocollo HTTP e sullโinvio degli status code (cosa che invece possiamo fare lavorando lato server). Un redirect HTML, quindi, equivale โ da un punto di vista SEO โ ad un redirect temporaneo.