
Redirection QR code 301 ou 302 : l'impact sur vos statistiques
Un lundi, 40 000 flyers partent à la distribution. Première semaine : 3 100 scans. Deuxième semaine : 400. Troisième : presque plus rien. Pourtant personne n'a modifié la maquette, l'emplacement ou l'offre.
Parfois cette courbe est un déclin de campagne honnête. Parfois c'est un code de statut HTTP qui retire discrètement des lignes de votre rapport.
Les cinq étapes cachées derrière un seul scan
Un QR code dynamique ne porte pas l'adresse de votre page dans ses modules. Il porte une URL courte appartenant au service qui a émis le code. À partir de là :
- L'appareil photo décode l'URL courte à partir de la grille noir et blanc.
- Le téléphone demande cette URL.
- Le service de redirection écrit une ligne : horodatage, localisation approximative déduite de l'adresse IP, chaînes d'appareil et de navigateur, étiquette de campagne s'il y en a une.
- Le service répond par une redirection pointant vers la vraie destination.
- Le téléphone suit la redirection et charge votre page.
Chaque chiffre d'un tableau de bord vient de l'étape 3. Un scan qui saute l'étape 3 n'est pas une donnée de faible qualité, ce n'est pas une donnée du tout. La mécanique de l'étape 1 est traitée dans comment fonctionnent les QR codes. Cet article porte sur l'étape 4, là où le suivi se gagne ou se perd.
Permanent contre temporaire
HTTP offre à un serveur plusieurs façons de dire « va ailleurs », et elles ne veulent pas dire la même chose pour le client qui les reçoit.
301 Moved Permanently affirme que la ressource a un nouveau domicile et que les requêtes futures doivent y aller directement. Les clients ont le droit de s'en souvenir. Les navigateurs le mettent en cache, et les proxys et autres intermédiaires entre le téléphone et votre serveur aussi.
302 Found affirme que le détour est temporaire. Le client doit continuer à utiliser l'URL d'origine la fois suivante.
307 Temporary Redirect porte le même sens temporaire avec des règles plus strictes sur la préservation de la méthode de requête, ce qui compte davantage pour les envois de formulaires que pour une caméra qui ouvre un lien.
Un scan est toujours un simple GET, donc la distinction intéressante n'est pas 302 contre 307. C'est permanent contre temporaire.
Ce qu'une redirection en cache fait à la deuxième semaine
Supposons que le service renvoie 301. Le premier scan sur un téléphone donné se déroule normalement : requête, journalisation, redirection, chargement. Au second scan, le navigateur peut consulter son propre cache, y trouver la réponse permanente enregistrée plus tôt, et sauter directement à la destination. Le service de redirection n'est jamais contacté. Rien n'est journalisé.
Le symptôme visible est une courbe de scans qui chute plus vite que la campagne, les visiteurs récurrents disparaissant des données QR tandis que les statistiques web de la destination continuent d'afficher des arrivées. Deux systèmes, deux histoires, et c'est le côté QR qui a tort.
Combien de temps survit une redirection permanente en cache dépend du navigateur, de sa version et des en-têtes de cache accompagnant la réponse. Le comportement n'est pas homogène d'un appareil à l'autre, et vous ne pouvez pas l'inspecter depuis chez vous. La solution fiable, c'est de ne jamais créer la situation.
Le mode de défaillance qui coûte plus cher que des données
Sous-compter est agaçant. La seconde conséquence est pire.
La raison de payer pour un code dynamique, c'est que la destination peut changer après impression. Un badge de conférence pointe vers le programme de cette année. Un encart d'emballage pointe vers le manuel en vigueur. Une affiche pointe vers la promotion active ce mois-ci.
Si un téléphone a mis en cache une redirection permanente vers l'ancienne cible, modifier la destination dans votre tableau de bord n'atteint pas ce téléphone. Il continue d'aller là où on lui a dit d'aller la première fois. Il n'existe aucun moyen de pousser une correction dans un cache que vous ne contrôlez pas, et la personne qui tient le téléphone n'a aucune raison de se douter de quoi que ce soit, puisque le code « fonctionne » toujours. Il fonctionne simplement de travers. C'est une variante plus perverse des problèmes décrits dans pourquoi un QR code cesse de fonctionner, car rien ne cloche visiblement dans le symbole imprimé.
Quatre questions à poser avant le tirage
Le comportement de redirection est un choix d'implémentation, et il est légitime de le demander plutôt que de le supposer :
- Quel code de statut la redirection renvoie-t-elle, et quels en-têtes de cache l'accompagnent ?
- Après modification d'une destination, en combien de temps ce changement prend-il effet pour un appareil ayant déjà scanné le code ?
- Les scans répétés depuis le même appareil sont-ils comptés, dédoublonnés ou écartés ?
- Qu'advient-il du code et de son historique si l'abonnement expire ?
Vous pouvez répondre vous-même à la première en moins d'une minute. Générez un code de test, copiez-en l'URL courte, lancez curl -I sur cette URL depuis un terminal, et lisez la ligne de statut et l'en-tête Location. Un panneau réseau de navigateur avec le cache désactivé montre la même chose. Si la réponse est 301 et que vous avez besoin de destinations modifiables, soulevez-le avant que 40 000 feuilles passent en presse. Un QR code dynamique n'est modifiable qu'à hauteur du cache le plus faible entre le téléphone et votre serveur.
Quand la redirection n'en vaut pas la peine
Tous les codes n'en ont pas besoin. Un code statique encode la destination directement. Pas de consultation, pas de journalisation, pas de dépendance mensuelle, et rien à casser si un prestataire disparaît.
Ce que vous abandonnez, c'est la mesure et la possibilité de changer la cible. Ce compromis est raisonnable pour des identifiants Wi-Fi sur une carte d'hôtel, un numéro de téléphone sur un véhicule de service, ou une étiquette d'inventaire sur du matériel. C'est un mauvais compromis dès que vous comptez comparer des emplacements, des villes ou des périodes, ce qui est l'argument développé dans codes dynamiques et statistiques.
Et en France ?
Une façon de garder la maîtrise de vos redirections sur la durée : les faire passer par votre propre nom de domaine. Un code qui encode go.votremarque.fr plutôt que le domaine court d'un éditeur reste sous votre contrôle si vous changez de prestataire un jour.
Le .fr est géré par l'Afnic et ouvert aux personnes et aux entreprises établies dans l'Union européenne. Un sous-domaine dédié aux QR codes coûte peu, rassure les visiteurs qui voient votre marque dans l'aperçu du lien, et vous permet de contrôler vous-même le type de redirection : une 302 pour tout ce qui doit rester modifiable et mesurable.
Lire vos chiffres en gardant le cache à l'esprit
Même avec une redirection temporaire bien configurée, lisez vos comptes de scans comme un ordre de grandeur plutôt que comme un chiffre exact. Certaines messageries ouvrent les liens à l'avance pour afficher un aperçu, certains outils de sécurité les visitent pour les analyser et gonflent les compteurs, et certains téléphones scannent sans réseau, si bien que la requête n'arrive jamais.
La discipline utile est comparative. Un code par emplacement, un par ville, un par date d'impression, puis lisez les écarts entre eux plutôt que les totaux absolus. Les écarts survivent au bruit. Les nombres absolus rarement.

