[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$fUHxlE-5wnk-CzpDl6amV_zdjp-lARdZcxbkxb7S5UaA":22,"footer-db":67,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":87,"header-db":167,"megamenu":178,"$f596eDCy0lQGS13lLsVE5HpjZ_n6Gxkt-ixpPuoPtM1k":233},{"theme":4},{"colors":5,"typography":13,"ui":17,"defaultColorMode":21},{"primary":6,"secondary":7,"background":8,"foreground":9,"muted":10,"headerBg":11,"footerBg":12,"topBarBg":9,"topBarText":11},"#4F46E5","#0D9488","#F9FAFB","#111827","#6B7280","#ffffff","#020617",{"fontFamily":14,"fontUrl":15,"baseFontSize":16},"Inter, system-ui, sans-serif","https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400;1,700&display=swap","16px",{"borderRadius":18,"contentWidth":19,"shadow":20},"lg","7xl",true,"light",{"title":23,"slug":24,"metaDescription":25,"category":26,"tags":27,"difficulty":34,"psVersions":35,"content":39,"faq":40,"tldr":62,"readingTime":63,"generatedAt":64,"publishDate":64,"relatedArticles":65,"sourceCategory":66},"Ajouter un H1 personnalisé aux pages catégories PrestaShop","h1-personnalise-pages-categories-prestashop","Découvrez comment ajouter un champ H1 personnalisé sur vos pages catégories PrestaShop pour optimiser votre SEO. Override, import CSV et template inclus.","seo",[28,29,30,31,32,33],"h1","catégorie","override","SEO","import CSV","personnalisation","intermediaire",[36,37,38],"1.6","1.7","8.x","\u003Ch2>Pourquoi personnaliser le H1 des pages catégories ?\u003C\u002Fh2>\n\u003Cp>Par défaut, PrestaShop utilise le \u003Cstrong>nom de la catégorie\u003C\u002Fstrong> comme balise H1 sur les pages de listing produits. C'est un problème SEO majeur : le nom de catégorie doit rester court et parlant pour la navigation (menus, breadcrumb, URL), alors que le H1 devrait être optimisé pour le référencement avec des mots-clés stratégiques.\u003C\u002Fp>\n\u003Cp>Exemple concret :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Nom catégorie** (navigation) : \"Chaussures homme\"\u003C\u002Fli>\n\u003Cli>**H1 optimisé** (SEO) : \"Chaussures pour homme : baskets, mocassins et chaussures de ville\"\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Cette dissociation entre le nom affiché en navigation et le H1 de la page est une technique SEO fondamentale que tout marchand PrestaShop devrait mettre en place.\u003C\u002Fp>\n\u003Ch2>Étape 1 : Ajouter le champ en base de données\u003C\u002Fh2>\n\u003Cp>Le champ H1 personnalisé doit être \u003Cstrong>multilingue\u003C\u002Fstrong>, car il est lié à une langue. Il se place donc dans la table \u003Ccode>ps_category_lang\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Connectez-vous à phpMyAdmin (ou utilisez un client SQL) et exécutez :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-sql\">\nALTER TABLE ps_category_lang \nADD COLUMN h1_cat VARCHAR(255) DEFAULT NULL \nAFTER meta_description;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Remarque :\u003C\u002Fstrong> On utilise \u003Ccode>VARCHAR(255)\u003C\u002Fcode> plutôt que \u003Ccode>TEXT\u003C\u002Fcode> car un H1 ne devrait jamais dépasser 70-80 caractères pour le SEO. Le type \u003Ccode>VARCHAR(255)\u003C\u002Fcode> offre une marge confortable tout en restant performant pour les requêtes.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch3>Vérification\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-sql\">\nSELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH \nFROM INFORMATION_SCHEMA.COLUMNS \nWHERE TABLE_NAME = 'ps_category_lang' \nAND COLUMN_NAME = 'h1_cat';\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Étape 2 : Créer l'override de la classe Category\u003C\u002Fh2>\n\u003Cp>Pour que PrestaShop reconnaisse ce nouveau champ, il faut étendre la définition de l'objet \u003Ccode>Category\u003C\u002Fcode> via un override.\u003C\u002Fp>\n\u003Ch3>PrestaShop 1.6 \u002F 1.7\u003C\u002Fh3>\n\u003Cp>Créez le fichier \u003Ccode>override\u002Fclasses\u002FCategory.php\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\u002F**\n * Override Category - Ajout du champ H1 personnalisé pour le SEO\n *\u002F\nclass Category extends CategoryCore\n{\n    \u002F** @var string H1 personnalisé pour les pages catégories *\u002F\n    public $h1_cat;\n\n    public function __construct($id_category = null, $id_lang = null, $id_shop = null)\n    {\n        \u002F\u002F Injection du champ dans la définition ObjectModel\n        self::$definition['fields']['h1_cat'] = [\n            'type' =&gt; self::TYPE_STRING,\n            'lang' =&gt; true,\n            'validate' =&gt; 'isGenericName',\n            'size' =&gt; 255,\n        ];\n\n        parent::__construct($id_category, $id_lang, $id_shop);\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>PrestaShop 8.x\u003C\u002Fh3>\n\u003Cp>Sur PrestaShop 8.x, le système d'overrides fonctionne toujours, mais la méthode recommandée pour les projets pérennes est d'utiliser un \u003Cstrong>module\u003C\u002Fstrong> avec un hook. Cela dit, pour un simple ajout de champ, l'override reste la solution la plus pragmatique :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\ndeclare(strict_types=1);\n\nclass Category extends CategoryCore\n{\n    public $h1_cat;\n\n    public function __construct($id_category = null, $id_lang = null, $id_shop = null)\n    {\n        self::$definition['fields']['h1_cat'] = [\n            'type' =&gt; self::TYPE_STRING,\n            'lang' =&gt; true,\n            'validate' =&gt; 'isGenericName',\n            'size' =&gt; 255,\n        ];\n\n        parent::__construct($id_category, $id_lang, $id_shop);\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Point critique :\u003C\u002Fstrong> Après avoir créé l'override, vous \u003Cstrong>devez\u003C\u002Fstrong> vider le cache des classes. Supprimez le fichier \u003Ccode>var\u002Fcache\u002Fprod\u002Fclass_index.php\u003C\u002Fcode> (PS 1.7\u002F8.x) ou \u003Ccode>cache\u002Fclass_index.php\u003C\u002Fcode> (PS 1.6). Sans cette étape, PrestaShop ne détectera pas votre override.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n# PrestaShop 1.7 \u002F 8.x\nrm var\u002Fcache\u002Fprod\u002Fclass_index.php\nrm var\u002Fcache\u002Fdev\u002Fclass_index.php\n\n# PrestaShop 1.6\nrm cache\u002Fclass_index.php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Étape 3 : Ajouter le champ dans le back-office\u003C\u002Fh2>\n\u003Cp>Pour éditer le H1 personnalisé depuis l'interface d'administration, il faut ajouter un champ dans le formulaire de catégorie.\u003C\u002Fp>\n\u003Ch3>Solution par override du template (PS 1.6)\u003C\u002Fh3>\n\u003Cp>Modifiez le template \u003Ccode>admin\u002Fthemes\u002Fdefault\u002Ftemplate\u002Fcontrollers\u002Fcategories\u002Fhelpers\u002Fform\u002Fform.tpl\u003C\u002Fcode> en y ajoutant un champ texte après le champ \"Nom\" :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n&lt;div class=\"form-group\"&gt;\n    &lt;label class=\"control-label col-lg-3\"&gt;{l s='H1 personnalisé (SEO)'}&lt;\u002Flabel&gt;\n    &lt;div class=\"col-lg-5\"&gt;\n        {foreach $languages as $language}\n        &lt;div class=\"translatable-field lang-{$language.id_lang}\"\n             {if $language.id_lang != $defaultFormLanguage}style=\"display:none\"{\u002Fif}&gt;\n            &lt;input type=\"text\" \n                   name=\"h1_cat_{$language.id_lang}\" \n                   value=\"{$category-&gt;h1_cat[$language.id_lang]|escape:'html':'UTF-8'}\"\n                   class=\"form-control\" \n                   maxlength=\"255\"\n                   placeholder=\"Laissez vide pour utiliser le nom de catégorie\" \u002F&gt;\n        &lt;\u002Fdiv&gt;\n        {\u002Fforeach}\n    &lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Solution par module (PS 1.7 \u002F 8.x recommandé)\u003C\u002Fh3>\n\u003Cp>Sur PrestaShop 1.7 et 8.x, le formulaire de catégorie utilise le composant Symfony Form. La méthode propre consiste à utiliser les hooks \u003Ccode>actionCategoryFormBuilderModifier\u003C\u002Fcode> et \u003Ccode>actionAfterUpdateCategoryFormHandler\u003C\u002Fcode> dans un module dédié. C'est plus robuste et survit aux mises à jour.\u003C\u002Fp>\n\u003Ch2>Étape 4 : Afficher le H1 dans le template front\u003C\u002Fh2>\n\u003Cp>Modifiez le template de la page catégorie pour afficher le H1 personnalisé.\u003C\u002Fp>\n\u003Ch3>PrestaShop 1.6 (Smarty)\u003C\u002Fh3>\n\u003Cp>Dans \u003Ccode>themes\u002Fvotre-theme\u002Fcategory.tpl\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n&lt;h1&gt;\n    {if isset($category-&gt;h1_cat) && $category-&gt;h1_cat}\n        {$category-&gt;h1_cat|escape:'html':'UTF-8'}\n    {else}\n        {$category-&gt;name|escape:'html':'UTF-8'}\n    {\u002Fif}\n&lt;\u002Fh1&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>PrestaShop 1.7 \u002F 8.x (Smarty)\u003C\u002Fh3>\n\u003Cp>Dans \u003Ccode>themes\u002Fvotre-theme\u002Ftemplates\u002Fcatalog\u002Flisting\u002Fcategory.tpl\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-smarty\">\n&lt;h1 class=\"h1\"&gt;\n    {if isset($category.h1_cat) && $category.h1_cat}\n        {$category.h1_cat|escape:'htmlall':'UTF-8'}\n    {else}\n        {$listing.label}\n    {\u002Fif}\n&lt;\u002Fh1&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>Fallback intelligent :\u003C\u002Fstrong> Le code vérifie toujours si le champ est rempli. Si le H1 personnalisé est vide, le nom de catégorie classique s'affiche. Cela permet une migration progressive sans casser les pages existantes.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch2>Étape 5 : Import CSV en masse\u003C\u002Fh2>\n\u003Cp>Pour un catalogue avec des centaines de catégories, remplir les H1 un par un serait fastidieux. Voici comment ajouter le champ à l'importeur CSV natif.\u003C\u002Fp>\n\u003Cp>Créez \u003Ccode>override\u002Fcontrollers\u002Fadmin\u002FAdminImportController.php\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n&lt;?php\n\nclass AdminImportController extends AdminImportControllerCore\n{\n    public function __construct()\n    {\n        parent::__construct();\n\n        \u002F\u002F Ajout du champ H1 dans les colonnes d'import catégorie\n        $this-&gt;available_fields['h1_cat'] = [\n            'label' =&gt; $this-&gt;l('H1 personnalisé (SEO)'),\n        ];\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Votre fichier CSV devra contenir une colonne \u003Ccode>h1_cat\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-csv\">\nid;name;h1_cat;active\n2;Chaussures homme;Chaussures pour homme : baskets, mocassins et chaussures de ville;1\n3;Chaussures femme;Chaussures femme : escarpins, sandales et sneakers tendance;1\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\u003Cp>\u003Cstrong>N'oubliez pas\u003C\u002Fstrong> de supprimer à nouveau le fichier \u003Ccode>class_index.php\u003C\u002Fcode> après avoir créé cet override.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Ch2>Bonnes pratiques SEO pour vos H1 de catégories\u003C\u002Fh2>\n\u003Ch3>Règles de rédaction\u003C\u002Fh3>\n\u003Ctr>\u003Cth>Critère\u003C\u002Fth>\u003Cth>Recommandation\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Longueur\u003C\u002Fth>\u003Cth>30 à 70 caractères\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Mots-clés\u003C\u002Fth>\u003Cth>Placer le mot-clé principal en début de phrase\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Unicité\u003C\u002Fth>\u003Cth>Chaque catégorie doit avoir un H1 unique\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Cohérence\u003C\u002Fth>\u003Cth>Le H1 doit correspondre à l'intention de recherche de la page\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Lisibilité\u003C\u002Fth>\u003Cth>Phrase naturelle, pas une liste de mots-clés\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ch3>Erreurs fréquentes à éviter\u003C\u002Fh3>\n\u003Col>\n\u003Cli>**Dupliquer le title et le H1** — Ils doivent être complémentaires, pas identiques\u003C\u002Fli>\n\u003Cli>**Bourrage de mots-clés** — Google pénalise les H1 sur-optimisés\u003C\u002Fli>\n\u003Cli>**Oublier les catégories enfants** — Chaque niveau de profondeur mérite son H1 optimisé\u003C\u002Fli>\n\u003Cli>**Négliger le multilingue** — Chaque langue doit avoir son propre H1 traduit et optimisé\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Vérification et validation\u003C\u002Fh2>\n\u003Cp>Après mise en place, vérifiez que tout fonctionne :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\n# Vérifier en base que le champ est bien rempli\nSELECT cl.id_category, cl.id_lang, cl.name, cl.h1_cat \nFROM ps_category_lang cl \nWHERE cl.h1_cat IS NOT NULL \nAND cl.h1_cat != '' \nORDER BY cl.id_category;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Côté front, inspectez le code source de vos pages catégories (Ctrl+U) et vérifiez qu'il n'y a qu'\u003Cstrong>un seul H1\u003C\u002Fstrong> par page. Plusieurs balises H1 diluent le signal SEO.\u003C\u002Fp>\n\u003Cp>Utilisez un outil comme Screaming Frog ou Ahrefs pour crawler l'ensemble de vos catégories et valider l'unicité et la pertinence de chaque H1.\u003C\u002Fp>",[41,44,47,50,53,56,59],{"q":42,"a":43},"Pourquoi mon override PrestaShop n'est pas pris en compte ?","Le problème le plus fréquent est le cache des classes. PrestaShop génère un fichier class_index.php qui indexe les classes et leurs overrides. Après chaque création ou modification d'override, vous devez supprimer ce fichier : var\u002Fcache\u002Fprod\u002Fclass_index.php sur PrestaShop 1.7\u002F8.x, ou cache\u002Fclass_index.php sur PrestaShop 1.6. Videz également le cache depuis le back-office (Paramètres avancés > Performances).",{"q":45,"a":46},"Le H1 personnalisé impacte-t-il vraiment le référencement des catégories ?","Oui, significativement. La balise H1 est le premier signal on-page que Google utilise pour comprendre le sujet d'une page. En dissociant le nom de catégorie (court, pour la navigation) du H1 (optimisé, pour le SEO), vous pouvez cibler des requêtes longue traîne plus précises sans altérer l'ergonomie de votre boutique. Des tests A\u002FB SEO montrent des gains de positionnement de 5 à 15 positions sur des mots-clés catégoriels après optimisation des H1.",{"q":48,"a":49},"Cette méthode fonctionne-t-elle avec le multiboutique PrestaShop ?","Oui. La table ps_category_lang est déjà liée aux boutiques via ps_category_shop. Le champ h1_cat étant de type 'lang' dans la définition ObjectModel, PrestaShop gère automatiquement le contexte multilingue. En revanche, si vous avez besoin de H1 différents par boutique (pas seulement par langue), il faudra ajouter le champ dans ps_category_shop plutôt que ps_category_lang, et adapter la définition avec 'shop' => true.",{"q":51,"a":52},"Puis-je utiliser cette technique pour les pages produits ou CMS ?","Absolument. Le principe est identique : ajout d'un champ en base (ps_product_lang ou ps_cms_lang), override de la classe correspondante (Product ou CMS), et modification du template. Pour les produits, c'est particulièrement utile quand le nom commercial ne correspond pas à la requête SEO ciblée. La mécanique ObjectModel de PrestaShop rend cette extension applicable à n'importe quelle entité.",{"q":54,"a":55},"Comment migrer les H1 personnalisés lors d'une mise à jour de PrestaShop ?","Le champ en base de données (ps_category_lang) n'est pas touché par les mises à jour de PrestaShop. En revanche, les overrides peuvent entrer en conflit si le code core a changé. Avant toute mise à jour majeure (par exemple de 1.7 vers 8.x), sauvegardez vos overrides, effectuez la mise à jour, puis réappliquez-les en vérifiant la compatibilité. Sur PrestaShop 8.x, envisagez de migrer l'override vers un module Symfony pour une meilleure pérennité.",{"q":57,"a":58},"Faut-il un H1 différent de la balise title sur une page catégorie ?","Idéalement oui. La balise title s'affiche dans les résultats Google et doit inciter au clic (aspect marketing). Le H1 s'affiche sur la page et doit décrire précisément le contenu. Exemple pour une catégorie chaussures : title \"Chaussures homme pas cher | Livraison 24h - MaBoutique\" vs H1 \"Chaussures pour homme : trouvez votre paire parmi 250 modèles\". Cette complémentarité permet de couvrir davantage de variantes de mots-clés.",{"q":60,"a":61},"Comment vérifier que mes pages catégories n'ont qu'un seul H1 ?","Utilisez un crawler SEO comme Screaming Frog (gratuit jusqu'à 500 URLs) pour scanner votre site et détecter les pages avec zéro ou plusieurs H1. Vous pouvez aussi vérifier manuellement avec la console du navigateur : document.querySelectorAll('h1').length doit retourner 1. Attention aux thèmes qui ajoutent un H1 caché dans le logo ou le header — c'est une erreur fréquente qui dilue le signal SEO de votre H1 principal.","Ajoutez un champ h1_cat dans ps_category_lang et créez un override de la classe Category pour dissocier le nom de navigation du H1 SEO sur vos pages catégories PrestaShop. Import CSV en masse possible via un override de AdminImportController.",6,"2026-03-21T14:30:44.000Z",[],"Vente en ligne, référencement et SEO",{"footer":68},{"theme":69,"description":70,"hours":70,"logo":71,"contact":75,"social":76,"bottomBar":86},"dark",null,{"src":72,"href":73,"alt":74},"\u002Flogo-ac.svg","\u002F","Alexandre Carette",{"email":70,"phone":70,"address":70,"cta":70},[77,80,83],{"platform":78,"href":79,"label":78},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":81,"href":82,"label":81},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":84,"href":85,"label":84},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":70},{"columns":88},[89,105,135,156],{"title":90,"links":91},"Plateforme",[92,96,99,102],{"label":93,"href":94,"external":95},"Offre Starter (2 500 €)","\u002Foffre-starter",false,{"label":97,"href":98,"external":95},"Devenir Ambassadeur","\u002Fambassadeur",{"label":100,"href":101,"external":95},"Modules PrestaShop","\u002Fmodules",{"label":103,"href":104,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":106,"links":107},"Le Synedre",[108,111,114,117,120,123,126,129,132],{"label":109,"href":110,"external":95},"L'histoire","\u002Fsynedre",{"label":112,"href":113,"external":95},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":115,"href":116,"external":95},"L'équipe","\u002Fequipe",{"label":118,"href":119,"external":95},"Le réacteur en direct","\u002Freacteur",{"label":121,"href":122,"external":95},"Le Drill (entraînement)","\u002Fdrill",{"label":124,"href":125,"external":95},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":127,"href":128,"external":95},"Les agents IA","\u002Fagents-ia",{"label":130,"href":131,"external":95},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":133,"href":134,"external":95},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":136,"links":137},"Ressources",[138,141,144,147,150,153],{"label":139,"href":140,"external":95},"Blog","\u002Fblog",{"label":142,"href":143,"external":95},"Academy","\u002Facademy",{"label":145,"href":146,"external":95},"Dictionnaire","\u002Fdictionnaire",{"label":148,"href":149,"external":95},"Expertise PrestaShop","\u002Fexpertise",{"label":151,"href":152,"external":95},"Flywheel","\u002Fflywheel",{"label":154,"href":155,"external":95},"Manifeste","\u002Fmanifeste",{"title":157,"links":158},"À propos",[159,161,164],{"label":74,"href":160,"external":95},"\u002Fa-propos",{"label":162,"href":163,"external":95},"Dossier de presse","\u002Fpresse",{"label":165,"href":166,"external":95},"Contact","\u002Fcontact",{"header":168},{"logo":169,"topBar":172,"contactEmail":175,"features":176,"navBar":70},{"src":72,"alt":170,"text":74,"href":73,"class":171},"Alexandre Carette — Architecte E-commerce Souverain","h-10 w-10",{"message":70,"showLanguages":95,"align":173,"languages":174},"left",[],"contact@alexandrecarette.fr",{"showSearch":95,"showWishlist":95,"showLogin":20,"showContact":95,"showCart":95,"stickyHeader":20,"headerLayout":177},"inline",{"items":179},[180,188,194,200,208,216,222,227],{"id":181,"type":182,"label":183,"href":149,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":70,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":185,"children":186,"psChildren":187},41,"link",{"fr":184},"Expertise",0,[],[],{"id":189,"type":182,"label":190,"href":140,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":70,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":191,"children":192,"psChildren":193},42,{"fr":139},1,[],[],{"id":195,"type":182,"label":196,"href":101,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":70,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":197,"children":198,"psChildren":199},43,{"fr":100},2,[],[],{"id":201,"type":182,"label":202,"href":204,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":70,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":205,"children":206,"psChildren":207},44,{"fr":203},"Outils IA","\u002Foutils-ia",3,[],[],{"id":209,"type":182,"label":210,"href":94,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":212,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":213,"children":214,"psChildren":215},45,{"fr":211},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":217,"type":182,"label":218,"href":143,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":70,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":219,"children":220,"psChildren":221},46,{"fr":142},5,[],[],{"id":223,"type":182,"label":224,"href":160,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":70,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":63,"children":225,"psChildren":226},47,{"fr":157},[],[],{"id":228,"type":182,"label":229,"href":166,"icon":70,"description":70,"badge":70,"groupTitle":70,"style":70,"gridColumns":70,"cssClass":70,"psCategoryId":70,"showPsChildren":95,"position":230,"children":231,"psChildren":232},48,{"fr":165},7,[],[],{"academy":234,"blog":235,"expertise":246},[],[236,240,243],{"title":237,"url":238,"score":191,"type":239},"Référencement PrestaShop 2026 : le guide complet SEO + IA","\u002Fblog\u002Fseo\u002Freferencement\u002Fguide-complet-prestashop-2026","blog",{"title":241,"url":242,"score":191,"type":239},"SEO Google classique pour PrestaShop : 7 leviers techniques","\u002Fblog\u002Fseo\u002Freferencement\u002Fseo-google-classique-prestashop",{"title":244,"url":245,"score":191,"type":239},"AIO et GEO pour PrestaShop : optimiser pour les moteurs IA","\u002Fblog\u002Fseo\u002Freferencement\u002Faio-geo-intelligence-artificielle-prestashop",[]]