Un meilleur document d’aide
Écrit et maintenu pour les marques et les agences qui mènent une migration de site. Surtout 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 lors d’une migration vers Shopify. Concrètement, ce document peut vous servir 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 qui comprend 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 sait gérer nativement, et ce rapport est là pour 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 100 formats de chaînes d’URL testés, Shopify en a pris en charge 99 sur 100 de façon fonctionnelle.
- 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 a été simple 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 gèrent.
- Des limites existent sur le nombre total de caractères d’une chaîne de redirection d’URL.
- Vous ne pouvez pas créer de chaînes de redirection 301, heureusement. (Corrigé lors du nouveau test de 2026. Le garde-fou ne vérifie qu’un seul sens.)
- De nombreuses exceptions et règles existent pour les 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 de caractères, de 3 % pour le comportement étrange des URL avec paramètres, et de 4 % pour les informations de gestion essentielles absentes de l’expérience de redirection.
Les tests ont été menés le 19 juin 2024.
Chaque affirmation de cette page a été revérifiée sur une boutique Shopify en production, plan standard, via l'Admin GraphQL API et par de vraies requêtes sur la vitrine. La plupart des constats de 2024 ont tenu. Neuf n'ont pas tenu, et deux d'entre eux inversent ce que nous avions publié : le garde-fou anti-chaîne ne vérifie qu'un seul sens et l'ordre dans lequel vous créez les enregistrements décide si une chaîne se forme, et une redirection sur /services se déclenche alors que tout ce qui se trouve en dessous renvoie un 404.
Les constats de 2024 restent en place. Chaque correction est signalée au niveau de l'affirmation qu'elle concerne, pour que quiconque a agi sur la version d'origine voie ce qui a changé.
Notre méthodologie de test des redirections
Nous voulions répondre à quelques questions avec nos tests, pour aider à éviter les pièges des règles de redirection 301 de Shopify :
- Quels caractères ou combinaisons de chaînes le système de redirection d’URL ne prend-il pas en charge ?
- Existe-t-il des limites de 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 avec caractères génériques ?
- 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érentes conditions. Les tests ont été menés sur un plan Shopify standard (pas ShopifyPlus).
11 constats pour vous aider avec les redirections Shopify
Shopify ne s’entend pas bien avec ces types de chaînes d’URL
La liste des formats de chaînes d’URL que Shopify n’a pas su prendre en charge est courte : un seul type de chaîne n’a pas pu être ingéré. Les chaînes comportant 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 URL, ainsi 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 comportement s’écarte du traitement des autres caractères spéciaux. Si une chaîne d’URL avec des caractères non encodés est saisie dans la barre d’adresse, par exemple le caractère 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 validées par le système de redirections de Shopify, par exemple :
/page;semicolon
Les données suggèrent que l’erreur 404 n’est déclenchée que lorsqu’un point-virgule non encodé suit l’opérateur égal.
Le 404 est confirmé, mais ce n'est pas une question d'ingestion impossible. Shopify accepte l'enregistrement et le stocke avec le point-virgule encodé en pourcentage sous la forme %3b. La discordance survient au moment de la requête, car une URL entrante portant un 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 depuis des 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 restent 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 la place que cela occuperait dans sa feuille de route produit.
Pour l’instant, les propriétaires de sites qui préparent un passage sur 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 plusieurs URL correspondant à un motif donné vers une destination unique. 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 individuelle pour chaque URL, vous utilisez un caractère générique (le plus souvent *) pour représenter n’importe quelle suite de caractères.
Supposons que vous restructuriez votre blog et que vous déplaciez tous les articles du répertoire /blog/ vers /articles/. Au lieu de créer une redirection individuelle 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/. À la date de cet article, les boutiques Shopify et ShopifyPlus par défaut n’intègrent pas cette capacité sans le renfort d’une application.
Toujours aucune prise en charge des caractères génériques, et le nouveau test a mis au jour la partie qui coûte du trafic réel. Shopify accepte la syntaxe à caractère générique sans broncher. Un enregistrement créé sous la forme /old-blog/* est sauvegardé, apparaît dans la table des redirections et ne signale aucune erreur. L'astérisque est stocké comme un caractère littéral, donc la seule URL qu'il pourra jamais faire correspondre est une URL contenant 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 en chemins explicites tous les caractères génériques de votre tableur de redirections avant de l'importer.
Shopify fait de son mieux pour éviter de créer des chaînes de redirection
La table de redirections de Shopify contient un garde-fou appréciable qui vous empêche de créer des chaînes de redirection. Si vous tentez de créer une redirection vers une page qui figure déjà comme valeur du champ « Redirect from », vous obtenez une erreur.
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
Un garde-fou existe, et il est plus étroit que nous ne l'avions décrit. Il vérifie un seul sens, et une chaîne active de deux sauts a été créée malgré lui pendant le nouveau test.
Shopify 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 sens.
Il ne vérifie pas le sens inverse. Créez /a vers /b alors que rien n'existe à /b, puis créez plus tard /b vers /c, et les deux sont acceptés. Shopify ne réexamine jamais le premier enregistrement, et vous avez désormais 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 tableurs de migration sont rarement triés pour éviter cela, donc le garde-fou n'est pas quelque chose sur quoi 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}\n"
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 est redirigée vers une autre URL, qui à son tour redirige vers une troisième, créant une séquence ou « chaîne » de redirections. Cela peut arriver involontairement quand plusieurs redirections sont mises en place au fil du temps sans gestion rigoureuse.
Les chaînes de redirection posent problème parce qu’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 mis en place les redirections suivantes :
/old-page redirects to /new-page
/new-page redirects to /latest-page
Quand un visiteur consulte /old-page, il est d’abord redirigé vers /new-page, puis immédiatement redirigé à nouveau vers /latest-page, ce qui produit une chaîne de redirection.
De nouvelles règles à suivre pour configurer des redirections sur Shopify
Notre plus grande découverte lors des tests, c’est que la documentation de Shopify n’est plus à jour. 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 c’est faux.
/apps/application/carts/orders/services/cart/people
Cart faisait exception. Ce préfixe est réservé lorsqu'il est 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
Les observations ci-dessus tiennent. L'explication, non, et la vraie règle couvre bien plus de terrain qu'une liste de quatre préfixes.
Une vraie route de 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 reste dans votre table de redirections, et il ne fait rien. Aucune erreur, aucun avertissement.
Le préfixe n'est pas la variable. L'existence d'une route l'est. Une redirection posée sur l'URL d'un produit en ligne a été acceptée et silencieusement ignorée, tandis que le même préfixe avec un handle inexistant a renvoyé un 301 :
/products/ai-skillset-package-001 -> 200, the product page
/products/zz20260727 -> 301, the redirect fires
Traitez donc la liste ci-dessus comme des exemples plutôt que comme la règle. Celle-ci couvre aussi chaque produit, collection, page et article de blog en ligne sur votre boutique. Une redirection posée sur l'URL d'un produit publié est inerte tant que ce produit continue de répondre.
Pour une migration, cela rend l'enchaînement décisif. Dépubliez ou supprimez d'abord l'ancienne ressource, puis confirmez que la redirection se déclenche. Créez-la pendant que la page est encore en ligne et vous aurez l'impression que rien ne s'est passé.
/services fait exception, et dans l'autre sens. Une redirection sur /services lui-même renvoie un 301. Une redirection sur quoi que ce soit en dessous, par exemple /services/consulting, renvoie un 404 alors même que l'enregistrement est sauvegardé sans la moindre alerte. Cela a été retesté quatre fois sur environ 45 secondes pour écarter un retard de propagation, l'enregistrement étant présent tout du long. Tous les autres préfixes de ce groupe fonctionnaient 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.
Quiconque migre un site comportant une section /services/ doit savoir qu'aucune de ces redirections ne se déclenchera. Redirigez-les vers 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 simple sur Shopify
La création d’une nouvelle redirection est simple sur Shopify. Deux options sont proposées :
- Création d’une redirection d’URL individuelle, une à la fois
- Création de redirections en masse, par fichier CSV - voici le dernier modèle pour cet import.
Pour ajouter des URL au système de Shopify, on peut saisir des chemins d’URL relatifs, sans domaine de premier niveau, pour l’origine (from), et des chemins absolus ou relatifs pour la destination (to). Exemple :
/example_product.php
Créer des redirections d’URL individuelles
Les règles de redirection en place chez Shopify ne vous laissent pas créer deux fois la même redirection d’URL depuis l’interface de redirection individuelle.
Une fois qu’une URL figure dans la colonne « Redirect from » de la table, toute tentative de l’ajouter à nouveau produit une erreur.
Si vous voulez mettre à jour l’enregistrement individuel, il faut le retrouver dans la table des redirections, ou passer par l’import en masse. Si une URL déjà existante figure dans un fichier d’import en masse, le champ « Redirect to » de l’enregistrement est mis à jour avec la valeur du fichier CSV.
Notre conseil : importez toujours vos redirections par lots gérables 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. Il vaut mieux repérer les erreurs sur de petits jeux de données que les traquer dans de gros.
Soyez attentif avec les 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 « Redirect from » ou « Redirect to », 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
À retenir : revérifiez votre fichier d’import avant de l’utiliser. Sinon vous créerez des règles de redirection d’URL qui ne fonctionnent 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, à condition de vouloir cette mise à jour. Raison de plus pour revérifier les données.
Notre conseil : importez toujours vos redirections par lots gérables 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. Il vaut mieux repérer les erreurs sur de petits jeux de données que les traquer dans de gros.
Shopify n'impose pas de plafond de 1 000 lignes par fichier. Un import unique de 1 051 lignes est passé sans aucun échec en 48 secondes, ce qui revient à environ 1 300 lignes par minute.
Des lots d'environ 1 000 lignes restent malgré tout raisonnables, pour une autre raison qu'une limite stricte. Les fichiers plus petits échouent de façon plus lisible. Si un import de 20 000 lignes tourne mal, vous savez 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. Un failedCount non nul est le seul signal que vous obtenez indiquant que des lignes ont été perdues.
Le comportement en cas de doublon décrit ci-dessus a été confirmé exactement tel qu'écrit. 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 vraiment utile en cours de migration. Cela signifie aussi qu'un tableur obsolète écrasera en silence les corrections que vous aviez faites à la main depuis le dernier import.
Confiez-nous la construction de votre plan de redirections.
Nous avons cartographié des redirections sur plus de 100 migrations, dont un déplacement de 27 000 URL vers Shopify Plus. Nous construisons le fichier et le validons face à 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 y a 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 demandes incessantes 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 redirections 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 puis 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 :
/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBcccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Notre méthode initiale a été d’importer une URL de 2 000 caractères avec le modèle de redirections en masse, et c’est là que les alarmes de Shopify se sont déclenchées. Le seuil que nous avons 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 chez 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 d’URL de la même manière pour ces différents motifs. Les URL suivantes iront toutes vers 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 le pas sur les autres :
/case/test.html
Dans nos tests, même s’il existe deux enregistrements uniques de « Redirect from » avec des valeurs différentes de « Redirect to », 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 irritant, que Shopify vous laisse saisir toutes ces valeurs uniques dans la table des redirections pour n’en servir qu’une seule. Nous conseillons de relire vos données attentivement si vous pensez que votre taxonomie d’URL peut tomber dans ces motifs, avant l’import dans Shopify.
Vous pouvez utiliser des chemins d’URL absolus pour les redirections Shopify
Les chemins d’URL absolus pour vos redirections passent très bien, d’après notre test, s’ils se trouvent dans le champ « Redirects to ». 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 appelé :
[Redirect from]
/Case/Test.html
[Redirect to]
https://www.linkedin.com/wislr
Par ailleurs, dans le champ « Redirect to », Shopify ne retire pas les domaines de premier niveau, même s’il s’agit de votre propre boutique Shopify.
URL avec paramètres
Dans nos tests, Shopify a préservé les URL avec paramètres, à quelques exceptions près. Si des URL ont été indexées avec de nombreuses chaînes de paramètres uniques, ces chaînes uniques peuvent être ajoutées aux tables de redirections de Shopify et pointer vers 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 se trouve dans le champ « Redirect from » de la table et a bien atteint sa 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 des paramètres différents comme valeurs, ce qui a confirmé que Shopify traite les URL avec paramètres comme des chaînes littérales. Il ne réduit pas l’URL à son 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 confirmer davantage, nous avons pointé une URL vers elle-même, ce que Shopify n’autorise pas par défaut. Vous obtenez ce message :
Cette entrée est autorisée quand les paramètres se trouvent dans le champ « Redirect from ». 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 « Redirect from » est appelée, Shopify sert la chaîne d’URL complète avec ses paramètres, et non la page racine comme la table le laisse attendre :
Cette entrée est autorisée, mais Shopify n’ajoute pas les paramètres à la page qui se charge, comme la règle le prévoit. Seule l’URL racine se charge. Les paramètres ne sont jamais ajoutés à l’URL qui se charge :
Notre dernière observation sur les URL avec paramètres, c’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 donnez 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 que « Doe » devienne le premier attribut de paramètre :
/test?Doe&name=John
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 avec un nouvel ordre pour les paramètres listés :
/user?active=true&age=30&name=John
Nos tests suggèrent que Shopify cherche à placer les paramètres par ordre alphabétique. Nous nous sommes demandé si c’était un bug, puisque nous avons établi que Shopify traite les URL avec paramètres 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 lourdes conséquences pour certains systèmes de gestion de contenu.
Trois corrections dans cette section.
Les paramètres présents sur la requête entrante sont transmis à la destination. La formulation d'origine dit qu'ils ne sont jamais ajoutés à l'URL qui se charge, et ce n'est vrai que des chemins sources avec paramètres décrits ci-dessus. Quand le chemin source de la redirection ne porte aucun paramètre propre, tout ce qui arrive sur la requête est ajouté :
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 située au-dessus de Shopify.
La réécriture met aussi en minuscules, en plus de réordonner. L'exemple traité ci-dessus conserve ses majuscules, et Shopify non. Un chemin soumis sous la forme /test?name=John&Doe est stocké sous la forme /test?doe&name=john. Les valeurs sont mises en minuscules en même temps que les clés, donc une table de redirections comparée au tableur source donnera l'impression que l'import a corrompu les données.
La correspondance n'est pas une comparaison littérale de chaînes. Shopify normalise à la fois l'enregistrement stocké et la requête entrante avant de les comparer, donc la casse et l'ordre des paramètres n'ont pas d'importance. Face à un enregistrement stocké sous la forme /page?doe&name=john, chacune des variantes ?name=John&Doe, ?Doe&name=John et ?name=john&doe renvoie un 301.
Ce qui compte, en revanche, c'est quels paramètres sont présents. Chaque paramètre du chemin stocké doit apparaître dans la requête. Retirez-en un et vous obtenez un 404 plutôt qu'une correspondance partielle, donc le constat d'origine tient : une redirection avec paramètres ne se déclenche que pour cette combinaison exacte de paramètres.
L’expérience des redirections d’URL de Shopify a besoin d’une mise à jour
Au fil de notre usage intensif de l’outil de redirections de Shopify, nous en avons apprécié certains aspects et regretté d’autres.
Nous apprécions ces fonctionnalités :
- Les boutons et 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 manque de ces données et fonctions :
- Le décompte total des URL importées
- Un moyen plus simple de copier-coller plus d’une 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 va vite, défaire un import non
Ajouté à la suite du nouveau test du 27 juillet 2026.
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 | Observé |
|---|---|---|
| Créer 1 051 redirections | Import CSV, fichier unique | 48 secondes |
| Supprimer 1 051 redirections | urlRedirectDelete, une à la fois |
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 authentifiée par identifiants client, c’est-à-dire la façon dont tournent 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 d’abord le fichier sur une boutique de développement, ou importez par tranches que vous acceptez de défaire à la main. Ne poussez pas un fichier de 50 000 lignes non testé en supposant que vous pourrez revenir en arrière rapidement.
L’import CSV et l’Admin API traitent les doublons différemment
Ajouté à la suite du nouveau test du 27 juillet 2026.
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’Admin API 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 réellement sur la boutique en production, et c’est une autre question. Une redirection peut s’importer proprement, apparaître dans l’admin, et ne toujours 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 le navigateur masque justement ce que vous devez voir : le code de statut. Appelez l’ancienne URL et lisez les en-têtes de 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 un
301. Un302est temporaire et transmet la valeur différemment, ce qui compte quand tout l’enjeu 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 qu’à laisser l’étape intermédiaire en place. - Le statut final. La dernière ligne doit être
200. Une redirection qui finit en404est pire que pas de redirection du tout, car elle a l’air traitée dans votre tableur.
Testez ensuite les formes que l’on oublie facilement. Faites 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 jusqu’à la cible, mais l’idée 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 en périphérie Shopify peut continuer à servir l’ancienne réponse pendant une trentaine de secondes, alors qu’une version anti-cache de la même URL 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 qu’une redirection isolée, déroulez la checklist de migration de site, qui couvre la cartographie, le jour de la mise en ligne et la surveillance post-lancement dans lesquels tout ceci s’inscrit.
En conclusion
Le système dont Shopify dispose pour gérer les redirections 301 convient à la plupart des entreprises, mais il n’est pas encore au niveau Enterprise. Avec le temps, nous espérons qu’il évoluera pour inclure les redirections à caractère générique et davantage d’enregistrements de redirection sur les plans standard et Plus. La possibilité d’utiliser leur système de redirections 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 qui comprend des correspondances de redirections 301 complexes et qu’il vous faut une équipe dont c’est le métier au quotidien, contactez-nous.
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 jusqu’à 100 000 redirections d’URL efficacement.
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. Il fournit des consignes générales pour ajouter des redirections 301 individuelles et en masse, tandis que notre guide le complète par 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 placés ailleurs, 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 plusieurs URL correspondant à un motif donné vers une destination unique. Par exemple, rediriger toutes les URL sous /blog/* vers /articles/*. Bien que cette fonctionnalité soit fréquemment demandée, 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 intègre des garde-fous pour empêcher les chaînes de redirection. Le système ne vous laisse 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 passent par plusieurs étapes avant d’atteindre la destination finale (par exemple A→B→C). Ces chaînes peuvent ralentir le chargement des pages et nuire à la performance 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 d’une redirection d’URL individuelle dans l’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 pour l’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 relevé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 qui dépassent 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 complets ont montré 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 le fait d’éviter les points-virgules non encodés après un opérateur égal.