Tag rel canonical: cosa c’è dietro gli URL canonici

Nell’indicizzare il contenuto di un sito web, i motori di ricerca seguono in linea di massima due principi: in primo luogo verificano che ogni pagina da indicizzare sia in grado di rispondere ad almeno una query di ricerca rilevante; in secondo luogo considerano esclusivamente le pagine Internet associate a un solo URL. Se quest’ultima condizione non si verifica, la pagina in questione verrà classificata come contenuto duplicato (ingl. duplicate content), implicando di conseguenza la mancata indicizzazione della stessa.

Questa è di certo una sfida per i progetti web che offrono gli stessi contenuti su diversi domini nazionali (come ad esempio i negozi online con pagine per l’Italia, l’Austria e la Svizzera); bisogna aggiungere inoltre che le descrizioni dei prodotti spesso differiscono tra loro solo in termini di valuta e in costi di spedizione. Dunque generalmente sono i negozi online i siti Internet che maggiormente corrono il rischio di incappare in contenuti duplicati, soprattutto se offrono più varianti di uno stesso prodotto con descrizioni simili: è il caso, ad esempio, di un e-commerce che vende scarpe di modelli identici ma disponibili in diversi colori.

Una possibile soluzione a questo problema è il tagrel canonical: grazie al suo aiuto è possibile scegliere un URL o un URI come risorsa principale per l’indicizzazione.

Cosa si intende per tag rel canonical?

Nel 2009 Yahoo, Microsoft e Google hanno introdotto un nuovo tipo di link, ossia il link canonico, chiamato spesso con il suo nome inglese, canonical link. Il link canonico è diventato rapidamente uno degli strumenti più importanti per la SEO e, dal 2012, è entrato nella RFC 6596 degli standard ufficiali per il web. Il tag rel canonical è diventato componente fondamentale dell’elemento link presente nell’intestazione HTML di una pagina web, lì dove compaiono anche title e metadescription. Il link canonico implementato in una pagina web fa riferimento a un URL o URI specifico, detto poi a sua volta URL canonico, il quale viene utilizzato come risorsa per l’indicizzazione della pagina. La corretta canonizzazione di un URL permette di aumentare la link popularity e la reputazione di un sito web, generando così un ranking positivo. Dato che gli URL taggati con rel canonical non vengono inclusi nell’index, non sorgerà alcun problema di contenuto duplicato. Tuttavia l’implementazione del link canonico in una pagina web rappresenta soltanto un suggerimento ai motori di ricerca, i quali non sono tenuti a includere l’attributo del link nella loro valutazione. Se l’implementazione del link rel canonical è eseguita in modo scorretto o incompleto, si può correre il rischio che i motori di ricerca ignorino l’intero sito Internet. Per questo motivo è molto importante gestire correttamente il tag rel canonical.

Come funziona il tag rel canonical?

Per far sì che il tag rel canonical funzioni, sono necessari due passaggi preliminari: prima di tutto bisogna conoscere l’URL esatto della pagina Web da canonizzare, poiché questa verrà definita come risorsa principale. Successivamente è necessario un elementolink a cui affiancare l’URL canonico, utilizzando il codice esatto. Ecco di seguito come deve apparire il codice corretto:

<link rel="canonical" href="URL/URI della pagina web canonica">

L’elemento link, che nel linguaggio HTML è sprovvisto di un tag finale, contiene gli attributi rel e href in qualità di elemento vuoto. Il primo tag è necessario per specificare la relazione tra il documento corrente e quello linkato, mentre il secondo tag serve a indicare dove si trova il documento linkato. I valori riportati tra le virgolette indicano che l’URL linkato è canonico, come è specificato dall’attributo href.

N.B.

Il tag rel canonical può essere utilizzato anche per i domini esterni, non soltanto per i link interni. La procedura è la stessa: anche in questo caso è necessario riportare l’URL esatto e non l’indirizzo del sito web.

Come è già stato accennato, affinché le pagine alternative possano fare riferimento alla risorsa principale, il codice deve essere inserito nell’area di intestazione dei rispettivi documenti HTML. Se il contenuto non è disponibile in HTML, come capita ad esempio per un file PDF, il tag può essere implementato anche nell’header HTTP. Questo segue una sintassi HTML leggermente diversa:

Link: <URL/URI della pagina web canonica>; rel="canonical"

Quando è utile utilizzare il rel canonical?

I motori di ricerca non sono obbligati a prendere in considerazione il tag rel canonical. Indicando una sola versione concreta e rappresentativa del contenuto duplicato, si dà solo un aiuto ai crawler nell’analizzare le pagine Web. Dato che il codice del tag rel canonical deve essere implementato singolarmente per ogni contenuto multiplo e per ogni URI alternativo, ci si chiede se questo sforzo relativamente elevato sia effettivamente proficuo. Di seguito spiegheremo quattro scenari in cui dovreste sicuramente prendere in considerazione l’utilizzo del tag rel canonical.

I contenuti sono distribuiti su URL dinamici

Oggi gli URL dinamici giocano un ruolo fondamentale, soprattutto per i siti Internet dei negozi online. Le pagine Web che interagiscono con l’utente, mostrando dei contenuti specifici, fanno sì che diversi utenti possano visualizzare risultati simili (incluse alcune piccole variazioni), eppure queste pagine sono considerate problematiche dai crawler dei motori di ricerca. In questo caso per evitare i contenuti duplicati è consigliabile utilizzare il tag rel canonical.

Stessi contenuti per URL diversi

È possibile che in progetti Web come blog, negozi e manuali online sia possibile visualizzare in diverse sezioni del sito lo stesso contenuto, magari sotto URL diversi tra loro. Ad esempio, uno shop online potrebbe presentare la stessa panoramica delle sue "camicie verdi" sotto i seguenti URL:

  • ilmio-ecommerce.shop/moda/camicia-verde
  • ilmio-ecommerce.shop/moda-estate/verde-camicia
  • ilmio-ecommerce.shop /moda-inverno/camicia-verde

Il fatto che URL diversi possano rimandare a contenuti uguali tra loro può capitare soprattutto nel momento in cui viene modificata la struttura di un sito web oppure se si è verificato un trasferimento di dominio. Per risolvere questo problema si ricorre generalmente al redirect 301, ma se questo risulta impossibile per motivi tecnici, allora si può ricorrere al link rel="canonical".

Stessi contenuti per domini differenti

Si è già accennato brevemente alla possibilità di ricorrere ai canonical cross domain. Con questa possibilità i contenuti saranno spostati su un altro dominio senza creare duplicati. Intanto i fattori rilevanti per il ranking come i feedback positivi degli utenti, i link e altri ancora, verranno trasferiti all’URL principale, migliorando in questo modo le sue prestazioni.

Stessi contenuti in formati differenti

In certi casi specifici è bene curarsi di rendere disponibile uno stesso contenuto in formati diversi: ad esempio, nel caso si debba visualizzare un modulo, sarà ideale non mostrarlo solo in versione HTML, ma anche come file PDF adatto alla stampa. In questo caso per fare sì che i motori di ricerca non valutino in modo distinto le due versioni dello stesso dato, assegnando al sito web un ranking errato, si consiglia di ricorrere al tag rel canonical. Come è stato già accennato precedentemente, è necessario integrare il tag nella sintassi dell’header HTTP.

Consiglio

Se si dispone di un certificato SSL/TLS, bisogna trasformare gli URL HTTPS protetti in URL canonici. Inoltre, anche le varianti non protette (HTTP) devono rimandare agli URL canonici. Lo stesso vale anche per le pagine mobile o AMP.

Tag rel canonical e redirect 301: differenze

A una prima analisi il tag rel canonical e il redirect 301 sembrano essere del tutto simili, eppure presentano delle differenze sostanziali. I redirect basati sul codice di stato HTTP 301 (Moved Permanently) segnalano ai motori di ricerca che le pagine web con diversi URL ma con contenuto simile devono essere valutate come pagine uniche: in questo caso gli utenti vengono indirizzati all’URL principale, mentre tutte le altre varianti di quella determinata pagina verranno eliminate. A differenza del redirect 301, i motori di ricerca riconoscono le pagine Internet implementate con il tag rel canonical come delle copie: queste rimarranno accessibili e consultabili in qualsiasi momento.

Un’altra differenza importante tra questi due fattori consiste nel fatto che i motori di ricerca non ignorano mai un redirect, al contrario di quanto a volte avviene con le pagine implementate con il rel canonical. E da ultimo ma non per importanza, i due metodi differiscono anche in termini di funzionalità riguardo i domini multipli: mentre i redirect 301 spostano una pagina da un dominio A a un dominio B, il tag canonico indica soltanto che il dominio B è equivalente al dominio A.

Tag rel canonical: errori frequenti

In linea di massima utilizzare un URL canonico resta la soluzione ideale per evitare la presenza di contenuti duplicati all’interno del proprio sito web. Infatti durante l’indicizzazione di un sito Internet i motori di ricerca tendono a riconoscere il rel canonical e riescono a distinguere a quale URL appartiene il contenuto originale senza penalizzare il sito Internet con un ranking sbagliato, tutt’altro: i segnali positivi dei motori di ricerca vengono associati a quell’URL specifico, migliorandone il ranking. Tuttavia va notato che se il tag canonico viene implementato nel modo sbagliato o viene applicato in modo scorretto, può diventare rapidamente un fattore negativo. Di seguito vi mostriamo gli errori d’uso più comunidel tag rel canonical.

Le pagine numerate rimandano a un URL canonico

Per preparare i contenuti nel migliore dei modi, molti webmaster ricorrono alla cosiddetta paginazione dei dati. In particolare, i giornali e i periodici online ricorrono a questo metodo per ripartire i contenuti e numerare le pagine. Tuttavia se per i contenuti in serie viene utilizzato il tag rel canonical implementando il link rel="canonical" su pagine successive a quella iniziale, si commette un grave errore: le pagine numerate non sono duplicati. Ciò che avviene realmente è che i motori di ricerca non indicizzano affatto quel sito web. Se si desidera comunque fornire ai motori di ricerca informazioni sul layout di pagina, è consigliabile seguire due procedure:

  • Rimandare in ogni URL sia alla pagina precedente che alla successiva. Per questo è necessario l’attributo link rel, ma bisogna sostituire il valore "canonical" con "prev" o con "next".
  • Con link rel="canonical" si fa riferimento a una singola versione del contenuto che unisce tutti i contenuti paginati.

Gli URL relativi non rimandano alla pagina canonica desiderata

Come per la maggior parte dei tag HTML, anche l’elemento <link> fa riferimento sia agli URL relativi che agli URL assoluti. Mentre gli URL assoluti necessitano del path completo (“http://” e così via), gli URL relativi rimandano a una cartella specifica del sito Web in questione, senza che ci sia bisogno di specificare l’URL completo. Ad esempio, un path di questo tipo "immagini/immagine.jpg" indica che l’immagine immagine.jpg  si trova nella sottocartella immagini della directory corrente. Tuttavia l’utilizzo del rel canonical in percorsi di questo tipo potrebbe causare alcune complicazioni; nel peggiore dei casi i crawler potrebbero completamente ignorare il tag. Osserviamo il seguente esempio:

< link rel="canonical" href="example.com/cupcake.html" >

Data l’assenza del prefisso HTTP, il crawler valuterà l’URL “example.com/cupcake.html” come un URL relativo, presumendo poi che l’URL canonico desiderato sia invece “http://example.com/example.com/cupcake.html”. Dunque se si utilizza il tag canonical è sempre preferibile indicare l’URL completo o, in alternativa, fare riferimento almeno a un URL assoluto senza dominio:

< link rel="canonical" href="/cupcake.html" />

Le pagine si riferiscono a più URL canonici

Gli URL canonici non prevedono che una sottopagina si riferisca contemporaneamente a più pagine principali. Tuttavia è possibile creare rapidamente i link multipli quando si lavora con un Content Management System o con un software per e-commerce. Ciononostante i plug-in e i template utilizzano tag canonici automaticamente, anche se avete già contrassegnato un URL canonico. In particolare quando si utilizzano tali estensioni e quando si apportano modifiche alla struttura della pagina, è necessario controllare il codice sorgente e, se necessario, correggere tutte le voci. In caso contrario i vostri sforzi saranno probabilmente vani, in quanto è probabile che i motori di ricerca ignorino tutti i tag rel canonical invece di preferirne uno.

L’URL canonico è presente nel tag body

Spesso può capitare che un elemento link sia implementato in un documento HTML. Tuttavia il prerequisito fondamentale per la corretta funzionalità dei tag utilizzati è quello di inserirli nell’<head>. Al contrario, se il tag è presente nell’elemento <body> della stessa pagina, questo non avrà alcun effetto. Al fine di evitare problemi nell’elaborazione della sintassi del codice HTML (il cosiddetto “HTML parsing”), Google raccomanda di inserire il tag rel canonical nella parte iniziale dell’intestazione.

Il tag rel canonical non è presente nella versione mobile

Se oltre alla versione desktop si vuole diffondere in rete anche la versione mobile del proprio sito web, può capitare che si incappi in molteplici errori riguardo l’uso dei tag. Può capitare che le pagine in versione mobile vengano indicizzate nonostante gli errori e i dati mancanti, ma è ad ogni modo necessario supportare i motori di ricerca nell’inserimento dei tag e nella classificazione. Ad esempio, Google consiglia di contrassegnare la versione mobile come versione alternativa utilizzando il tag rel="alternate" e di rimandare agli URL desktop delle pagine mobili tramite il tag rel canonical. Nella guida per "Mobile Friendly Websites" si trovano tutti i consigli e i procedimenti per non commettere questo tipo di errori.

Incompatibilità fra il tag rel canonical e il tag hreflang

I siti Internet internazionali con domini di paesi diversi rappresentano una grande sfida per la SEO. Mentre da un lato tutte le varianti di una pagina web devono ottenere un ranking positivo ed essere contemporaneamente disponibili per l’utente giusto, dall’altro bisogna fare sì che i contenuti duplicati siano ridotti al minimo. A tale scopo uno degli strumenti principali è l’attributo hreflang, con cui è possibile contrassegnare ogni variante di un pagina come alternativa equivalente. A tal fine, tuttavia, è necessario che ogni pagina rimandi a sé stessa. Infatti se un URL rimanda a un URL canonico tramite tag rel canonical diventa una grande contraddizione per i crawler dei motori di ricerca.

Il risultato è che il motore di ricerca ignora i segnali e indicizza le pagine web in base ad altre caratteristiche. È pertanto essenziale non utilizzare i due tag nello stesso momento.

N.B.

Non è soltanto la combinazione tra tag rel canonical e hreflang a creare incongruenze e conseguenziali effetti negativi sul ranking, bensì anche l’utilizzo simultaneo di tag canonical e istruzioni come "nofollow","noindex" o "disallow" non sono be graditi da Google.