Ci sono un paio di casi che infastidiscono molto un motore di ricerca come Google, nella gestione ordinaria del nostro progetto web, ai quali bisognerebbe - in qualche modo - porre rimedio per l'ottimizzazione SEO del nostro progetto web.

I due casi a cui mi riferisco sono:

  1. la cancellazione di una pagina esistente o il cambio di nome/posizione
  2. la duplicazione degli stessi contenuti su altre pagine

Andiamo a vedere come porre rimedio ad entrambe in modo relativamente semplice.

rel canonical o redirect 301

I# Pagina spostata o cancellata

Capita più spesso di quanto ci verrebbe da pensare che una pagina html, in una determinata posizione, non ci sia più.

Quando usare il redirect 301

  1. Realizziamo un nuovo sito web con una nuova struttura e con dei nomi differenti di pagine / o messe su directory differenti sul server. Quindi tutte le pagine vengono rimosse o spostate in modo permane.
  2. Cambiamo il nome di un file per rendere più facile e veloce la sua lettura per gli esseri umani (ad esempio: "perche-utilizzare-il-rediretc-301-per-non-perdere-posizionamento-pagina.htlm" potrebbe diventare "utilizzare-redirect-301.html")
  3. Una pagina viene cancellata, tolta dal sito web e genera un errore 404 (pensate ad un e-commerce con migliaia di prodotti di abbigliamento che cambia catalogo ogni 6 mesi, o per i prodotti fuori produzione o non più disponibili).
  4. Un dominio viene spostato in modo permanente su un altro (cambio nome attività, acquisizione brand/prodotto, riorganizzazione etc...)

In questi casi ci viene in aiuto un codice di stato HTML, conosciuto come "redirect 301", che permette di gestire in modo completo e permanente la redirezione di una pagina.
Praticamente diciamo al motore di ricerca: "ehi, guarda che questa pagina non è più qui, quindi passa il credito di questa pagina ad un'altra".

Utilizzando il redirect 301 si passa l'autorità di quella pagina cancellata / modificata / spostata ad un'altra che viene indicata.
Si comunica ai motori di ricerca che quella pagina non è più rilevante e che le informazioni aggiornate a cui faceva capo si trovano ora su un'altra pagina.

Sembra facile, no?

In realtà, per farlo, bisogna avere accesso al server ftp o disporre di un programma che ti permetta di gestirlo "on site". Quindi, se non si può fare dal sito, bisogna parlare con chi ha realizzato il sito web ogni volta che abbiamo un caso da gestire.

consulenza SEO

Inoltre può anche passare del tempo prima che il motore di ricerca "passi l'autorità" alla pagina indicata. Questo dipende da quanto spesso il sito, e la pagina originale, vengono analizzati dal crawler del motore di ricerca. Se c'è urgenza di eseguire l'operazione, non è l'opzione migliore. Ma se si tratta di pagina cancellata o spostata è anche l'unica.

E poi c'è un grande problema di fondo: quanto spesso capita che il webdesigner faccia il nuovo sito e poi redirezioni con un 301 tutte le pagine del vecchio alla nuova homepage? In realtà il redirect andrebbe fatto per ogni pagina sulla pagina corrispondente, quella che la sostituisce, o la più simile possibile.

Come fare un redirect 301

a# Wordpress

Se si disponde di un software CMS come Wordpress si può installare un plugin che si chiama Simple 301 redirect (o, in alternativa WP SEO Redirect 301) e, da questo, gestire tutti i reindirezzamenti 301.
Un'opzione interessante è anche il plugin SEO by Yoast che permette, all'interno di ogni pagina e post, di redirezionare su un altro post/pagina/indirizzo esterno.

b# Redirect 301 con file .htaccess

Accedendo con un programma FTP al server dove c'è il nostro sito, possiamo andare a modificare direttamente il file .htaccess con un editor di testo e comunicare in questo modo ai motori di ricerca tutti i redirect di cui abbiamo bisogno.

Il comando basilare per fare questo è inserire nel testo del file .htaccess:

redirect 301 /pagina_vecchia.html http://www.miosito/pagina_nuova.html

Quindi diamo il comando redirect 301, poi inseriamo l'url della vecchia pagina (senza http://miosito) preceduto da / e, quindi, diamo l'indirizzo completo della pagina a cui puntare (con http://miosito davanti).

c# Redirect con PHP o HTML

Nel caso vogliate gestire i redirect all'interno di un file HTML o PHP è comunque possibile.

Inserite all'interno del codice PHP della pagina che volete redirezionare questo:

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.miosito/pagina_nuova.php" );
?>

Dove, ovviamente, dove inserire l'indirizzo della nuova pagina (non serve quello della pagina da redirezionare perché state scrivendo sul codice di quella pagina)

Con l'HTML inserite un meta tag nell'header della pagina

<META HTTP-EQUIV=Refresh CONTENT="0; URL=http://www.nuovosito.com">

Anche in questo caso dovete inserire l'indirizzo della nuova pagina.

II# Pagina con contenuti duplicati

Spesso il rel="canonical" viene utilizzato come sostituto del redirect 301.
Ovviamente è una pratica sbagliata, perché sono due cose molto differenti.

Cosa fa il rel="canonical"

Il redirect 301, l'abbiamo capito, reindirizza verso un'altra pagina. Il rel="canonical" è un messaggio destinato ai motori di ricerca (al navigatore non cambia nulla).

Quando si hanno delle pagine con contenuto uguale o simile, per evitare di "essere penalizzato" dal motore di ricerca per la duplicazione del contenuti, si utilizza il rel canonical.

Lo capiamo facilmente con un caso pratico.
Capita spesso che ci siano degli e-commerce o dei cataloghi online, con delle pagine molto simili di prodotti con codice differente ma che trattano, in soldoni, dello stesso prodotto (pensiamo,  ad un sito che vende 50 tipologie di viti differenti...). 50 differenti url per pagine che differiscono di pochissimo. Quale pagina dovrebbe apparire sulla SERP di Google alla ricerca viti? Con il rel canonical diamo un'indicazione a google su quale sia la pagina da indicizzare, visto che le altre sono "duplicate".

Il Canonical andrebbe utilizzato quando:

  1. Ci sono delle pagine con contenuto duplicato ma si vogliono mantenere entrambe le pagine.
  2. Si utilizzano pagina dinamiche con multipli url per una singola pagina.
  3. E' impossibile implementare il 301
  4. Ci sono due siti molto simili ma c'è la necessità di averli tutti e due.

Il problema principale del Canonical è che stiamo parlando solo di un "suggerimento". Significa che la pagina che ci interessa meno potremmo continuare a trovarla nei risultati della ricerca. E non è detto neppure che debba trovarsi sotto alla pagina che abbiamo indicato come quella originale.

Poi viene usato spesso male. Non solo viene confuso, nel suo utilizzo, con il redirect. Peggio, viene utilizzato anche quando le pagine non hanno in grossa parte lo stesso contenuto.

Come fare un rel="canonical" per indicare ai motori di ricerca un contenuto duplicato

a# HTML

Per dire ai motori di ricerca che una pagina ha i contenuti di un'altra, si inserisce nel codice della pagina duplicata (non in quella che si vuole posizionare meglio, ma nella "copia") questa riga all'interno della sezione <head>

<link rel="canonical" href="http://miosito/pagina_originale" />

Attenzione ad utilizzare il link con http:// completo.

b# Wordpress

Utilizzando un CMS come Wordpress si può installare un plugin come SEO by Yoast che permette, per ogni post e ogni pagina, di indicare il link canonical, senza toccare una riga di codice.

Qual è meglio, rel="canonical" o il redirect 301?

Rispondere dipende sarebbe troppo facile.
Vabbeh, dipende.
Dipende dalle necessità di marketing.
Di fatto, un contenuto duplicato non avrebbe senso di esistere, perché se è duplicato su web, basta una pagina per indicarlo.

Anche nel caso delle 50 pagine di viti praticamente uguali: una buona risposta SEO sarebbe "trova le differenze e spiegale, spiegando quando comprare quella vite e quando no, quando è consigliata e a chi no".
Ma il mondo ideale a volte non è di questa terra.

Quindi, in quel mondo ideale, il rel="canonical" non esisterebbe.