URL canonique : ce que c'est et comment la configurer
Ce qu'est rel canonical, pourquoi les moteurs de recherche en ont besoin et comment ajouter la balise canonical en HTML, dans les en-têtes HTTP et dans les CMS populaires.
Qu'est-ce qu'une URL canonique
Une URL canonique (ou rel canonical) est une balise HTML qui indique à un moteur de recherche : parmi toutes les versions de cette page, celle-ci est la version principale. Elle répond à l'un des problèmes SEO les plus courants, le contenu dupliqué, c'est-à-dire un même contenu accessible à plusieurs adresses.
Sans canonical, le moteur de recherche décide seul de la version à considérer comme principale, et il retient souvent celle que vous ne voulez pas voir dans l'index. La balise vous donne la main : vous déclarez explicitement l'URL préférée, et Google et Yandex suivent cette indication dans la plupart des cas.
Canonical en chiffres
Année de lancement
Google, Yahoo et Bing ont annoncé ensemble la prise en charge de rel canonical, le premier standard SEO commun à tous les moteurs
Sites avec des doublons
Selon Ahrefs, environ 60 % des sites ont des pages au contenu dupliqué qui nécessitent une balise canonical
Moteurs de recherche
Google, Yandex et Bing prennent en charge rel canonical. C'est une indication, pas une directive : le moteur la suit dans la plupart des cas, mais pas dans tous
Pas une redirection
Canonical est une indication pour le moteur de recherche, pas une redirection pour l'utilisateur. La page en double reste accessible à sa propre URL
Canonical : sens et notion clé
Le mot « canonical » vient des mathématiques et de la logique, où une forme canonique désigne la représentation la plus simple et la plus standard d'un objet. Dans le contexte des URL, l'adresse canonique est l'adresse « officielle » qu'un moteur de recherche utilise pour le positionnement et l'indexation, tandis que toutes les autres versions sont traitées comme des doublons.
Canonical et redirection 301 sont souvent confondues. La différence clé : une redirection est une directive, alors que canonical est une indication. Une redirection envoie physiquement l'utilisateur vers une nouvelle URL. Canonical garde l'utilisateur sur la page d'origine, mais indique au moteur de recherche quelle URL considérer comme principale pour l'indexation.
| Critère | rel="canonical" | Redirection 301 |
|---|---|---|
| Type de signal | Indication | Directive |
| L'utilisateur voit | L'URL de la page en double | L'URL de destination (principale) |
| Le moteur indexe | Uniquement l'URL canonique | Uniquement l'URL de destination |
| Transmission de la popularité | Partielle (pas 100 %) | Complète (~99 %) |
| Les deux URL restent accessibles | Oui | Non : le doublon renvoie un 301 |
| Cas d'usage | Doublons, filtres, pagination | Déplacement définitif d'une page |
Comment ajouter la balise canonical
La balise canonical se place dans la section <head> de la page en double. La syntaxe n'a pas changé depuis 2009 : il s'agit d'un seul élément <link> vide. Attention, l'attribut href doit contenir une URL absolue complète :
<head>
<meta charset="UTF-8">
<title>Laptops — buy at TechShop</title>
<link rel="canonical" href="https://example.com/catalog/laptops/">
</head><meta rel="canonical"> ou <meta name="canonical">. Cette balise n'existe pas. La seule forme valable est <link rel="canonical" href="..."> dans <head>. Les moteurs de recherche ignorent complètement la variante meta.Si la page est un PDF, une image ou un autre fichier sans <head> HTML, l'indication canonical peut être transmise par l'en-tête HTTP Link. La configuration nginx ci-dessous fonctionne aussi bien pour les ressources non HTML que pour les pages classiques, lorsque vous contrôlez directement le serveur :
# nginx.conf — canonical via HTTP header
# For PDF and other non-HTML resources:
location ~* \.pdf$ {
add_header Link '<https://example.com/docs/price-list.pdf>; rel="canonical"';
}
# For dynamic URLs with GET parameters:
location /catalog/ {
add_header Link '<https://example.com/catalog/>; rel="canonical"';
}Voici les cinq règles des balises canonical les plus souvent enfreintes :
- URL absolues uniquement. Écrivez toujours l'adresse complète :
https://example.com/page/, et non/page/. Les canonical relatives sont techniquement prises en charge, mais se comportent mal quand le domaine ou le protocole change. - Canonical en https. La canonical doit pointer vers la version https de la page. Si le site est en HTTPS mais que la canonical renvoie vers
http://, on crée un doublon que le moteur ne peut pas résoudre correctement. - Une seule canonical par page. Plusieurs balises
<link rel="canonical">aux valeurs href différentes : le moteur les ignore toutes, ou en retient une au hasard. - La canonical doit être accessible. Une balise qui pointe vers une 404 ou une URL en 301 n'a aucun sens. La page principale doit renvoyer 200 OK.
- Un slash final cohérent. Si l'URL principale est
/catalog/(avec slash), la canonical doit aussi l'inclure. Mélanger les variantes crée de nouveaux doublons.
Quand utiliser canonical
Canonical répond à six scénarios classiques de duplication de contenu. Voici chacun d'eux, avec des exemples d'URL réelles.
Les URL comme /catalog/?sort=price et /catalog/?utm_source=email reprennent le même contenu que /catalog/. La canonical de toutes ces pages doit pointer vers /catalog/. C'est la source de doublons la plus répandue dans les boutiques en ligne.
Les pages comme /blog/page/2/ et /blog/page/3/ ont un contenu unique : une canonical sur la pagination consiste donc en général à mettre une auto-canonical sur chaque page. Ne pointez pas toutes les pages paginées vers la première : cela masque du contenu unique à l'indexation.
Une page de catégorie avec filtres peut générer des centaines d'URL : /shoes/?color=red&size=42. Si une page filtrée a un contenu unique et une demande de recherche, indexez-la. Si elle duplique la catégorie parente, la canonical pointe vers /shoes/.
Quatre variantes de la page d'accueil : http://example.com, https://example.com, http://www.example.com, https://www.example.com. Choisissez une version principale (de préférence https://example.com sans www) et définissez une canonical ainsi qu'une redirection 301 depuis les autres.
Si votre article a été repris sur un site partenaire (syndication, miroir), demandez au partenaire d'ajouter une canonical pointant vers votre original. Google prend en charge la canonical inter-domaines : il considère votre domaine comme la source et lui transmet la popularité des liens.
Si votre page apparaît sur plusieurs agrégateurs sans votre intervention, ajoutez une auto-canonical sur l'original. Google privilégie les URL dotées d'une auto-canonical explicite lorsqu'il choisit la version principale parmi les doublons.
Canonical dans les CMS : WordPress, Bitrix et Tilda
La plupart des CMS populaires génèrent automatiquement des canonical ou proposent un outil intégré. Une configuration manuelle n'est nécessaire que pour des cas particuliers, ou lorsque le CMS ne les gère pas correctement.
WordPress
Les extensions Yoast SEO et Rank Math ajoutent automatiquement une <link rel="canonical"> autoréférente à chaque page et à chaque article. Si vous n'utilisez pas ces extensions, ajoutez le code suivant au fichier functions.php de votre thème :
<?php
// functions.php — canonical without an SEO plugin
add_action('wp_head', function() {
if (is_singular()) {
echo '<link rel="canonical" href="' . esc_url(get_permalink()) . '">' . "\n";
} elseif (is_home() || is_front_page()) {
echo '<link rel="canonical" href="' . esc_url(home_url('/')) . '">' . "\n";
}
}, 1);Bitrix
Dans 1C-Bitrix, la canonical se définit via les propriétés de la page. L'approche standard consiste à attribuer la valeur dans un composant, puis à l'afficher dans le header.php du template principal :
<?php
// In a component or init.php: set the canonical
$canonicalUrl = 'https://' . SITE_SERVER_NAME . $APPLICATION->GetCurPage(false);
$APPLICATION->SetPageProperty('canonical', $canonicalUrl);
// In the template's header.php: output the tag
$canonical = $APPLICATION->GetPageProperty('canonical');
if ($canonical):
?><link rel="canonical" href="<?= htmlspecialchars($canonical, ENT_QUOTES, 'UTF-8') ?>">
<?php endif; ?>Tilda
<head> automatiquement. Pour une canonical inter-domaines ou un cas particulier, utilisez un Zero Block avec un insert HTML dans <head>.Erreurs et vérification via Google Search Console
Google Search Console est l'outil principal pour suivre le statut de vos canonical. Dans le rapport Indexing → Pages, plusieurs statuts concernent les canonical :
| Statut GSC | Ce que cela signifie | Que faire |
|---|---|---|
| Alternate page with proper canonical tag | Google a accepté votre canonical. Le doublon n'est pas indexé et la popularité des liens remonte vers la page principale | Tout est correct : c'est le comportement attendu |
| Duplicate, Google chose different canonical than user | Google a ignoré votre canonical et a choisi une autre URL comme version principale | Vérifiez : URL absolue ? Pas de 301 ? Contenu identique sur les deux pages ? |
| Duplicate without user-selected canonical | Le moteur a trouvé des pages similaires sans canonical | Ajoutez une balise canonical à toutes les pages en double |
| Indexed | La page est acceptée dans l'index comme version principale (auto-canonical ou choix explicite) | Normal pour les pages principales |
Au-delà de la GSC, vérifiez la canonical au niveau de la réponse HTTP. Le moyen le plus rapide, sans outil, est d'afficher le code source de la page (Ctrl+U, puis recherche de canonical) ou d'utiliser curl :
# Check canonical in HTTP header:
curl -sI https://example.com/catalog/?sort=price | grep -i link
# Check canonical in HTML (first 2000 bytes of response):
curl -s https://example.com/page/ | head -c 2000 | grep -i canonical- Chaînes de canonical. Page A → canonical B → canonical C. Les moteurs préfèrent les pointeurs directs. Assurez-vous que la canonical mène directement à l'URL principale finale, sans étapes intermédiaires.
- Canonical vers une redirection. Une canonical qui cible une URL en 301 envoie un signal ambigu. Le moteur doit suivre la chaîne : il est plus propre de pointer directement vers l'URL finale.
- Noindex et canonical : une contradiction. Une page qui porte à la fois
noindexet une canonical envoie des signaux contradictoires. Utilisez l'un ou l'autre : soit noindex la page, soit définissez une canonical vers l'URL principale. - Canonical via JavaScript. Google peut traiter les balises canonical injectées par JS, mais c'est plus lent et moins fiable. Privilégiez toujours un
<link>statique dans le<head>du HTML.
canonical. Si la balise ne se trouve pas dans <head>, il y a un problème de template. Si la canonical pointe vers une 404 ou vers un domaine externe inattendu, c'est une erreur de configuration critique.FAQ
Réponses aux questions les plus fréquentes sur les canonical, qui reviennent pendant les audits SEO.
Synthèse
La balise canonical est un outil de base du SEO technique. Elle est simple à mettre en place, mais elle provoque régulièrement de sérieux problèmes d'indexation lorsqu'elle est mal configurée ou absente sur les sites qui génèrent des URL dynamiques. Trois règles suffisent à éviter 80 % des erreurs possibles : URL absolue, canonical en https et absence de chaînes.
Commencez par faire un état des lieux : GSC → rapport Pages → filtrez sur les statuts « Duplicate » et « Not indexed ». Vous verrez rapidement où la canonical manque ou est écrasée par le moteur de recherche.
Quelle est la différence entre canonical et une redirection 301 ?
Puis-je pointer une canonical vers une page d'un autre domaine ?
<link rel="canonical" href="https://your-site.com/article/">. Google transfère la popularité des liens et l'attribution du contenu à votre domaine.Pourquoi Google ignore-t-il ma canonical ?
Comment vérifier une canonical sans crawler ?
canonical ; (2) Chrome DevTools : onglet Elements, recherche de <link rel ; (3) Google Search Console : rapport Pages, cliquez sur une URL, et le panneau latéral affiche les champs « Google-selected canonical » et « User-declared canonical ».Comment corriger le statut « Alternate page with proper canonical tag » dans la GSC ?
Check it with SpiderHead
Free and local: run the audit on your own machine.



