Aujourd’hui j’ai envie de vous parler de la balise link rel="canonical", ou plus précisément de l’attribut rel="canonical".

Dans mon métier de SEO j’ai découvert assez tardivement cette notion de lien canonique et j’ai pris du temps à bien en saisir l’importance. Lors de mes cours de référencement et mes formations, je note également que c’est une des points les plus complexes à saisir. Et pourtant, il revêt une importance primordiale dans certains cas.

À quoi sert donc cet attribut ?

Pour débuter l’explication, je vous propose ce graphique ci-dessous issu du site d’un client.

apercu indexation dans google search console pour le rel canonical

Vous noterez que le site a environ 3000 pages que Google accepte et près de 300 000 que Google connaît mais qu’il ne souhaite pas. Ce rapport de un sur dix est courant, en particulier pour les sites d’ecommerce.

En effet, à partir du moment où vous avez des filtres de recherche par exemple, le site va générer une multitude d’url à votre insu. Pour les moteurs de recherche, toutes ces urls sont potentiellement indexables.

Et c’est là que réside le problème majeur et que l’attribut rel="canonical" intervient.

Un moyen efficace de lutter contre le contenu dupliqué (« Duplicate content »)

Donc en résumé, pour une page catégorie de produit par exemple, avec les filtres, je vais voir des centaines de variation de cette même page.

Mais vous allez me dire, ok, mais c’est pas grave, car Google va prendre la page de référence et va ignorer les autres. Si seulement… Mais en fait non et pas dans tous les cas !

Et c’est là qu’intervient le premier usage quasiment nécessaire de l’attribut rel="canonical". Il va tout simplement nous permettre d’informer Google et les autres moteurs de la page de référence (lien canonique).

Si vous ne le faites pas, vous compliquez alors grandement le travail d’indexation du moteur de recherche. Il va devoir fouiller tout seul parmi des centaines voire des millions de pages au contenu très similaires. Il faut bien se rendre compte que c’est exactement ce que le moteur ne souhaite pas faire car l’exploration a un coût pour lui (« Budget de crawl ») et il ne va pas chercher plus loin. Il va plutôt avoir une mauvaise image de votre site et il va moins bien l’indexer.

Donc concrètement, j’ai ma page de catégorie :

Ex : www.monsite.com/meubles-jardin

Et j’ai mis des filtres tri par les moins chers, les plus chers, les plus vendus, etc. Et j’aurais donc des urls de ce type :

www.monsite.com/meubles-jardin/?product_orderby=price

www.monsite.com/meubles-jardin/?product_orderby=popularity

www.monsite.com/meubles-jardin/?product_orderby=date

Les quatre pages proposent le même contenu (dans un ordre différent mais c’est le même contenu), elles se font donc concurrence. Pourtant qu’une seule pourra être sélectionnée parmi les quatre.

Pour que ce soit la page principale de la catégorie qui soit choisie, vous allez mettre dans vos pages concurrentes (les pages de filtre) ce code :

<link rel="canonical" href="www.monsite.com/meubles-jardin" />

De cette façon, le moteur de recherche va ignorer vos pages de filtre et vous serez sûr qu’il va bien prendre la page de référence.

Votre page de référence aura dans son code source le même code (), ce qui est logique et normal.

Voici un petit schéma récapitulant l'enjeu de l'attribut rel="canonical" :

Schéma pédagogique illustrant l'utilité de la balise link rel="canonical". L'infographie présente trois sections : 1) Le problème du contenu dupliqué avec plusieurs adresses web différentes pointant vers un contenu identique, 2) La solution technique avec l'implémentation du tag canonical dans l'en-tête HTML, et 3) Les six principaux avantages SEO : concentration de la valeur SEO, évitement des pénalités de contenu dupliqué, amélioration de l'indexation, simplification de la gestion des adresses comportant des paramètres, indication de la version préférée aux moteurs de recherche, et unification des métriques d'analyse web.

Autres cas d’usage des liens canoniques

Si l’attribut rel canonical est nécessaire pour les sites d’ecommerce, on l’utilise aussi dans d’autres situations.

Lutte contre le plagiat

C’est la fonction première d'un lien canonique : indiquer aux moteurs de recherche quelle est la version originale d’un contenu.

Si vous publiez un article sur votre site, même sans duplication interne, ajouter une balise canonique renforce la légitimité de votre URL auprès des moteurs de recherche.

Cela peut être particulièrement utile en cas de copie par d’autres sites. Si un concurrent ou un agrégateur de contenu reprend votre texte sans modifier la canonical, Google comprendra que votre version est la source principale et indexera en priorité votre page, au détriment du site copieur.

Ainsi, bien que la balise canonical ne protège pas directement contre le vol de contenu, elle permet d'envoyer un signal aux moteurs de recherche pour qu'ils privilégient votre page originale.

Les paramètres d’url

On a cité le cas de l’ecommerce et des filtres qui génèrent des urls multiples à cause de paramètres. Cependant, il existe des situations similaires en dehors de l’ecommerce. En particulier lorsque vous faites du suivi de conversion.

Du contenu très proche

Il peut arriver que vous ayez connaissance d’un contenu dupliqué sur votre site ou fortement similaire (95%). Mais pour des raisons d’expérience utilisateur, vous souhaitez conserver les deux pages. On peut aussi avoir des cas où l’on crée des pages de destination (« Landing page ») à des fins publicitaires.

Si vous ne souhaitez pas que ces pages fassent concurrence à vos autres pages similaires, à ce moment vous pouvez implémenter l’attribut rel="canonical". Ou vous pouvez demander à ce que l’article ne soit pas indexé avec la balise .

Schéma récapitulatif des quatre cas d'usage des liens canoniques :

Schéma illustrant les quatre principaux cas d’usage de la balise rel=canonical : e-commerce, lutte contre le plagiat, gestion des paramètres d’URL et contenus très similaires.

Comment implémenter cette balise link rel=canonical.

A ce niveau de l’article, on a vu les cas d’usage de l’attribut link rel=canonical. A présent, on va voir comment on fait concrètement pour l’ajouter.

Vérifier la présence du rel=canonical

Pour savoir si la balise link rel="canonical" est présente, allez sur une de vos pages et faites ctrl + u ou un clic droit sur la page et faites afficher le code source. Puis faites simplement ctrl + f pour afficher la barre de recherche et cherchez par exemple canonical. Si la réponse est positive, cela signifie que vous avez bien l’attribut implémenté, sinon vous devrez le configurer.

Vous pouvez aussi trouver cette information dans Google Search Console (Rendez-vous dans Indexation → Pages canoniques choisies par Google). Les outils tels que Screaming Frog peuvent également vous indiquer la présence ou l’absence de l’attribut.

Ajout automatique

C’est là qu’est la bonne nouvelle, très souvent l’attribut canonical va être ajouté automatiquement par votre CMS ou vous aurez besoin simplement d’une extension.

CMS Canonical par défaut Extensions disponibles
WordPress ❌ Non Yoast SEO, Rank Math, SEO Key, All in One SEO
Shopify ✅ Oui Gestion native
PrestaShop ✅ Oui Gestion native
Drupal ❌ Non Metatag, Yoast SEO, Pathauto
Wix ✅ Oui Gestion native
Webflow ✅ Oui Gestion native
Squarespace ✅ Oui Gestion native

Comme vous le voyez, dans WordPress on a besoin d’une extension pour gérer cet attribut. Mais pas de panique, les principales extensions gèrent très bien cela. Shopify, Wix, Prestashop, Webflow et Squarespace l’implémentent par défaut. Lors d’usages avancés faites cependant des vérifications, j’ai déjà vu des erreurs sur Prestashop notamment.

Ajout manuel de l’attribut rel canonical dans l’html

Si votre solution ne prévoit pas par défaut les URLs canoniques, vous devrez alors les configurer manuellement dans le code source de votre site. La balise HTML rel canonical doit être placée dans la section <head> de chaque page concernée, afin d'indiquer aux moteurs de recherche quelle version de l'URL est la référence.

Exemple d’implémentation dans le <head> :

<head>
    <link rel="canonical" href="https://exemple.com/page-principale">
</head>

Si vous utilisez un CMS, notamment en e-commerce, et que celui-ci ne propose pas une bonne gestion de la balise rel="canonical", il est préférable d’envisager une solution technologique plus adaptée. Cela est particulièrement crucial pour les sites comportant des filtres ou des paramètres d’URL, qui peuvent générer des versions multiples d’une même page.

Un attribut à manipuler avec précaution : les erreurs courantes

Lors de mes cours de SEO, j’ai pu observer à plusieurs reprises des mauvais usages de l’attribut rel canonical. Un client par exemple souhaitait renforcer sa page d’accueil et il renvoyait toutes ses pages en canonique vers la page d’accueil. Ce qui avait pour conséquence la désindexation de toutes les pages de son site à l’exception de la page d’accueil.

Sur Prestashop, j’ai observé aussi récemment un cas où l’url canonique n’était pas l’url qui était accessible sur le site. Il s’agissait d’une manière détournée de faire une redirection. Ce qui n’était pas très propre et pouvait compliquer la redistribution de l’autorité sur les pages.

D’autres erreurs courantes : indiquer en canonique une page non indexée ou mettre plusieurs fois la balise link rel canonical. Dans le sitemap, il ne faut pas mettre les pages non canoniques.

Par ailleurs, l’attribut ne dois pas être utilisé pour indiquer les pages alternatives en multilingues. On utilise dans ce cas link rel="alternate" hreflang.

Questions réponses en complément (FAQ)

On dit balise ou attribut canonical ?

Vous avez pu noter que dans l’article j’utilise principalement le terme attribut pour définir rel="canonical". En effet, il s’agit d’un attribut de la balise . Cependant dans le langage courant on dit facilement balise canonical ou balise canonique, ce qui techniquement n’est pas juste. On utilise aussi parfois le terme de lien canonique.

C’est mieux d’utiliser l’attribut noindex ou l’attribut canonical ?

Tout d’abord, ils auront la même conséquence. Si vous indiquez une url canonique différente sur votre page, c’est l’url canonique qui va être exploitée par le moteur de recherche et votre page non canonisée sera de fait non indéxée. Il est d’usage d’utiliser l’attribut canonical dans le cas de pages dupliquées. L’attribut noindex on va l’utiliser pour d’autres pages qu’on ne souhaite pas indexer. Par exemple, si vous ne souhaitez pas indexer votre page mentions légales, vous n’allez pas indiquer qu’elle est un doublon de la page d’accueil. Vous allez simplement demander sa non indexation.

Pourquoi Google ne choisit-il pas ma page canonique ?

Dans la Google Search Console, on voit parfois un message indiquant que Google a préféré une autre page pour la page canonique. Généralement c’est parcequ’il y a une incohérence entre l’url que vous avez indiqué en canonique et la réalité. La page canonique a peut être un contenu trop éloignée ou il y a des soucis techniques. Peut être qu’alors vous avez fait une erreur d’appréciation dans votre canonisation.

La balise link rel canonical influence-t-elle le budget de crawl de Google ?
Oui, elle aide Google à éviter d’explorer inutilement des pages en double, ce qui optimise le budget de crawl. Cependant, elle ne bloque pas l’exploration, elle guide simplement l’indexation.

Quelle est la différence entre l'attribut rel canonical et une redirection 301 ?
Une redirection 301 redirige totalement un utilisateur et les robots vers une autre page, tandis que l'attribut rel canonical laisse les pages accessibles mais indique à Google quelle version indexer.

Doit-on inclure les pages canoniques dans le sitemap XML ?
Oui, seules les pages canoniques doivent être incluses dans le sitemap. Les pages en canoniques vers une autre page ne doivent pas y figurer pour éviter toute confusion pour Google.

Comment vérifier si Google respecte ma balise canonical ?
Google Search Console propose un rapport dans Indexation → Pages canoniques choisies par Google qui indique si Google suit votre directive ou préfère une autre page.

Peut-on utiliser plusieurs balises canonical sur une même page ?
Non, il ne doit y avoir qu’une seule balise <link rel="canonical"> par page. En cas de doublon, Google risque d’ignorer toutes les directives.

Une page avec une balise canonical peut-elle être indexée par Google ?
Oui, Google peut parfois choisir d’ignorer la balise canonical et indexer la page si d’autres signaux (backlinks, popularité, contenu perçu comme unique) vont à l’encontre de la directive.

La balise canonical fonctionne-t-elle entre des domaines différents ?
Oui, on peut utiliser un canonical cross-domaine pour indiquer que la source d’un contenu est sur un autre site. C’est utile pour la syndication d’articles.

Faut-il mettre une canonical sur chaque page du site ?
Ce n’est pas obligatoire, mais recommandé pour éviter les variations d’URL accidentelles (http/https, www/non-www). Cependant, elle doit toujours être pertinente et justifiée.

La canonical a-t-elle un impact direct sur le référencement ?
Elle ne donne pas de boost SEO en elle-même, mais elle aide à consolider le PageRank sur la bonne URL et à éviter le contenu dupliqué, ce qui améliore indirectement le référencement.

La balise canonical empêche-t-elle Google d’explorer une page ?
Non, elle n’empêche pas l’exploration. Si vous voulez empêcher Google de crawler ou d’indexer une page, il faut utiliser la fonction disallow dans le fichier robots.txt (pour bloquer le crawl) ou meta name="robots" content="noindex" (pour bloquer l’indexation).

Qu’est-ce qu’une self canonical et à quoi ça sert ?
Une self canonical est une balise rel="canonical" qui pointe vers elle-même. Elle indique aux moteurs de recherche que la page est la version principale à indexer. Cela permet d’éviter les variations d’URL non souhaitées (?utm=, /page/, HTTP vs HTTPS) et de renforcer l’indexation correcte d’une page.

Faut-il utiliser l’attribut rel="canonical" pour les pages multilingues ?

Non, l’attribut rel="canonical" ne doit pas être utilisé pour gérer les versions linguistiques d’un site. Pour cela, il faut utiliser la balise <link rel="alternate" hreflang="x">, qui indique aux moteurs de recherche quelle version afficher selon la langue et la région de l’utilisateur.