Hreflang Cleaner

FAQ — Hreflang Cleaner

Les questions fréquentes des merchants sur le fonctionnement de Hreflang Cleaner, les limitations Shopify, et le déploiement.

La documentation explique l'installation, le choix des paires et les vérifications, de bout en bout. Ouvrir la documentation

Que fait Hreflang Cleaner concrètement ?
L'app injecte des balises hreflang propres dans le <head> de toutes les pages de votre boutique (accueil, produit, collection, article, blog, page, panier, recherche, politiques…), en utilisant uniquement les combinaisons marché × langue que vous avez explicitement cochées. Pour que ces balises remplacent celles de Shopify Markets (qui émet par défaut toutes les combinaisons cartésiennes, y compris des parasites comme fr-ae sur un marché Émirats anglophone), vous devez d'abord désactiver les hreflang natifs dans votre admin : Boutique en ligne → Préférences → Partage sur les réseaux sociaux et SEO → Balises hreflang automatiques. C'est l'étape 1 de la Configuration. Sans elle, les balises de l'app coexistent avec celles de Shopify et créent des doublons (le tableau de bord affiche alors une alerte).
Combien coûte Hreflang Cleaner ?
29 $US par mois avec un essai gratuit de 14 jours. Un seul plan, toutes les fonctionnalités incluses quel que soit la taille de votre catalogue ou le nombre de marchés. Vous pouvez désinstaller à tout moment depuis votre admin Shopify ; l'abonnement est annulé avec la désinstallation.
Comment désactiver les balises hreflang natives de Shopify ?
Directement depuis votre admin : Boutique en ligne → Préférences → Partage sur les réseaux sociaux et SEO → Balises hreflang automatiques (réglage introduit par Shopify en juillet 2026 — avant, il fallait passer par le support). Tant que ce n'est pas fait, vous avez des balises dupliquées — l'app le détecte et vous alerte via le health check quotidien.
Pourquoi le tableau de bord me renvoie-t-il vers la Configuration ?
Parce que la configuration n'est pas finalisée. Tant que les trois étapes ne sont pas faites et la première synchronisation lancée, l'app ne publie rien et le tableau de bord n'aurait que des zéros à afficher : il vous ramène donc là où il y a quelque chose à faire. Les points manquants sont listés sous le bouton Finaliser et synchroniser, en bas de la page Configuration. Un seul cas fait exception : si votre boutique n'a aucun marché ou aucune web presence dans Shopify Markets, l'étape 2 n'a rien à enregistrer et la configuration ne peut pas aboutir — l'app vous propose alors un accès direct au tableau de bord pour ne pas vous enfermer, en attendant que Shopify Markets soit configuré.
Pourquoi un délai de 24h sur la synchronisation ?
L'app ne déclenche pas de re-sync en temps réel sur les créations ou éditions. Toutes les ressources (produits, collections, articles, blogs, pages) sont rattrapées par un cron quotidien (≤24h). Ce choix est volontaire : il garantit la même mécanique pour 20 ou 200 000 ressources, sans deux chemins de code différents. Les webhooks temps réel sont réservés aux événements qui ne tolèrent pas un délai de 24h : les suppressions de produits et collections (l'app purge immédiatement les metafields orphelins), la publication d'un nouveau thème (on re-vérifie l'activation du block), et les changements de locales sur votre configuration Shopify Markets. Articles, blogs et pages n'exposent pas de webhook chez Shopify, donc leur suppression est aussi rattrapée par le cron.
Comment prévisualiser sans impacter le SEO ?
Activez le Mode test dans la Configuration. Les balises hreflang sont alors émises en commentaires HTML (<!-- <link rel="alternate" ... /> -->) — aucun moteur de recherche ne les voit. Vous pouvez vérifier le rendu via l'inspecteur de votre navigateur. La propagation au front prend 1-2 minutes (cache CDN Shopify) après bascule.
Que faire si j'ajoute un marché ou une langue dans Shopify Markets ?
L'app ne re-configure pas automatiquement les balises lors d'un ajout de marché, de langue, ou de domaine — la liste de paires « cochées » est volontairement explicite (toutes les combinaisons ne font pas sens SEO). Après une modification de votre configuration Markets, revenez à l'étape 2 de la Configuration, cochez les nouvelles paires pertinentes, puis cliquez sur Enregistrer. La sync repasse automatiquement et publie les nouvelles balises sous 24h.
L'app fonctionne-t-elle sur les gros catalogues (50k, 200k produits) ?
Oui. La synchronisation utilise les bulk operations Shopify (une seule requête pour tout le catalogue) avec un rate limiter cost-based, un système de hash no-op (skip si rien n'a changé) et un checkpoint resume en cas de crash. Une sync complète sur 200k ressources prend environ 2-4h selon le plan Shopify (Standard ou Plus). Le cron quotidien tourne dans la fenêtre 24h sans accroc.
Comment savoir si le block est bien actif sur mon thème ?
Le hero du Dashboard affiche l'état du block sur votre thème publié. La publication d'un nouveau thème est détectée en temps réel via webhook : le stat passe en alerte et une bannière vous invite à réactiver le block sur le nouveau thème (Shopify ne reporte pas l'activation des app embeds entre thèmes). Une désactivation manuelle du block dans l'éditeur de thème, elle, est détectée par le health check quotidien — donc avec une latence ≤24h.
Quelles données l'app collecte-t-elle ?
L'app stocke en base : le domaine de votre boutique, un jeton d'accès Shopify (standard pour toutes les apps Shopify, requis pour appeler l'API en votre nom — révoqué automatiquement à la désinstallation), votre matrice de paires marché × langue, l'historique des syncs (durée, ressources modifiées, erreurs) et les hashes de metafields utilisés pour le skip no-op. Aucune donnée client final, aucune commande, aucune information de contact — l'app n'a ni le scope ni la logique pour les lire. La Privacy Policy complète est publiée à l'URL indiquée sur la fiche App Store.
Que se passe-t-il si je désinstalle l'app ?
À la désinstallation, Shopify retire automatiquement le theme app extension de votre thème : le block disparaît du <head> et les balises hreflang ne sont plus rendues. Les metafields écrits sur vos ressources (hreflang.urls, hreflang.config) ne sont pas effacés par Shopify et restent sur vos produits, collections, pages, articles et blogs — sans impact SEO puisque plus rien ne les lit. Vous pouvez les supprimer manuellement via l'admin Shopify ou l'API GraphQL si vous voulez un nettoyage complet. Le réglage Balises hreflang automatiques de Shopify, lui, reste dans la position où vous l'avez laissé : réactivez-le depuis Boutique en ligne → Préférences si vous voulez retrouver le comportement natif.
Comment obtenir de l'aide ?
Contactez-nous via le canal de support indiqué sur la fiche App Store de Hreflang Cleaner. Nous répondons sous 24h ouvrées. Cette FAQ est aussi accessible en public sur l'URL indiquée sur la fiche — n'hésitez pas à la partager avec votre équipe ou avec un agent du support Shopify quand vous nous contactez.