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

redirect-301

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

  • 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.php

    Nel 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.php

    La 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.php

    E’ 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.php

    Nel 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“:

Search Engine Friendly Redirect Check

Enter the URL whose Redirect you want to check



Vai alla prima parte » Redirect 301 e PageRank

Commenti (36)

  1. regole-seo scrive:

    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.

  2. Maxime scrive:

    Io dovrei effettuare un redirect di contenuti tramite .htaccess da un sottodominio al dominio principale. Ho messo un file .htcaccess con queste regole (vi riporto solo le prime 2 righe) all’interno del sottodominio:
    redirect 301 /index.php http://www.innovaservizi.it/servizi/privacy-e-sicurezza-dati
    redirect 301 /index.php?option=com_content&task=view&id=14&Itemid=26 http://www.innovaservizi.it/servizi/privacy-e-sicurezza-dati/la-normativa
    Praticamente, la prima regola funziona, quindi se vado a digitare privacy.innovaservizi.it il browser apre la pagina http://www.innovaservizi.it/servizi/privacy-e-sicurezza-dati

    Tutte le altre regole (le pagine interne al sottodominio) invece mi restituiscono un error 404 e non capisco perchè.
    Mi puoi dare una mano cortesemente? Grazie! :)

  3. regole-seo scrive:

    Maxime, la redirect funziona per redirigere il singolo file.
    Nel tuo caso usa una rewrite rule (modulo mod_rewrite di apache).
    Vedi qui:
    http://www.regole-seo.com/url-rewrite-htaccess-nozioni-esempi

  4. Fabio scrive:

    Io avrei bisogno di rinominare le url del mio sito per renderle seo friendly ma non posso effettuare operazioni server side. Dato che Google sconsiglia questa pratica se non strettamente indispensabile come si può agire?

  5. Zanna Solution scrive:

    ma ipotizziamo di fare 10 landing page per vedere quale è la più performante e che vi facessi una campagna di un paio di mesi. Se arrivassi a capire quale è la migliore e volessi fare un redirect delle nove pagine alla pagina piu performante(per non perdere i frutti ottenuti dalle altre) avrei delle penalizzazioni in termini di seo? domandona :)

  6. maximiliano scrive:

    ciao .. articolo interessante … però avrei un quesito … dunque sto ristrutturando un vecchio sito … da puro php a wordpress … ora il sito in questione è tanti anni che è presente e sopratutto ha un buon ranking … ora però nel nuovo sito wordpress nei link ( o meglio nei permalink) i aggiunge le categorie .. poco male meglio .. però nei vecchi url indicizzati non ci sono … ora cosa mi conviene fare usare un redirect 301 oppure come consigliato in un commento usare un mod_rewrite??

    grazie in anticipo … :)

    –max

Scrivi un commento