25 Ott SEO, cosa succede al posizionamento se rifacciamo il sito?
Uno degli eventi più critici nella gestione del posizionamento SEO, è il rifacimento/restyling del sito web che determina la modifica della struttura dei permalink.
Nel post di oggi, analizziamo le operazioni da eseguire per mantenere il posizionamento ed evitare tracolli sulle SERP.
Capita spesso di assistere ad errori (anche grossolani) in fase di rifacimento/restyling di un sito web che possono condurre a pericolosi tracolli di posizione sulle SERP.
Occorre una certa attenzione nel caso in cui su un sito richieda delle operazioni in ambito SEO che prevedono la modifica della struttura dei permalink, soprattutto se il sito web è ben indicizzato e con pagerank assegnato anche alle pagine interne.
Solitamente, i casi più critici sono il cambio di piattaforma (ad esempio da Joomla a WordPress) o di framework (ad esempio da CakePHP o da Yii a Symfony2) con cui il sito è realizzato.
Tuttavia ci sono altre situazioni da gestire: il passaggio da un sito statico ad uno dinamico, il cambio di dominio per passare ad uno più strategico, ecc..
Perché si rischia di perdere il posizionamento SEO?
Se gli URL delle pagine di un sito web cambiano, a causa di uno dei motivi descritti, e la situazione non viene gestita, Google, che salva tutti gli URL delle pagine “scandagliate” dagli spider, indirizzerà gli utenti verso delle risorse non più raggiungibili, generando un errore: il famoso errore 404.
Un elevato numero di errori di questo tipo penalizzerà inevitabilmente il sito determinando una perdita di posizioni.
Qual è l’approccio corretto?
La procedura da eseguire per non avere problemi di questo tipo consiste nell’”informare” Google che le pagine indicizzare sono state spostate permanentemente verso un nuovo URL.
Tale operazione viene denominata Redirect 301.
Forse non tutti sanno che esistono altri tipi di reindirizzamento ottenuti attraverso gli “status code” del protocollo HTTP. Vediamone la lista completa:
- 300 – multiple choices – indica molteplici opzioni per una risorsa, ad esempio un contenuto in lingue diverse o un video in diversi formati.
- 301 – moved permanently – la risorsa è stata spostata definitivamente ed è raggiungibile con un nuovo URL.
- 302 – found – reindirizzamento senza una specifica casistica. Indica semplicemente che la risorsa è stata spostata.
- 303 – see other – indica che il contenuto è disponibile altrove.
- 307 – temporary redirect – la risorsa è stata spostata temporaneamente, ma in futuro tornerà ad essere disponibile presso l’URL originario.
Per quanto riguarda la SEO, il redirect 301 viene considerato il migliore, in quanto è apprezzato dai motori di ricerca. Statisticamente permette di conservare dal 90% al 99% del “ranking power“; proprio per questo motivo è il più utilizzato.
E’ possibile implementare questo tipo di redirect in diversi modi. Il più diffuso è quello di utilizzare il file .htaccess, sfruttando quindi il web server.
Vediamo alcuni esempi pratici di utilizzo del redirect 301 attraverso il file .htaccess. Le casistiche sono volutamente semplici per permettere la completa comprensione a tutti i livelli.
Reindirizzare una pagina verso un’altra
Si tratta del più semplice dei casi; la sintassi corrispondente del file .htaccess sarà la seguente:
redirect 301 /vecchia_pagina.html http://www.nuovosito.com/nuova_pagina.html
E’ intuitivo comprenderne la struttura che indirizza la pagina “vecchia” verso la pagina “nuova“, con l’unica accortezza di indicare l’URL completo solo nella seconda parte dell’istruzione. La prima parte dovrà indicare il percorso relativo del file, ovvero partendo dalla directory “radice” (root).
Qual è il risultato a livello pratico? Richiedendo attraverso il browser la risorsa vecchia_pagina.html, magari cliccando il risultato corrispondente sulla SERP, verremo immediatamente rediretti alla pagina nuova_pagina.html.
Allo stesso tempo, la tipologia di redirect utilizzata permetterà di non perdere il posizionamento che la “vecchia” pagina aveva ottenuto nel tempo, trasferendolo alla nuova. Com’è possibile? Quando la richiesta della pagina viene effettuata dallo spider, il tipo di risposta che otterrà, comunicherà al motore di ricerca il trasferimento permanente.
Reindirizzare un intero sito verso il nuovo dominio
Grazie al mod_rewrite (un modulo di Apache Web Server che deve essere attivo sul server) richiamato nel file .htaccess possiamo reindirizzare un intero dominio verso un altro.
Vediamo la sintassi da utilizzare:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)$ http://www.nuovosito.com/$1 [R=301,L]
Per poter usare queste righe, consiglio di far “puntare” (attraverso la gestione dei DNS e del web server) il nuovo dominio alla stessa directory raggiunta da quello “vecchio” (rendendolo alias, ad esempio) e di inserire il file .htaccess all’interno della directory “radice“
Passare da un sito statico ad un semplice sito dinamico
Immaginiamo di dover trasformare un sito web statico composto da pagine HTML in un sito dinamico, composto da pagine PHP. Quella che segue è la sintassi corrispondente. Anche in questo caso è necessario che il mod_rewrite di Apache sia abilitato.
RewriteEngine on
RewriteBase /
RewriteRule (.*).html$ /$1.php
L’utilizzo di espressioni regolari permette di creare regole dettagliate e potenti che riescono “coprire” ogni tipo di necessità.
NOTA: una espressione regolare (regular expression o regex) è una stringa contenente una serie di simboli che rappresenta un insieme di stringhe.
Spostare una sezione del sito da una directory ad un’altra
Uno scenario attualmente abbastanza diffuso per i siti web aziendali è quello di avere il blog in una directory “news” contenente una installazione di WordPress. Se, per migliorare la struttura degli URL del sito, volessimo rinominare la directory da “news” a “blog“, per mantenere il posizionamento sarebbe necessario inserire la seguente riga all’interno del file .htaccess:
RedirectMatch 301 /news/(.*) http://www.sitoweb.com/blog/$1
In questo modo, ad esempio il vecchio URL http://www.sitoweb.com/news/notizia-1, verrà reindirizzato permanentemente verso il nuovo http://www.sitoweb.com/blog/notizia-1.
Reindirizzare URL contenenti parametri (query-string)
Nel caso in cui gli URL da reindirizzare contengano dei parametri (query-string), ad esempio http://www.sitoweb.com/pagina.php?val=1, la sintassi da utilizzare per il redirect sarebbe lievemente diversa.
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/pagina.php$
RewriteCond %{QUERY_STRING} ^val=1$
RewriteRule ^(.*)$ http://www.sitoweb.com/val-1/ [R=301,L]
Anche in questo caso, grazie alle espressioni regolari, è possibile ottenere regole di redirect estremamente personalizzate e selettive.
Altre tecniche per realizzare il redirect 301
Esistono altri metodi (meno performanti) per ottenere un redirect 301, ovvero utilizzando i linguaggi server-side (php, asp, asp.net, ecc.).
Vediamo alcuni esempi di implementazione:
PHP
<?php
header(“Location: http://www.nuovosito.com/nuova_pagina.html”, true, 301);
exit();
?>
ASP
<%@ Language=”VBScript” %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”, “http://www.nuovosito.com/nuova_pagina.html”
Response.End
%>
ASP.NET
<script language=”C#” runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,”http://www.nuovosito.com/nuova_pagina.html”);
Response.End();
}
</script>
Anche l’HTML ed il Javascript permettono di creare un reindirizzamento nelle pagine web, e se ne vedono molti esempi nel web. Propongo anch’io due soluzioni, ma è importante sapere che tali metodi non costituiscono un redirect 301 (permanent).
HTML
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”refresh” content=”0; url=http://www.nuovosito.com/nuova_pagina.html”>
</head>
<body>
</body>
</html>
JAVASCRIPT
<!DOCTYPE html>
<html>
<body>
<script type=”text/javascript”>
window.location.replace(“http://www.nuovosito.com/nuova_pagina.html”);
</script>
</body>
</html>
Cosa accade una volta impostato il redirect 301?
Come sappiamo, Google assegna un Page Rank a tutte le pagine web. Una volta eseguita la modifica al sito con i relativi reindirizzamenti, non spaventiamoci se tutte la pagine avranno Page Rank pari a zero: deve passare qualche giorno perché avvenga il trasferimento di valore dalla vecchia alla nuova pagina.
Il fatto, però, che la nuova pagina potrebbe presentare delle diversità rispetto alla vecchia versione, introduce l’eventualità di avere una variazione di page rank. Chiaramente, il tutto dipende dalla struttura delle pagine e dalla qualità dei contenuti che contengono. Se gli interventi al sito sono migliorativi in termini SEO, non c’è nulla da temere.
Relativamente ai link inbound e ai link interni del sito web, tutto potrebbe rimanere invariato (perché il lavoro lo fa per noi il redirect 301), anche se consiglio, se possibile, di rendere, almeno i link interni, coerenti alla nuova struttura.
Mantenere i “vecchi” link, infatti non è elegante nei confronti degli utenti.
L’utilizzo dei reindirizzamenti 301 per gli URL non canonici
Spesso la coesistenza di redirect 301 e rel canonical crea confusione. Qual è la maniera corretta di operare?
Supponiamo di avere una pagina raggiungibile dai seguenti URL:
- http://www.nuovosito.com/nuova_pagina.html
- http://nuovosito.com/nuova_pagina.html
- http://www.nuovosito.com/nuova_pagina/
Chiaramente, questo genera una duplicazione di contenuti. La pratica ideale consiste nell’identificare l’URL principale (canonico) ed utilizzare redirect 301 per inviare il traffico dagli altri. Possiamo, comunque, nella pagina, indicare l’url canonico mediante il rel=”canonical”.
Conclusioni
L’utilizzo del redirect 301 è fondamentale per mantenere il posizionamento nel caso in cui vengano apportate modifiche strutturali ad un sito web. E’ bene, però, non abusarne: deve essere utilizzato solo per le pagine che vengono spostate permanentemente, non per tutte le pagine che dopo la modifica non risulteranno più raggiungibili. L’esempio classico è il rinnovo del catalogo prodotti: se un prodotto non dovesse essere più in produzione, è corretto gestire l’errore 404 con le adeguate spiegazioni all’utente; se, invece, la pagina del prodotto dovesse essere rinnovata con una modifica al permalink, sarebbe corretto utilizzare il redirect 301.
Creare un reindirizzamento verso una pagina non coerente fa parte delle prtiche SEO “scorrette” definite cloacking.
Grazie a Google Strumenti per Webmaster è possibile verificare se abbiamo fatto degli errori di configurazione: nel caso in cui il redirect 301 non fosse stato impostato correttamente, inizieremo a visualizzare tutte le pagine del sito all’interno della sezione Scansione > Errori di Scansione.
Articolo liberamente tratto dall’ottimo blog di Alessio Pomaro