05
Redirect 301
Postato da regole-seo, in Approfondimenti SEO, in data 05/04/2010
Redirect 301 e SEO [Parte 2 di 2]
Vai alla prima parte » Redirect 301 e PageRank
Durante il periodo di vita di un sito, può sicuramente capitare, per svariati motivi, di imbattersi nella necessità di modificare l’url di una o più pagine web.
I motivi possono essere molti e, non ultimo, quello di creare url più parlanti e più significative rispetto ai contenuti della pagina cui corrispondono.
Il redirect 301 è il miglior modo per redirigere gli utenti e gli spider dei motori di ricerca senza perdere il “valore di posizionamento” che il vecchio url ha accumulato col passare del tempo.
In realtà, in un precedente articolo dal titolo “Redirect 301 e PageRank” veniva evidenziato il fatto che quando si ha a che fare con il reindirizzamento di un intero dominio, allora vi può essere una perdita di “PageRank” che è appunto uno dei tanti parametri utilizzati da Google per determinare la posizione nella SERP. E’ lo stesso Matt Cutts a svelare questo fatto in un’intervista.
Ad ogni modo il redirect 301 resta il modo più conveniente per comunicare ai motori di ricerca che il contenuto che prima si trovava ad un determinato indirizzo è stato permanentemente rimosso ad un altro indirizzo e che quindi il nuovo indirizzo deve sostituire quello nuovo nella SERP.
Prima di vedere come è possibile implementare il redirect 301 occorre considerare che dopo il rilevamento del redirect da parte di uno spider, il motore di ricerca “dovrebbe” sostituire il vecchio url presente nei suoi indici con quello nuovo.
In realtà generalmente si assiste ad un periodo di assestamento di alcuni giorni in cui il vecchio e il nuovo url potrebbero alternarsi nei risultati probabilmente anche con delle temporanee variazioni di posizione nella SERP. Questo è del tutto normale e ciò che di preciso avviene in questa fase varia spesso da un caso all’altro.
All’incirca questa fase di transizioni può durare anche due settimane dopodichè tutto dovrebbe tornare alla normalità.
Vediamo dunque come implementare un redirect 301 con alcune delle più note tecnologie.
- htaccess 301 redirect
- IIS 301 redirect (versione 6)
- PHP redirect 301
- ASP redirect 301
- ASP .NET redirect 301 (VBScript)
- ASP .NET redirect 301 (C#)
- JSP Java redirect 301
- Ruby on Rails redirect 301
- Coldfusion redirect 301
- CGI Perl redirect 301
- Perl redirect 301
- HTML redirect
htaccess 301 redirect
-
E’ implementabile in siti ospitati su server Apache.
Ad ogni richiesta ricevuta, il web server Apache controlla se esiste un file .htaccess contenente delle regole specifiche per quella richiesta.
Le regole per effettuare il/i redirect 301 in questo caso sono definite all’interno del file .htaccess.
Ecco due semplici regole di esempio:Redirect 301 /pagina_1.php http://www.mioSito.com/pagina_2.php
Redirect 301 /sezione/pagina_1.php http://www.mioSito.com/sezione/pagina_2.phpNel primo caso l’invocazione dell’url
http://www.mioSito.com/pagina_1.php
innescerà il redirect con response code 301 verso
http://www.mioSito.com/pagina_2.phpLa url
http://www.mioSito.com/sezione/pagina_1.php
invece innescerà il redirect con response code 301 verso
http://www.mioSito.com/sezione/pagina_2.phpE’ opportuno porre attenzione a non appendere alla prima parte dell’istruzione di redirect il nome del dominio (http://www.mioSito.com). Infatti occorre inserire l’indirizzo a partire dalla root del sito (/) fino alla pagina da reindirizzare (esattamente come riportato nell’esempio qui sopra).
In oltre nel caso di nomi di file contenenti degli spazi (cosa sempre altamente sconsigliata
) occorre utilizzare i doppi apici per definire l’indirizzo come nell’esempio seguente:Redirect 301 "/sezione/pagina 1.php" http://www.mioSito.com/sezione/pagina2.phpNel caso occorra redirigere un intero dominio basterà invece inserire la seguente regola nel file .htaccess:
redirect 301 / http://www.mioNuovoDominio.com/A questo indirizzo:
http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirect
potete trovare la documentazione completa del modulo mod_alias di Apache e delle regole per .htaccess redirect.Occorre anche tenere presente che in caso di variazione di un intero dominio Google webmasters tools permette di comunicare direttamente a Google il cambio di indirizzo.
IIS 301 redirect (versione 6)
-
Una volta entrati in Gestione Internet Information Services (IIS), cliccare sul pulsante “Visualizza contenuto” in basso.
Nella sezione di destra navigare le cartelle fino ad arrivare a quella contenente la pagina da reindirizzare. Selezionate la pagina nella finestra centrale dei “contenuti“.
Nel pannello “Azioni” sulla destra selezionate “Passa a visualizzazione funzionalità“.
Doppio click su “Reindirizzamento HTTP” nella sezione centrale.
Abilitare il check box “Reindirizza le richieste a questa destinazione“.
Immettete nel campo sottostante il nuovo url della pagina e nel menù “Codice stato” selezionate “Permanente (301)”.
Cliccate su “Applica” nel pannello di destra per completare l’opera.Ecco un breve video che descrive la procedura: IIS-redirect-301 (6 MB)
PHP redirect 301
-
Inserire le seguenti linee di codice nella pagina php da redirigere:
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.mioSito.com/NuovaPagina" );
?>
ASP redirect 301
-
Inserire le seguenti linee di codice nella pagina asp da redirigere:
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.mioSito.com/NuovaPagina"
%>
ASP .NET redirect 301 (VBScript)
-
Inserire le seguenti istruzioni nella pagina da redirigere:
Private Sub Page_Load(object sender, System.EventArgs e)
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.mioSito.com/NuovaPagina");
End Sub
ASP .NET redirect 301 (C#)
-
Inserire le seguenti istruzioni nella pagina da redirigere:
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.mioSito.com/NuovaPagina");
}
JSP (Java) redirect 301
-
Inserire le seguenti istruzioni nella pagina jsp da redirigere:
<%
response.setStatus(301);
response.setHeader( "Location", "http://www.mioSito.com/NuovaPagina" );
response.setHeader( "Connection", "close" );
%>
Ruby on Rails redirect 301
-
Inserire le seguenti istruzioni nella pagina da redirigere:
def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.mioSito.com/NuovaPagina"
end
Coldfusion redirect 301
-
Utilizzare il codice seguente:
<CFHEADER statuscode="301" statustext="Moved Permanently">
<CFHEADER name="Location" value="http://www.mioSito.com/NuovaPagina">
CGI Perl redirect 301
-
Utilizzare il codice seguente:
$q = new CGI;
print $q->redirect("http://www.mioSito.com/NuovaPagina");
Perl redirect 301
-
Utilizzare il codice seguente:
#!/usr/bin/perl -w
use strict;
print "Status: 301 Moved Permanently\n";
print "Location: http://www.mioSito.com/NuovaPagina\n\n";
exit;
HTML redirect
-
L’uso del redirect tramite html è consigliabile solo nel caso in cui non sia possibile implementare una delle tecniche server side precedentemente descritte.
Il redirect html infatti non ritorna uno status code 301. Quello che si verifica in questo caso infatti è qualcosa di simile:
- richiesta della vecchia pagina
- restituzione del codice html con status code 200 contenente il metatag di redirect
- interpretazione del codice da parte del browser e richiesta della pagina specificata nel metatag di redirect
- restituzione del codice html della nuova pagina con status code 200
Dunque in questo caso non possiamo parlare di effettivo redirect 301.Google stessa consiglia di non usare questa tecnica se non strettamente indispensabile come potete vedere qui: html redirect
Per completezza ecco comunque come implementare l’html redirect tramite metatag:
<META HTTP-EQUIV=Refresh CONTENT="0; URL=http://www.mioSito.com/NuovaPagina">
Una volta implementata la funzionalità di redirect 301 potete utilizzare il seguente servizio per verificare se effettivamente ciò che avete realizzato è “Search Engine Friendly“:
Vai alla prima parte » Redirect 301 e PageRank

Ciao Luca… ..ho appunto elencato nell’articolo una serie di modi diversi di fare redirect.
L’unico che funziona solo sotto apache è quello effettuato tramite .htaccess.