Un meilleur document d’aide
Écrit et tenu à jour pour les marques et les agences qui mènent une migration de site. En particulier si vous êtes une petite équipe qui doit rentabiliser chaque heure. Ce guide vous aide à bâtir une stratégie pour réaliser vos redirections 301 avec précision si vous migrez vers Shopify. Ce document peut vous être utile si vous êtes en train de :
- Migrer depuis Wordpress
- Migrer depuis Magento
- Migrer depuis Salesforce
- Migrer depuis Sitecore
- Migrer depuis BigCommerce
- Migrer depuis Webflow
- Migrer depuis un site PHP développé en interne
Si vous menez un projet comportant des correspondances de redirections 301 complexes et qu’il vous faut une équipe dont c’est le métier au quotidien, contactez-nous.
La logique des redirections d’URL de Shopify : vue d’ensemble
Le document d’aide officiel de Shopify sur les redirections d’URL se trouve ici. C’est un document épuré, avec des consignes générales qu’un gestionnaire de boutique Shopify peut consulter pour ajouter des redirections 301 individuelles ou en masse. Il manque de précisions sur les types d’URL qu’une boutique Shopify prend nativement en charge, et ce rapport a pour but de combler ces lacunes.
Synthèse de nos constats sur les redirections d’URL de Shopify
- La logique de redirection d’URL de Shopify est très solide.
- Sur nos tests de 100 formats de chaînes d’URL différents, Shopify en a pris en charge 99 sur 100 de façon fonctionnelle.
- Une vraie route de la vitrine l’emporte toujours sur une redirection, en silence.
- Le système natif ne prend pas en charge les caractères génériques pour les redirections d’URL.
- La mise à jour de chemins de redirection existants s’est faite facilement avec l’outil d’import, à condition de suivre les règles non documentées de Shopify.
- Des limites existent sur le nombre total de redirections que les boutiques Shopify et ShopifyPlus peuvent gérer.
- Des limites existent sur le nombre total de caractères d’une chaîne de redirection d’URL.
- La prévention des chaînes est partielle. Shopify bloque un seul sens, et l’ordre de création peut malgré tout laisser une chaîne active.
- De nombreuses exceptions et règles s’appliquent aux URL avec paramètres.
- L’interface de gestion des redirections d’URL est agréable à utiliser, mais gagnerait à donner plus de détails.
- Les tests n’ont pas porté sur les options de redirection disponibles pour Hydrogen et Oxygen.
- Nous attribuons au système actuel de redirections d’URL de Shopify un score d’utilité de 85 %.
La note a été abaissée de 5 % pour l’absence de prise en charge des caractères génériques, de 1 % pour l’unique type de chaîne d’URL non pris en charge, de 2 % pour les limites de longueur des URL, de 3 % pour le comportement étrange des URL paramétrées, et de 4 % pour les informations essentielles de gestion absentes de l’expérience de redirection.
Premiers tests le 19 juin 2024. Nouveaux tests le 27 juillet 2026 sur une boutique Shopify en plan standard en production, via l’API Admin GraphQL et sur des requêtes réelles vers la vitrine. Ce qui a changé entre les deux figure dans le journal des modifications.
Notre méthodologie de test des redirections
Nous voulions répondre à quelques questions avec nos tests, afin d’éviter les pièges des règles de redirection 301 de Shopify :
- Quels caractères ou combinaisons de caractères le système de redirection ne prend-il pas en charge ?
- Existe-t-il des limites sur la longueur des chaînes d’URL ?
- Existe-t-il un nombre maximal d’enregistrements pour les imports en masse ?
- Le système prend-il en charge les redirections à caractère générique ?
- Y a-t-il un formatage ou une conversion automatique des chaînes après l’import qui modifie les données d’origine ?
Pour référence, voici notre liste complète d’URL utilisée pour tester ces différents cas de figure. Les tests ont été menés sur un plan Shopify standard (et non ShopifyPlus).
11 constats pour vous aider avec les redirections Shopify
Shopify n’aime pas ces types de chaînes d’URL
Un seul format de chaîne sur la centaine testée ne peut pas être redirigé de façon fiable. Shopify accepte l’enregistrement et le stocke, mais un navigateur qui le demande reçoit un 404. Il s’agit d’une chaîne portant un point-virgule après l’opérateur égal, par exemple :
/page?param=;semicolon
Ce qui est notable avec cette chaîne, c’est que le système de Shopify convertit le caractère spécial point-virgule en sa valeur encodée pour l’URL, comme suit dans la table des redirections :
/page?param=%3Bsemicolon
Quand vous saisissez la chaîne d’URL non encodée dans la barre d’adresse d’un navigateur, elle renvoie une erreur 404.
/page?param=;semicolon
/page?param=%3Bsemicolon
Ce fonctionnement s’écarte du traitement des autres caractères spéciaux. Si une chaîne d’URL comportant des caractères non encodés est saisie dans la barre d’adresse, par exemple l’accolade fermante :
/page?param=}
Shopify l’encode automatiquement à la réception de la requête et aucune erreur 404 ne se produit.
/page%7Drightbrace
Autre point notable, d’autres variantes de chaînes d’URL avec un point-virgule non encodé sont bien validées par le système de redirection de Shopify, par exemple :
/page;semicolon
Le 404 n’est déclenché que lorsqu’un point-virgule non encodé suit l’opérateur égal, et l’échec survient au moment de la requête plutôt qu’à l’import. Shopify stocke l’enregistrement avec le point-virgule encodé en %3b, et une URL entrante portant le point-virgule brut ne correspond jamais à l’enregistrement encodé. Demander la forme encodée renvoie un 301 normalement : là où vous maîtrisez les liens entrants, encoder le point-virgule règle le problème. Là où le point-virgule brut arrive de liens externes que vous ne maîtrisez pas, ce format ne peut pas être redirigé de façon fiable.
Aucune prise en charge des redirections à caractère générique chez Shopify
Les redirections à caractère générique figurent toujours sur la liste de souhaits de nombreux utilisateurs de Shopify. Les forums de support débordent de demandes pour cette fonctionnalité. À ce jour, Shopify est resté silencieux sur sa place éventuelle dans la feuille de route produit.
Pour l’instant, les propriétaires de sites qui préparent un passage à Shopify doivent comprendre que Shopify et ShopifyPlus natifs n’offrent pas cette option.
Qu’est-ce qu’une redirection à caractère générique ?
Une redirection à caractère générique est un type de redirection d’URL qui permet de rediriger vers une même destination plusieurs URL correspondant à un motif donné. C’est particulièrement utile lors d’une migration de site, d’une réorganisation de contenu ou de la gestion d’un grand nombre d’URL similaires. Au lieu de créer une redirection par URL, vous utilisez un caractère générique (en général *) pour représenter n’importe quelle suite de caractères.
Imaginons que vous restructuriez votre blog et déplaciez tous les articles du répertoire /blog/ vers /articles/. Au lieu de créer une redirection pour chaque article, vous pouvez utiliser une redirection à caractère générique :
From: /blog/*
To: /articles/*
This wildcard redirect will automatically map:
/blog/post1 to /articles/post1
/blog/post2 to /articles/post2
/blog/post3 to /articles/post3
Cela simplifie le processus de redirection et garantit que toutes les URL sous /blog/ sont redirigées sans accroc vers leur nouvel emplacement sous /articles/. Les boutiques Shopify et ShopifyPlus par défaut n’intègrent pas cette capacité sans le renfort d’une application.
Ce qui coûte du trafic, c’est que Shopify accepte la syntaxe générique sans broncher. Un enregistrement créé sous la forme /old-blog/* est enregistré, apparaît dans la table des redirections et ne remonte aucune erreur. L’astérisque est stocké comme un caractère littéral : la seule URL qu’il pourra jamais faire correspondre est celle qui contient littéralement un astérisque. C’est pire qu’un refus franc, car rien ne signale l’échec avant que le trafic réel ne commence à renvoyer des 404. Développez tous les caractères génériques de votre fichier de redirections en chemins explicites avant de l’importer.
Shopify fait de son mieux pour éviter de créer des chaînes de redirection
Shopify dispose d’un garde-fou contre les chaînes, et il vaut mieux en connaître les limites avant de lui faire confiance. Il rejette une redirection dont la destination est déjà la source d’une autre redirection, avec le message Target can't redirect to another redirect. Il rejette une redirection qui pointe vers elle-même, avec Target can't be the same as path, et il bloque les boucles directes à deux éléments.
Dans ce test, les enregistrements d’URL que nous avons tenté de créer étaient les suivants, ce qui n’a pas été autorisé :
/BOTH redirects to /SHORT/SHORT redirects to /homepage
Ce que le garde-fou ne fait pas, c’est vérifier le sens inverse. Créez /a vers /b alors que rien n’existe sur /b, puis créez plus tard /b vers /c, et les deux sont acceptées. Shopify ne réexamine jamais le premier enregistrement, et vous avez une chaîne active :
GET /a
301 to /b
301 to /
final: 200, 2 hops
L’ordre de création décide à lui seul si une chaîne se forme. Les imports en masse appliquent les lignes dans l’ordre du fichier, et les fichiers de migration sont rarement triés pour éviter cela : le garde-fou n’est donc pas un élément sur lequel bâtir un plan. Après tout import volumineux, échantillonnez vos redirections et comptez les sauts :
curl -sIL https://yourstore.com/old-path -o /dev/null -w "hops: %{num_redirects}
"
Toute valeur supérieure à 1 est une chaîne.
Qu’est-ce qu’une chaîne de redirection ?
Une chaîne de redirection se produit quand une URL redirige vers une autre URL, qui redirige à son tour vers une troisième, créant une séquence ou « chaîne » de redirections. Cela peut arriver involontairement lorsque plusieurs redirections sont créées au fil du temps sans gestion rigoureuse.
Les chaînes de redirection posent problème car elles ralentissent le chargement des pages, nuisent au SEO et dégradent l’expérience utilisateur. Chaque redirection supplémentaire ajoute de la latence, puisque le navigateur doit suivre chaque étape de la chaîne avant d’atteindre la destination finale.
Par exemple, si vous avez les redirections suivantes :
/old-page redirects to /new-page
/new-page redirects to /latest-page
Quand un internaute visite /old-page, il est d’abord redirigé vers /new-page, puis immédiatement redirigé vers /latest-page, ce qui constitue une chaîne de redirection.
De nouvelles règles à suivre pour configurer des redirections sur Shopify
Notre plus grande découverte est que la documentation de Shopify n’est plus à jour, et que la règle qui la sous-tend est plus simple que la liste documentée de préfixes réservés.
Une vraie route de la vitrine l’emporte toujours sur une redirection. Là où une page existe réellement à une URL, Shopify sert la page et ignore la redirection. L’enregistrement est accepté, il figure dans votre table de redirections, et il ne fait rien. Aucune erreur, aucun avertissement. La variable n’est pas le préfixe. C’est l’existence d’une route :
/products/ai-skillset-package-001 -> 200, the product page
/products/zz20260727 -> 301, the redirect fires
Même préfixe, résultat opposé. Cela concerne chaque produit, collection, page et article de blog actif de votre boutique, et pas seulement les quatre chemins que Shopify documente. Une redirection posée sur l’URL d’un produit publié reste inerte tant que ce produit continue de se résoudre, ce qui rend l’ordre des opérations déterminant pendant une migration : dépubliez ou supprimez d’abord l’ancienne ressource, puis vérifiez que la redirection se déclenche.
Selon Shopify, si vous tentez de rediriger quoi que ce soit commençant par ces préfixes réservés, vos règles de redirection ne seront pas créées :
/apps
/application
/cart
/carts
/orders
/services
/products
/collections
/collections/all
Nous avons constaté que ce n’était pas le cas.
/apps/application/carts/orders/services/cart/people
Cart faisait exception. Ce chemin est réservé seul, et il fonctionne dès qu'un sous-répertoire le suit.
/cart/products/collections/collections/all
/cart/people/carts/people/products/people/collections/people
/cart/products/collections/collections/all
/services est l’exception de ce groupe, et il se comporte à l’inverse des autres. Une redirection sur /services lui-même renvoie un 301. Une redirection sur quoi que ce soit en dessous, comme /services/consulting, renvoie un 404 alors même que l’enregistrement s’enregistre sans broncher. Nous l’avons retesté quatre fois sur environ 45 secondes pour écarter un délai de propagation, l’enregistrement étant présent dans la table tout du long. Tous les autres préfixes de ce groupe ont fonctionné avec des sous-répertoires.
La cause probable est que Shopify route /services/* en interne pour les proxys d’application et les points de terminaison système, si bien que ces requêtes n’atteignent jamais la table des redirections, mais nous n’avons pas vérifié le mécanisme directement. Si vous migrez un site comportant une section /services/, aucune de ces redirections ne se déclenchera. Réaffectez-les à une autre structure de chemins, ou traitez-les au niveau de votre DNS ou de votre proxy.
Créer et mettre à jour des redirections d’URL est facile sur Shopify
La création d’une nouvelle redirection est simple sur Shopify. Deux options sont proposées :
- La création de redirections d’URL individuelles, une par une
- La création de redirections en masse, par fichier CSV : voici le dernier modèle pour cet import.
Quand on ajoute des URL au système de Shopify, on peut saisir des chemins d’URL relatifs, sans domaine de premier niveau, pour l’origine (depuis), et des chemins absolus ou relatifs pour la destination (vers). Exemple :
/example_product.php
Créer des redirections d’URL individuelles
Les règles de redirection en place chez Shopify ne vous laisseront pas créer deux fois la même redirection d’URL via l’interface de création individuelle.
Une fois qu’une URL figure dans la colonne « Rediriger depuis » de la table, toute tentative de l’ajouter à nouveau déclenche une erreur.
Si vous voulez mettre à jour l’enregistrement individuel, vous devez le retrouver dans la table des redirections, ou utiliser la méthode d’import en masse. Si une URL déjà existante figure dans un fichier d’import en masse, le champ « Rediriger vers » de l’enregistrement sera mis à jour avec la valeur du fichier CSV.
Notre conseil est de toujours importer les redirections par lots maniables et efficaces. Par exemple, si vous avez 10 000 redirections d’URL, importez-en 1 000 à la fois et vérifiez-les si vous en avez le temps. Mieux vaut attraper les erreurs dans de petits jeux de données que les traquer dans de grands.
Soyez attentif aux redirections d’URL en masse sur Shopify
Pour créer des redirections en masse, remplissez le fichier CSV avec les en-têtes exigés par Shopify, créez les correspondances 1:1 et assurez-vous que toutes les URL sont formatées en chemins relatifs. Si vous créez un fichier avec des chemins absolus dans le champ « Rediriger depuis » ou « Rediriger vers », Shopify prendra les choses en main. Voici quelques scénarios :
https://www.wislr.com/path/to/resource%20with
/path/to/resource%20with
www.wislr.com/unicode/test?value=%E2%9C%93%20co.wislr.com/mix/of%20encoded
/www.wislr.com/unicode/test?value=%E2%9C%93%20/co.wislr.com/mix/of%20encoded
wislr.com/nested/directory/structure?param1=value1
/wislr.com/nested/directory/structure?param1=value1
Ce qu’il faut en retenir : revérifiez votre fichier d’import avant de vous en servir. Sinon, vous créerez des règles de redirection d’URL qui ne fonctionneront pas comme vous en avez besoin.
Si un enregistrement de redirection existe déjà dans la table et que les mêmes valeurs figurent dans le fichier d’import, Shopify met l’enregistrement à jour avec les données les plus récentes du fichier. C’est extrêmement pratique à notre avis, tant que vous voulez que cet enregistrement soit mis à jour. Raison de plus pour revérifier les données.
Shopify n’impose pas de plafond de lignes par fichier. Un import unique de 1 051 lignes est passé sans aucun échec en 48 secondes, soit environ 1 300 lignes par minute.
Des lots d’environ 1 000 lignes restent utiles, pour une autre raison qu’une limite dure. Les fichiers plus petits échouent de manière plus lisible. Si un import de 20 000 lignes tourne mal, vous saurez bien moins quelles lignes en sont la cause que si vous aviez lancé vingt fichiers en surveillant les compteurs. Lisez createdCount, updatedCount et failedCount après chaque import, car un failedCount non nul est le seul signal que vous obtenez indiquant que des lignes ont été écartées.
Un chemin déjà présent dans la table des redirections voit sa destination écrasée et est comptabilisé sous updatedCount, en conservant son identifiant d’enregistrement d’origine. Cela rend un import CSV sûr à relancer, ce qui est utile en pleine migration. Cela signifie aussi qu’un fichier obsolète écrasera discrètement les corrections que vous avez faites à la main depuis le dernier import.
Confiez-nous la construction de votre plan de redirections.
Nous avons cartographié les redirections de plus de 100 migrations, dont un déplacement de 27 000 URL vers Shopify Plus. Nous construisons le fichier et le validons contre chacune des limites de cette page avant l'import. Après la bascule, nous lisons nous-mêmes les réponses en production plutôt que de croire ce qu'affiche la table des redirections.
La limite de Shopify sur le nombre d’enregistrements de redirection
Toute bonne chose a ses limites, et les règles de redirection de Shopify ne font pas exception. Il existe deux seuils pour les redirections d’URL.
Plans Shopify (hors Plus) :
Maximum 100 000 redirections d’URL
Plans ShopifyPlus :
Maximum 20 000 000 de redirections
Nous n’avons pas testé ces limites, ce serait délirant ! Ce sont les spécifications actuellement documentées pour la plateforme. Gardez-les en tête lorsque vous planifiez vos redirections et priorisez les URL les plus importantes en trafic et en chiffre d’affaires. À notre connaissance, Shopify ne relève pas ces limites, malgré les supplications constantes sur les forums de support.
La limite de Shopify sur le nombre de caractères des URL
C’est là que les choses se corsent avec le système de redirection de Shopify. Les consignes officielles de Shopify ne précisent pas de limite stricte de caractères.
Pour valider les limites de caractères d’une URL de redirection, nous avons d’abord construit et tenté d’importer des chaînes très longues. Nous avons commencé avec une URL de 2 000 caractères, puisque les navigateurs acceptent des requêtes URI jusqu’à 2 083 caractères. Voici la belle en question :
/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBccccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Notre méthode initiale a consisté à importer une URL de 2 000 caractères avec le modèle d’import de redirections, et c’est là que les alarmes de Shopify se sont déclenchées. Le seuil officiellement découvert est une limite de 1 024 caractères pour les chaînes de redirection d’URL, barre oblique initiale « / » comprise.
- Passed URL de 300 caractères
- Passed URL de 600 caractères
- Passed URL de 1 000 caractères
- Failed URL de 2 000 caractères
Quelques règles de redirection importantes et non documentées à connaître sur Shopify
Shopify normalise les caractères alphabétiques de vos chaînes d’URL. Autrement dit, que vous saisissiez une majuscule ou une minuscule, il servira la requête de la même façon pour ces différents motifs. Les URL suivantes mèneront toutes à la même page, même si des enregistrements distincts existent :
/CASE/TEST.html
/case/test.html
/Case/Test.html
La chaîne en minuscules prendra la priorité sur les autres :
/case/test.html
Dans nos tests, bien qu’il existe deux enregistrements uniques de « Rediriger depuis » avec des valeurs différentes de « Rediriger vers », la page /about.html sera toujours servie pour les deux enregistrements :
#1
/Case/Test.html [redirect to] /homepage
#2
/case/test.html [redirect to] /about.html
Il est intrigant et potentiellement agaçant que Shopify vous laisse saisir toutes ces valeurs uniques dans la table des redirections pour n’en servir qu’une seule. Nous vous conseillons d’examiner vos données avec attention si vous pensez que votre taxonomie d’URL peut tomber dans ces motifs, avant de les importer dans Shopify.
Vous pouvez utiliser des chemins d’URL absolus pour les redirections Shopify
Les chemins d’URL absolus pour vos redirections sont acceptés d’après nos tests, à condition qu’ils soient dans le champ « Rediriger vers ». Ils peuvent pointer vers n’importe quelle URL de votre choix. Voici un exemple où un chemin d’URL redirige vers un profil LinkedIn lorsqu’il est demandé :
[Redirect from]
/Case/Test.html
[Redirect to]
https://www.linkedin.com/wislr
Par ailleurs, dans le champ « Rediriger vers », Shopify ne supprime pas les domaines de premier niveau, même s’il s’agit de votre propre boutique Shopify.
Les URL paramétrées
Dans nos tests, Shopify a préservé les URL paramétrées, à quelques exceptions près. Si vous avez des URL indexées avec de nombreuses chaînes paramétrées uniques, ces chaînes peuvent être ajoutées aux tables de redirection de Shopify et mener à des destinations distinctes. Nous avons mené ce test avec une taxonomie courante pour ce type d’URL, les paramètres UTM. Par exemple :
Cette chaîne d’URL figure dans le champ « Rediriger depuis » de la table et a bien atteint la destination prévue :
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google&utm_term=redirects
Nous avons modifié la chaîne d’URL en retirant le dernier paramètre ‘&utm_term=redirects’, ce qui a produit un 404 :
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google
Ce comportement a été reproduit dans d’autres tests avec d’autres paramètres en valeurs, ce qui a confirmé que Shopify traite les URL paramétrées comme des chaînes littérales. Il ne réduit pas l’URL à l’URL de base si vous retirez un paramètre d’une URL de redirection, tant que l’URL n’existe pas sur le site Shopify.
Pour le confirmer davantage, nous avons pointé une URL vers elle-même, ce que Shopify n’autorise pas par défaut. Vous obtiendriez ce message :
Cette saisie est autorisée lorsque les paramètres se trouvent dans le champ « Rediriger depuis ». Elle ne constitue pas une boucle de redirection, mais d’après le comportement observé dans le navigateur, notre test a montré que Shopify ignore cet enregistrement. Quand l’URL de « Rediriger depuis » est demandée, Shopify sert la chaîne d’URL paramétrée complète, et non la page racine attendue d’après la table :
Cette saisie est autorisée, mais Shopify n’ajoutera pas les paramètres à la page qui se charge, comme la règle le laisse attendre. Seule l’URL racine se chargera.
Cela vaut pour les chemins sources paramétrés. Là où le chemin source de la redirection ne porte aucun paramètre propre, tout ce qui arrive sur la requête est transmis à la destination :
GET /old-page -> 301 to /new-page
GET /old-page?utm_source=x -> 301 to /new-page?utm_source=x
Les redirections ne retireront pas les paramètres à votre place. Leur suppression doit se faire dans une couche au-dessus de Shopify.
La correspondance n’est pas non plus une comparaison littérale de chaînes. Shopify normalise à la fois l’enregistrement stocké et la requête entrante avant de les comparer : la casse et l’ordre des paramètres n’ont donc pas d’importance. Face à un enregistrement stocké sous la forme /page?doe&name=john, les requêtes ?name=John&Doe, ?Doe&name=John et ?name=john&doe renvoient toutes un 301. Ce qui compte, ce sont les paramètres présents : chaque paramètre du chemin stocké doit apparaître dans la requête, et en retirer un renvoie un 404 plutôt qu’une correspondance partielle.
Notre dernière observation sur les URL avec paramètres est que Shopify réécrit dans certains cas les données que vous lui donnez. Oui, Shopify réécrit les données d’URL que vous lui fournissez pour certains paramètres.
Voici des exemples où nos tests ont trouvé ce motif.
Données de redirection d’origine ingérées par Shopify :
/test?name=John&Doe
Shopify a réécrit la chaîne pour placer ‘doe’ en premier, et l’a mis en minuscules :
/test?doe&name=john
Les valeurs sont mises en minuscules en même temps que les clés : une table de redirections comparée au fichier dont elle provient donnera donc l’impression que l’import a corrompu les données.
Données de redirection d’origine ingérées par Shopify :
/user?name=John&age=30&active=true
Shopify a réécrit la chaîne pour donner un nouvel ordre aux paramètres listés :
/user?active=true&age=30&name=John
Nos tests suggèrent que Shopify cherche à ranger les paramètres par ordre alphabétique. Nous nous sommes demandé s’il s’agissait d’un bug, puisque nous avons établi que Shopify traite les URL paramétrées comme des chaînes littérales : pourquoi saper cette règle en réécrivant l’ordre des paramètres ? Aujourd’hui, vous n’obtiendrez jamais qu’une chaîne d’URL à plusieurs paramètres conserve sa structure. Cela peut avoir de grandes implications pour certains systèmes de gestion de contenu.
L’expérience de gestion des redirections d’URL de Shopify a besoin d’une mise à jour
Au fil de notre usage intensif de l’outil de redirection de Shopify, nous avons apprécié certains éléments et regretté l’absence d’autres.
Nous apprécions ces fonctionnalités :
- Les boutons et les fonctions d’import de redirections en masse
- Le filtrage et la recherche rapide dans la taxonomie d’URL
- L’export des URL
- La facilité de création d’une URL unique
Nous avons trouvé que l’outil manquait de ces données et de ces fonctions :
- Le nombre total d’URL importées
- Une manière plus simple de copier-coller plusieurs URL dans le système. Si vous ajoutez plus d’une URL à la fois, vous devez passer par le document d’import. Un cas d’usage où le copier-coller serait utile : un ensemble d’URL destinées à pointer toutes vers la même destination.
Importer est rapide, défaire un import ne l’est pas
Créer des redirections en masse est rapide. Les supprimer en masse ne l’est pas, et l’écart est assez large pour changer la façon dont vous planifiez un import.
| Opération | Méthode | Mesuré |
|---|---|---|
| Créer 1 051 redirections | Import CSV, fichier unique | 48 secondes |
| Supprimer 1 051 redirections | urlRedirectDelete, un par un |
226 secondes |
Les mutations rapides de suppression en masse sont verrouillées. urlRedirectBulkDeleteBySearch, urlRedirectBulkDeleteByIds et urlRedirectBulkDeleteAll exigent toutes la portée write_online_store_navigation et une session utilisateur active. Une application qui s’authentifie avec des identifiants client, ce qui est le mode de fonctionnement de la plupart des scripts de migration, ne peut pas les appeler et se retrouve à supprimer un enregistrement à la fois.
Planifiez vos imports comme s’ils étaient difficiles à annuler, car ils le sont. Validez le fichier sur une boutique de développement d’abord, ou importez par tranches que vous acceptez de défaire à la main. Ne poussez pas un fichier de 50 000 lignes que vous n’avez pas testé en supposant que vous pourrez revenir en arrière rapidement.
L’import CSV et l’API Admin traitent les doublons différemment
Ce guide est écrit autour du flux CSV, où un chemin en doublon met à jour l’enregistrement existant. L’API fait l’inverse :
create /existing-path -> /pages/about
(where /existing-path already redirects to /)
REJECTED: "Path has already been taken"
Quiconque porte un flux CSV vers l’API Admin doit interroger l’enregistrement existant et appeler urlRedirectUpdate, ou supprimer puis recréer. Un portage direct de la logique d’import échouera sur chaque chemin déjà existant.
Comment tester vos redirections Shopify après la mise en ligne
Tout ce qui précède décrit ce que Shopify accepte. Rien de tout cela ne vous dit si les redirections que vous avez importées fonctionnent vraiment sur la boutique en production, et c’est une autre question. Une redirection peut s’importer proprement, apparaître dans l’admin, et malgré tout ne pas faire ce que vous attendiez dès qu’un thème, une application ou un proxy se trouve sur le chemin.
Testez depuis l’extérieur de la boutique plutôt qu’en cliquant dans un navigateur, car un navigateur masque justement ce que vous devez voir : le code de statut. Demandez l’ancienne URL et lisez les en-têtes de la réponse.
curl -sIL https://yourstore.example/old-product-url
Lisez trois choses dans la sortie :
- Le code de statut du premier saut. Vous voulez
301. Un302est temporaire et transmet la valeur autrement, ce qui compte quand l’objectif même est un déplacement permanent. - Le nombre de sauts. Chaque ligne
HTTP/dans la sortie correspond à un saut. Deux ou plus signifient que vous avez construit une chaîne, et le correctif consiste à repointer la source d’origine vers la destination finale plutôt que de laisser l’étape intermédiaire en place. - Le statut final. La dernière ligne doit être
200. Une redirection qui se termine par un404est pire que pas de redirection du tout, car elle a l’air traitée dans votre tableur.
Testez ensuite les formes qu’on oublie facilement. Lancez le même contrôle sur une URL portant un paramètre de suivi pour confirmer que la chaîne de requête survit jusqu’à la destination, sur le domaine apex autant que sur www, et en http simple et pas seulement en https. Nous avons testé exactement cela sur une boutique en production et le paramètre est arrivé intact sur la cible, mais l’intérêt est de le vérifier sur votre boutique plutôt que de vous fier à une réponse générale, car un thème ou une application peut changer le résultat.
Un comportement à connaître avant de paniquer : après avoir modifié ou supprimé une redirection, un nœud Shopify en périphérie peut continuer à servir l’ancienne réponse pendant une trentaine de secondes, alors qu’une version de la même URL avec cache contourné renvoie déjà la nouvelle. Laissez passer une minute et retestez avec une chaîne de requête unique ajoutée avant de conclure que la redirection n’a pas pris.
Pour la séquence complète autour d’une migration plutôt que pour une seule redirection, parcourez la checklist de migration de site, qui couvre la cartographie, le jour de la mise en ligne et le suivi post-lancement dans lesquels tout ceci s’inscrit.
En conclusion
Le système dont dispose Shopify pour gérer les redirections 301 convient à la plupart des entreprises, mais n’est pas encore de niveau Enterprise. Nous espérons qu’avec le temps il évoluera pour inclure les redirections à caractère générique et davantage d’enregistrements de redirection sur les plans standard et Plus. La capacité à utiliser leur système de redirection et la variété des formats d’URL qu’il prend en charge nous conduisent à leur attribuer un solide score d’utilité.
Si vous menez un projet comportant des correspondances de redirections 301 complexes et qu’il vous faut une équipe dont c’est le métier au quotidien, contactez-nous.
Journal des modifications
Ce guide a d’abord été publié à partir de tests menés le 19 juin 2024, puis retesté le 27 juillet 2026 sur une boutique Shopify en plan standard en production, via l’API Admin GraphQL et sur des requêtes réelles vers la vitrine. La plupart des constats d’origine ont tenu. Neuf n’ont pas tenu. Le corps du guide ci-dessus décrit ce que Shopify fait aujourd’hui, et voici ce qui a bougé.
2024 Shopify vous empêche de créer des chaînes de redirection.
2026 Le garde-fou ne vérifie qu'un seul sens. Il rejette une redirection dont la destination est déjà la source d'une autre, mais pas l'inverse : créer /a vers /b puis plus tard /b vers /c laisse une chaîne active à deux sauts. L'ordre de création décide à lui seul si une chaîne se forme.
/services2024 /services fonctionne comme redirection, au même titre que /apps, /carts et /orders.
2026 /services fonctionne seul et échoue avec tout sous-répertoire. /services/consulting renvoie un 404 alors même que l'enregistrement s'enregistre. Tous les autres préfixes de ce groupe fonctionnent avec des sous-répertoires.
2024 Quatre préfixes réservés sont ignorés lorsqu'ils sont utilisés seuls : /cart, /products, /collections, /collections/all.
2026 Les observations tiennent, l'explication non. Une vraie route de la vitrine l'emporte toujours sur une redirection, ce qui couvre chaque produit, collection, page et article de blog actif, et non une liste de quatre chemins.
2024 Les paramètres ne sont jamais ajoutés à l'URL qui se charge.
2026 Vrai uniquement pour les chemins sources paramétrés. Là où le chemin source n'a aucun paramètre propre, les paramètres présents sur la requête sont transmis à la destination.
2024 Shopify traite les URL paramétrées comme des chaînes littérales.
2026 Les deux côtés sont normalisés avant la comparaison : la casse et l'ordre n'ont donc pas d'importance. Seul l'ensemble des paramètres est strict, et en retirer un renvoie un 404.
2024 Les paramètres sont classés par ordre alphabétique, /test?name=John&Doe étant stocké comme /test?Doe&name=John.
2026 Le classement alphabétique est confirmé, et la casse n'est pas préservée. Le même chemin est stocké comme /test?doe&name=john, les valeurs étant mises en minuscules en même temps que les clés.
2024 Shopify ne pouvait pas ingérer une chaîne comportant un point-virgule non encodé après l'opérateur égal.
2026 L'ingestion se passe bien et le point-virgule est stocké en %3b. L'échec survient au moment de la requête, et demander la forme encodée renvoie un 301.
2024 Importez 1 000 lignes à la fois.
2026 Ce n'est pas un plafond. Un fichier unique de 1 051 lignes s'est importé sans aucun échec en 48 secondes. Les lots restent une bonne pratique, car les fichiers plus petits échouent de manière plus lisible.
2024 Shopify ne prend pas en charge les redirections à caractère générique.
2026 Toujours vrai, et la syntaxe est acceptée sans la moindre erreur. L'astérisque est stocké comme un caractère littéral, si bien que rien ne signale l'échec avant que le trafic ne commence à renvoyer des 404.
2026 Créer 1 051 redirections a pris 48 secondes. Supprimer ces mêmes 1 051 en a pris 226, car les mutations de suppression en masse exigent une session utilisateur active et un jeton scripté ne peut pas les appeler.
2026 L'import CSV met à jour un chemin qui existe déjà. L'API Admin le rejette avec Path has already been taken, si bien qu'un portage direct de la logique d'import échoue sur chaque chemin existant.
Chaque redirection renvoie un 301. La limite de 1 024 caractères par chemin inclut la barre oblique initiale, avec 1 027 refusés et 1 015 acceptés. La casse est normalisée et les minuscules prennent la priorité. L'import en masse retire le protocole et le domaine pour laisser un chemin relatif, tandis que le champ de destination conserve intacte une URL externe absolue. Un nœud en périphérie peut servir une réponse obsolète pendant une trentaine de secondes après un changement.
Les limites d’enregistrements, 100 000 sur les plans standard et 20 000 000 sur Plus, n’ont pas été rejouées. Les atteindre est mécaniquement possible maintenant que le pipeline d’import est mesuré, mais la suppression tourne à environ 280 enregistrements par minute sans annulation en masse scriptable : confirmer un chiffre documenté laisserait donc une boutique en production porter des redirections parasites pendant six heures ou plus.
Questions fréquentes
À qui s’adresse la base de connaissances WISLR sur les redirections d’URL Shopify ?
Notre base de connaissances aide avant tout les marques et les agences qui mènent une migration de site vers Shopify. Elle est particulièrement utile aux petites équipes qui doivent rentabiliser chaque heure, en aidant leurs clients à faire correspondre et à finaliser efficacement jusqu’à 100 000 redirections d’URL.
Shopify propose-t-il un document de support officiel sur les redirections d’URL ?
Oui, Shopify maintient un document d’aide officiel sur les redirections d’URL sur help.shopify.com. S’il donne des consignes générales pour ajouter des redirections 301 individuelles ou en masse, notre guide le complète avec des spécifications détaillées sur les types d’URL et les limites de la plateforme.
Quelles chaînes d’URL Shopify ne prend-il pas en charge ?
Shopify n’a qu’un seul format de chaîne d’URL non pris en charge : les chaînes comportant un point-virgule non encodé après l’opérateur égal (par exemple /page?param=;semicolon). Tous les autres formats d’URL, y compris les points-virgules encodés et les points-virgules à d’autres positions, sont pris en charge.
Shopify prend-il en charge les redirections avec caractères génériques ou expressions régulières ?
Non, Shopify ne prend pas en charge aujourd’hui les redirections à caractère générique ni les expressions régulières dans son système natif. Cette limite vaut aussi bien pour les boutiques Shopify standard que pour les boutiques Shopify Plus.
Qu’est-ce qu’une redirection à caractère générique ?
Les redirections à caractère générique permettent de rediriger vers une même destination plusieurs URL correspondant à un motif donné. Par exemple, rediriger toutes les URL sous /blog/* vers /articles/*. Cette fonctionnalité est souvent demandée, mais elle n’est pas disponible aujourd’hui dans les fonctions natives de Shopify.
Shopify sait-il éviter la création de chaînes de redirection ?
Oui, Shopify dispose de garde-fous intégrés pour éviter les chaînes de redirection. Le système ne vous laissera pas créer une redirection vers une URL qui est déjà redirigée ailleurs.
Qu’est-ce qu’une chaîne de redirection ?
Une chaîne de redirection se produit quand des URL redirigent par plusieurs étapes avant d’atteindre la destination finale (par exemple A→B→C). Ces chaînes ralentissent le chargement des pages et nuisent aux performances SEO. Le système de Shopify aide à les éviter par conception.
Est-il facile de créer et de mettre à jour des redirections d’URL sur Shopify ?
Oui, Shopify propose deux méthodes simples : la création de redirections une par une dans son interface, et l’import en masse par fichier CSV. Les deux méthodes acceptent les chemins d’URL relatifs et absolus.
Comment créer des redirections d’URL en masse sur Shopify ?
Les redirections en masse se créent avec l’outil d’import CSV de Shopify. Nous recommandons d’importer par lots de 1 000 pour faciliter la vérification des erreurs et la gestion. Un modèle de fichier d’import est disponible ici.
Shopify impose-t-il une limite maximale au nombre d’enregistrements de redirection ?
Oui. Les plans Shopify standard sont limités à 100 000 redirections d’URL, tandis que les boutiques Shopify Plus peuvent en gérer jusqu’à 20 000 000. Ces limites sont fixes et ne peuvent pas être augmentées.
Shopify impose-t-il une limite au nombre de caractères des redirections ?
Oui, Shopify applique une limite de 1 024 caractères aux chaînes de redirection d’URL, barre oblique initiale (’/’) comprise. Les URL dépassant cette longueur ne sont pas acceptées par le système.
Existe-t-il un outil pour valider la compatibilité des URL avec Shopify ?
Shopify ne fournit pas d’outil de validation officiel, mais nos tests approfondis montrent que 99 % des formats d’URL standard sont pris en charge. Le point de vigilance principal reste la limite de 1 024 caractères et les points-virgules non encodés après l’opérateur égal.