Le duplicate content est le problème SEO le plus sous-estimé sur Shopify. Pas parce qu’il est complexe à régler. Parce que personne ne pense à vérifier qu’il existe sur sa boutique.
Tu peux avoir le meilleur contenu, le meilleur thème et les meilleurs backlinks. Si Google indexe trois versions différentes de chaque page produit, ton autorité se dilue, ton budget crawl part en fumée, et tu rankes à une fraction de ce que tu devrais.
La bonne nouvelle : les correctifs prennent moins d’une heure une fois identifiés. Voici les 6 sources techniques de duplicate content spécifiques à Shopify, et le code à coller pour chacun.
Pourquoi Shopify génère du duplicate content par défaut
Ce n’est pas un bug, c’est structurel. Shopify expose le même produit via plusieurs chemins d’URL pour des raisons d’UX. Un T-shirt blanc devient accessible via au moins quatre adresses simultanément :
/products/t-shirt-blanc/collections/hommes/products/t-shirt-blanc/collections/nouveautes/products/t-shirt-blanc/collections/all/products/t-shirt-blanc
Pour Google, c’est quatre pages distinctes avec un contenu strictement identique. Shopify pose bien une balise canonical qui dit “la vraie page, c’est /products/t-shirt-blanc”. Mais tous les crawlers ne la respectent pas systématiquement, et ta link equity se sépare quand même.
À ça s’ajoutent les pages de tags, les filtres, la pagination, les paramètres de tri, les variantes, et les pages système. Au total, sur une boutique Shopify standard non optimisée, le ratio “URLs indexables / URLs uniques” peut monter à 5 ou 6 contre 1. Ce qui veut dire que 80% des URLs crawlées par Google ne devraient pas l’être.
Les 6 sources principales et leur correctif
Source 1 : les URLs produits dans les collections
C’est la plus volumineuse. Chaque collection dans laquelle ton produit apparaît crée une nouvelle URL crawlable.
Le fix : vérifier que ta balise canonical est bien présente dans layout/theme.liquid. Sur un thème OS 2.0, tu dois trouver cette ligne dans le <head> :
<link rel="canonical" href="{{ canonical_url }}">
Si cette ligne est absente ou si elle a été bidouillée par un développeur précédent, c’est priorité numéro un. Sans elle, Google traite chaque chemin comme une page indépendante.
Source 2 : les pages de tags de collection
Quand un visiteur filtre une collection par tag (par exemple /collections/t-shirts/femme), Shopify crée une nouvelle URL indexable. Si ta collection T-shirts a 10 tags, ça fait 10 pages quasi identiques qui se battent pour le même rank.
Le fix : bloquer ces URLs dans robots.txt.liquid. Tu accèdes au fichier via Boutique en ligne, puis Thèmes, Modifier le code, Config, puis robots.txt.liquid. Ajoute cette ligne :
Disallow: /collections/*+*
Le symbole + dans une URL Shopify signale un filtrage par tag. Cette directive bloque tous les URLs de cette forme, sans toucher aux pages de collection principales.
Source 3 : la pagination des collections et du blog
Les pages ?page=2, ?page=3 et au-delà sont techniquement du contenu dupliqué (même structure, listes de produits qui se chevauchent). Historiquement on utilisait rel="prev" et rel="next" pour signaler la séquence.
Google a officiellement abandonné le support de ces balises en 2019. Donc inutile de t’embêter à les ajouter pour Google. En revanche, Bing les respecte encore, donc si tu vises le marché européen mature, garde-les dans ton template de collection :
{% if paginate.previous %}
<link rel="prev" href="{{ paginate.previous.url }}">
{% endif %}
{% if paginate.next %}
<link rel="next" href="{{ paginate.next.url }}">
{% endif %}
En pratique, la vraie solution est de réduire ta pagination à ce qui apporte une vraie valeur. Si ta collection T-shirts a 50 produits, affiche les 50 sur une seule page plutôt que de paginer toutes les 12.
Source 4 : les paramètres UTM et de tri
Les paramètres marketing (?utm_source=facebook) et de tri (?sort_by=price-ascending) créent des URLs distinctes que Google peut indexer si rien ne les en empêche.
Le fix dépend de l’usage. Pour les paramètres de tri qui ne servent qu’à l’UX et ne changent pas le contenu, bloque-les dans robots.txt.liquid :
Disallow: /*?sort_by*
Pour les UTM, ne les bloque surtout pas dans robots.txt, sinon tu casses ton tracking Google Analytics et Meta Ads. La bonne pratique, c’est de forcer ta balise canonical à pointer vers l’URL sans paramètres. Modifie cette ligne dans theme.liquid :
{% assign canonical = canonical_url | split: '?' | first %}
<link rel="canonical" href="{{ canonical }}">
Comme ça, Google voit que toutes les variantes pointent vers la même URL canonique, et il n’indexe que celle-là.
Source 5 : les pages de variantes produits
Chaque variante d’un produit peut avoir sa propre URL avec ?variant=123456. Même contenu, juste une variante présélectionnée.
Le fix : Shopify gère ça correctement par défaut en faisant pointer la canonical vers l’URL sans ?variant=. Le seul piège, c’est si ton thème a été modifié manuellement et que cette logique a été cassée. Vérifie le code source d’une page variante : la balise canonical doit pointer vers l’URL produit propre, pas vers l’URL avec le paramètre.
Source 6 : les pages système Shopify
/cart, /checkout, /account, /search?q= sont des pages techniques qui n’ont rien à faire dans Google.
Le fix : par défaut, le robots.txt Shopify bloque déjà la plupart de ces pages. Vérifie en allant sur tondomaine.com/robots.txt directement. Tu dois y voir des Disallow: /cart, Disallow: /checkout, Disallow: /account, Disallow: /orders. Si c’est le cas, rien à faire.
Le robots.txt.liquid complet que je conseille
Voici la configuration que je donne à mes clients pour une boutique Shopify standard. Tu peux copier-coller tel quel et adapter si tu as des besoins spécifiques :
{% assign default_robots = shop.metafields.seo.default_robots | default: 'User-agent: *' %}
User-agent: *
# Pages systeme
Disallow: /admin
Disallow: /cart
Disallow: /orders
Disallow: /checkouts/
Disallow: /checkout
Disallow: /carts
Disallow: /account
# Pages de tags (filtres dans collections)
Disallow: /collections/*+*
# Parametres de tri et pagination
Disallow: /*?sort_by*
Disallow: /*?page*
# Pages de recherche interne
Disallow: /search
Sitemap: {{ shop.url }}/sitemap.xml
Attention au piège que je vois revenir une fois sur deux : ne mets jamais Disallow: /products ou Disallow: /collections sans suffixe. Ça bloque toutes tes pages produits et collections d’un coup. Vu plusieurs fois chez des nouveaux clients qui pensaient bien faire.
Comment auditer ta boutique en 15 minutes
Trois outils suffisent pour identifier le duplicate content sur ta boutique.
Google Search Console d’abord. Va dans l’onglet Pages (ou Couverture dans l’ancienne interface), et cherche les sections “Page dupliquée, Google a choisi un autre canonical” et “Page dupliquée sans canonical défini par l’utilisateur”. Ces deux rapports te donnent la liste exacte des URLs qui posent problème. C’est gratuit, c’est fiable, c’est le meilleur point de départ.
Vérification manuelle ensuite. Sur chaque type de page (produit, collection, blog, accueil), fais clic droit puis “Afficher le source”, et cherche le mot canonical. L’URL dans cette balise doit correspondre à ce que tu veux que Google indexe. Si elle pointe ailleurs, tu as identifié le problème.
Screaming Frog enfin. C’est gratuit jusqu’à 500 URLs, ce qui couvre la quasi-totalité des boutiques Shopify de moins de 200 produits. Tu lances un crawl, et tu obtiens en quelques minutes la liste de toutes les URLs avec leur statut canonical, les chaînes de redirection, les pages orphelines. Pour une petite boutique, c’est plus que suffisant pour faire un audit complet.
Vérifier ton sitemap après chaque modif
Shopify génère automatiquement ton sitemap à tondomaine.com/sitemap.xml. Ce sitemap inclut uniquement les URLs que Shopify considère comme canoniques, donc c’est un excellent indicateur de ce que tu présentes officiellement à Google.
Soumets-le dans Google Search Console si ce n’est pas déjà fait. Et après chaque modification importante (ajout massif de produits, suppression de catégories, restructuration), vérifie qu’il reflète bien ce que tu veux indexer.
Plan d’action en 5 étapes
Pour une boutique Shopify classique en 2026, voici les étapes dans l’ordre à suivre :
Étape 1 : vérifier la balise canonical dans layout/theme.liquid. Présence obligatoire de <link rel="canonical" href="{{ canonical_url }}">.
Étape 2 : auditer Google Search Console pour identifier les URLs dupliquées déjà indexées. C’est ta photo de départ.
Étape 3 : ajouter Disallow: /collections/*+* dans robots.txt.liquid pour désindexer les pages de tags.
Étape 4 : ajouter Disallow: /*?sort_by* pour bloquer les paramètres de tri.
Étape 5 : soumettre (ou re-soumettre) le sitemap dans Google Search Console.
Ces cinq actions couvrent 90% des problèmes de duplicate content sur une boutique Shopify standard. Compte une heure de travail au total. L’effet en SEO se voit généralement sur 2 à 4 semaines, le temps que Google recrawle et désindexe les pages bloquées.
Pour aller plus loin sur le SEO technique de Shopify, lis aussi le guide complet SEO Shopify 2026 et le tuto noindex Shopify si tu veux gérer plus finement ce que Google indexe.
Tu veux un thème Shopify qui démarre déjà avec les bonnes bases SEO, sans avoir à toucher au robots.txt ? Regarde Speedfly, le thème français pensé pour la conversion et le référencement.
Pour aller plus loin
Le thème Shopify que j’utilise sur toutes mes boutiques
Pour transformer ces principes en boutique rentable, il faut un thème Shopify taillé pour la conversion. Speedfly est le thème que j’utilise sur mes propres boutiques et celles de mes 850+ élèves : vitesse, design premium, sections TikTok natives. 197€ paiement unique, licence à vie, 3 boutiques.
Si tu veux d’abord valider ta niche avant d’investir, récupère le guide 101 niches rentables 2026 : c’est gratuit, PDF dans ta boite mail en 2 minutes.