Configurare i Redirect 301
Mediante i redirect 301 indichiamo agli spider che l’URL è stata trasferita in maniera permanente verso un nuovo indirizzo, quindi indichiamo un reindirizzamento lato server definitivo da un indirizzo ad un altro.
Queste regole devono essere configurare correttamente all’interno del file .htaccess.
Questi redirect sono molto utilizzati in ambito SEO, infatti permettono di reindirizzare una pagina oppure un dominio senza perdere la forza e il posizionamento acquisito dalla vecchia pagina.
Anche se non è proprio così, infatti si perde qualcosa in termini di juice acquisito della pagina, se non imposti correttamente queste regole potrebbe capitarti di creare un redirect loop, in questo caso ti verrà visualizzato il messaggio di errore: catena di redirect.
Indice
Quando è necessario impostare le regole di Redirect delle URL?
-
Redirect da vecchio a nuovo dominio;
-
Redirect da un dominio di secondo livello verso un dominio di primo livello;
-
Reindirizzamento da una sotto cartella ad un’altra sotto cartella;
-
Redirect da dominio con www a dominio senza www;
-
Redirect da dominio in HTTP verso dominio in HTTPS e viceversa;
-
Redirect di vecchie URL verso nove URL.
Nel caso di ristrutturazione del sito, se non facciamo i redirect tutti i backlink che riceveva la vecchia pagina verrebbero persi e quindi la forza che aveva la vecchia pagina verrebbe persa, con il redirect 301 il link juice, viene trasmesso quasi interamente alla nuova pagina.
Effettuando un redirect 301, l’utente che cliccherà sui link o sulla SERP verrà reindirizzato al nuovo url.
Per evitare che ciò non accada ci basterà inserire all’interno del file .htaccess la seguente regola:
Redirect 301 /page.html https://sito.it/npage.html
In alterativa si potrebbe utilizzare la seguente regola (è equivalente alla regola sopra indicata):
RedirectMatch ^url$ http://sito.it/newurl
Redirect da URL senza WWW ad URL con WWW e viceversa
Per google l’url con www è diversa da un url senza www.
Vediamo una regola per effettuare i redirect da un url senza www ad un url con www;
RewriteCond %{HTTP_HOST} ^sito\.it [NC]
RewriteRule ^(.*) http://www.sito.it/$1 [R=301,L]
Viceversa da un URL con www ad un URL senza www:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Altre regole di Redirect 301
Se volessimo ridirigere il traffico di tutto il sito ad eccezione di un unica cartella:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/cartella_da_escludere
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Redirect di un intera cartella:
RedirectMatch 301 ^/cartella/(.*) http:/ /www.miosito.it/nuovacartella
Se vogliamo negare la scansione di tutte le risorse a GoogleBot, facendo restituire al server uno status code 403 (access forbidden) ogni volta che arriva l’user agent di google e richiede una risorsa del sito.
In questo caso attenti al cloaking:
RewriteEngine On
RewriteCond %{http_USER_AGENT} Googlebot
#RewriteCond %{REQUEST_URI} ^/pagina([0-9]*)\.html$
(ulteriore regola, se decommentiamo, per essere eseguita l’isturuzione di RewriteRule devono essere soddisfatte entrambe le RewriteCond)
RewriteRule . – [F,L]
Link per approfondire l’argomento
- Come effettuare i redirect da http ad https
- Cosa significano i caratteri speciali utilizzati per impostare le regole di redirect nel file .htaccess
Differenza tra i Redirect 301 e 302
Spesso di sente parla di redirect 302, ma cosa lo differenzia dal redirect 301?
Il redirect 302 è un redirect temporaneo da utilizzare nel momento un cui la pagina è stata temporaneamente rinominata e cancellata e che verrà poi reintegrata.
Lo spider non cancellerà dagli indici la pagina, con questo tipo di redirect non viene passato link juice alla pagina di destinazione.
Per impostare questa regola basta utilizzare la stessa sintassi delle regole sopra descritte, sostituendo 301 con 302.