Quasi ogni sito pubblica lo stesso contenuto a più indirizzi, spesso senza saperlo. Una scheda prodotto raggiungibile da due categorie, un articolo con e senza parametri di tracciamento, una pagina con e senza barra finale. Il tag canonical serve a dire al motore quale di queste versioni considerare principale, in modo che segnali e visibilità si concentrino su un solo URL.
La sintassi
Il canonical si dichiara nel <head>:
<link rel="canonical" href="https://example.com/scarpe/stivali-pelle/">
oppure, per i file non HTML come i PDF, con un header HTTP:
Link: <https://example.com/guide/manuale.pdf>; rel="canonical"
L'URL dovrebbe essere assoluto. Gli URL relativi sono tecnicamente accettati, ma aprono la porta a errori quando lo stesso modello viene servito da host diversi, come staging e produzione.
Un suggerimento, non un comando
A differenza del noindex, che i motori rispettano, il canonical è un indizio. Il motore lo confronta con altri segnali e può scegliere un canonico diverso da quello dichiarato. I segnali che pesano di più sono:
- i redirect, che sono il segnale più forte di tutti;
- i link interni: se tutto il sito linka la versione A ma il canonical indica B, c'è contraddizione;
- la presenza nella sitemap;
- il protocollo HTTPS rispetto a HTTP;
- la somiglianza reale dei contenuti.
Quando il motore ignora il canonical, di solito è perché gli altri segnali raccontano una storia diversa. La soluzione non è insistere con il tag, ma allineare tutto: link interni, sitemap, redirect e canonical devono indicare lo stesso URL.
Il canonical autoreferenziale
È buona pratica che ogni pagina indicizzabile dichiari sé stessa come canonica. Protegge dai duplicati generati da parametri esterni: se qualcuno linka la pagina aggiungendo ?utm_source=..., il canonical riporta i segnali all'indirizzo pulito. Lo stesso vale per le copie del sito servite da proxy, traduttori automatici o aggregatori che ripubblicano l'HTML così com'è: il tag autoreferenziale viaggia insieme al contenuto e indica comunque l'originale.
Quando usare canonical e quando no
| Situazione | Strumento adatto |
|---|---|
| Stesso contenuto con parametri di tracciamento | canonical verso l'URL pulito |
| Prodotto in più categorie | canonical verso un percorso unico |
| Pagina spostata definitivamente | redirect 301, non canonical |
| Pagina da escludere dall'indice | noindex, non canonical |
| Varianti linguistiche | hreflang, ognuna canonica di sé stessa |
| Pagine di una serie paginata | ciascuna canonica di sé stessa |
L'ultimo punto è un errore diffuso: impostare il canonical di tutte le pagine di un elenco paginato verso la prima. In questo modo i contenuti delle pagine successive, e i link ai prodotti che contengono, rischiano di non essere considerati.
Gli errori tecnici più comuni
Canonical verso pagine non indicizzabili
Il canonico dichiarato deve rispondere 200, essere indicizzabile e non fare redirect. Un canonical che punta a un 404, a un URL con noindex o a un indirizzo che reindirizza altrove è un segnale rotto.
Canonical multipli
Due tag canonical nella stessa pagina, magari uno dal tema e uno da un plugin, con valori diversi: di fronte all'ambiguità il motore può ignorarli entrambi.
Canonical inserito nel posto sbagliato
Il tag deve stare nel <head>. Se finisce nel <body>, per esempio perché uno script lo inserisce dopo un elemento che chiude l'head in anticipo, viene ignorato.
Canonical cambiato da JavaScript
Se l'HTML iniziale dichiara un canonical e JavaScript lo modifica dopo, il motore riceve due versioni. Meglio che sia corretto fin dall'inizio.
Canonical tra contenuti diversi
Usare il canonical per «accorpare» pagine che non sono duplicate, come due articoli simili ma distinti, non funziona: il motore riconosce la differenza e ignora il suggerimento.
Come verificarlo
- Controlla il canonical nell'HTML iniziale e nel DOM renderizzato.
- Verifica che l'URL canonico risponda 200 e non abbia noindex.
- Usa l'ispezione URL degli strumenti per webmaster per confrontare il canonico dichiarato con quello scelto dal motore.
- Con un crawler, cerca pagine il cui canonical punta altrove ma che ricevono molti link interni: sono incongruenze da sistemare.
In sintesi
- Il canonical indica la versione principale tra contenuti duplicati.
- È un suggerimento: redirect, link interni e sitemap devono confermarlo.
- Ogni pagina indicizzabile dovrebbe avere un canonical verso sé stessa.
- Non usarlo al posto di redirect, noindex o hreflang.
- Il canonico deve rispondere 200, essere indicizzabile e unico.