Auditer un e-commerce
Saisonnalité, marge et catalogue, avec le cas Grosbill.

Un e-commerce se lit à la marge sur coûts variables et sur le calendrier. Le chiffre d’affaires flatte une boutique qui pousse des produits à faible marge avec du trafic payant, et une moyenne sur douze mois masque les quelques semaines qui font l’année. Commencez par ces deux corrections, puis passez au catalogue, où se trouvent la plupart des pages à corriger.
Dans ce chapitre, prenons un commerçant en ligne à 8 M€ de chiffre d’affaires annuel, avec 12 000 produits et une année qui se joue au Black Friday. Les chiffres associés à ce commerçant sont fictifs. Les résultats de Grosbill, plus bas, sont réels.
Reconstituez la marge par commande avant de juger un canal
Demandez à la finance les lignes de commande avec le coût produit, les frais de port et d’emballage, les frais de paiement et les retours, puis récupérez les dépenses publicitaires par canal et par catégorie. Ces données vivent le plus souvent dans des systèmes séparés, et les rapprocher est la première chose utile que fait l’audit.
Contribution per order = net revenue (excluding VAT, after returns)
- cost of goods
- shipping and packing
- payment fees
- ad cost attributed to the order
Break-even ROAS = 1 / contribution margin rate before ads
La seconde ligne change la lecture du compte publicitaire, car un même ROAS veut dire des choses opposées selon la catégorie.
| Catégorie | Taux de marge avant publicité | ROAS d’équilibre | ROAS affiché | Lecture |
|---|---|---|---|---|
| Gros électroménager | 12 % | 8,3 | 6 | Chaque commande perd de l’argent, sauf si le réachat la rembourse |
| Accessoires | 40 % | 2,5 | 4 | Rentable, sans doute sous-financé |
Un ROAS au niveau du compte ferait la moyenne de ces deux lignes et masquerait la décision. Faites la même séparation entre pic et période normale :
SELECT
p.category,
CASE WHEN o.ordered_at::date BETWEEN '2025-11-17' AND '2025-12-01'
THEN 'peak' ELSE 'baseline' END AS period,
SUM(i.quantity * i.unit_price_net) AS net_revenue,
SUM(i.quantity * (i.unit_price_net - i.unit_cost)) AS gross_margin,
COUNT(DISTINCT o.id) AS orders
FROM order_items i
JOIN orders o ON o.id = i.order_id
JOIN products p ON p.id = i.product_id
WHERE o.status = 'completed'
AND o.ordered_at >= '2025-01-01'
AND o.ordered_at < '2026-01-01'
GROUP BY 1, 2
ORDER BY 1, 2;
Adaptez les dates à votre pic. Une catégorie peut gagner beaucoup de chiffre d’affaires pendant les semaines fortes et très peu de marge une fois les remises déduites. C’est souvent le premier constat à montrer au fondateur.
Traitez la saisonnalité comme une liste d’échéances
Récupérez au moins deux années complètes de chiffre d’affaires hebdomadaire, trois si vous les avez, et comparez chaque semaine à la même semaine de l’année précédente. Les comparaisons d’un mois sur l’autre mesurent surtout la saison. Listez chaque pic, sa part du chiffre d’affaires annuel et sa part de la marge annuelle. L’écart entre les deux indique ce que le pic rapporte vraiment.
Auditez ensuite la préparation du dernier pic, dates à l’appui, puisqu’un pic se décide dans ce qui a été livré les mois précédents.
| Élément | Ce qu’il faut récupérer | À quoi ressemble un constat |
|---|---|---|
| Pages saisonnières | Date de publication de chaque page, première impression dans la Search Console | Les pages sortent quelques semaines avant le pic, trop tard pour être indexées et classées |
| URL | L’URL saisonnière change-t-elle chaque année | Chaque édition repart de zéro |
| Pages d’arrivée payantes | URL finales des campagnes du pic | Les ads arrivent sur un listing générique |
| Stock | Ruptures sur les meilleures ventes pendant le pic | Du budget qui continue à tourner sur des produits indisponibles |
| Stabilité du site | Erreurs et temps de chargement les jours de pic | Le tunnel a ralenti au moment où la demande était la plus forte |
| Remises | Profondeur de remise par catégorie comparée à l’équilibre | Des promotions fixées par habitude, sans plancher de marge |
L’attribution se complique aussi pendant les pics. Le last click flatte les recherches de marque et les e-mails promotionnels alors que la demande a été créée plus tôt : comparez la marge totale d’un pic à l’autre avant de créditer un canal en particulier.
Ce que montre le cas Grosbill
Grosbill est l’exemple le plus net que je puisse donner d’un pic gagné à l’avance. La plupart des e-commerçants traitent le Black Friday comme une promotion et s’y mettent quelques semaines avant. Nous avons créé des pages dédiées xxx-black-friday pour des produits et des catégories plusieurs mois plus tôt, nous les avons optimisées pour les recherches associant un produit ou une catégorie au Black Friday, puis nous en avons décliné des versions pour que le trafic payant arrive sur une page faite pour lui.
Sur la période, le chiffre d’affaires issu des ads a été multiplié par 7 et celui issu du SEO par 4. Côté SEO, 47 % du chiffre d’affaires provenait de ces seules pages.
Deux contrôles découlent directement de ce cas. D’abord, pour vos meilleures catégories en marge, vérifiez qu’une page saisonnière existe aujourd’hui et qu’elle est en ligne depuis assez longtemps pour être explorée, indexée et gagner sa position. S’il vous en faut beaucoup, le chapitre sur la mise en production et l’indexation couvre la partie qui prend du temps. Ensuite, calculez la part du chiffre d’affaires SEO du pic qui arrive sur ces pages saisonnières. Elle vous indique si ces pages portent le pic ou si vos listings génériques font le travail par défaut.
Lisez le catalogue comme un portefeuille
Un catalogue de 12 000 produits ne s’audite pas page par page. Exportez une ligne par produit sur douze mois avec la catégorie, le chiffre d’affaires net, la marge, les sessions, les clics organiques, le statut de stock et l’indexabilité, puis classez chaque produit dans un segment.
| Segment | Test | Action |
|---|---|---|
| Stars | Marge élevée, fortes ventes | Protéger en priorité le stock, le budget publicitaire et la qualité de page |
| Marge cachée | Marge élevée, peu de sessions | Remonter dans les pages catégories, ajouter des liens internes et du budget |
| Trafic sans marge | Beaucoup de sessions, marge faible | Ajouter de la vente croisée, couper le payant |
| Poids mort | Aucune vente et aucun clic en douze mois | Regrouper ou retirer, rediriger quand un équivalent proche existe |
| Indisponible | Souvent ou définitivement en rupture | Garder en ligne avec des alternatives pour une rupture temporaire, rediriger vers le produit le plus proche pour un arrêt définitif |
La partie technique suit la même logique, template par template. La navigation à facettes est le premier endroit à regarder sur une boutique, car les filtres peuvent générer bien plus d’URL que vous n’avez de produits. Google y consacre un guide dédié. Cherchez les descriptions fabricant recopiées d’un produit à l’autre et les pages catégories qui se résument à une grille. N’ouvrez pas une catégorie ou une page de filtre tant qu’elle ne contient pas au moins cinq produits.
Passez chaque template en revue, le HTML d’abord, puis l’ergonomie et le CRO : accueil, catégorie, produit, panier, tunnel. Demandez-vous à quoi sert chaque page et mettez les inutiles à la poubelle. Pensez à ceux qui arrivent sur une fiche produit : quelqu’un qui compare, quelqu’un de prêt à acheter, et un client qui veut renouveler une commande ou trouver une pièce. Chacun a besoin d’une suite différente, et une page à un seul CTA n’en sert qu’un.
Pour le funnel d’achat, les événements e-commerce de GA4 donnent les étapes : view_item, add_to_cart, begin_checkout, purchase. Séparez-les par appareil et entre nouveaux clients et clients existants, car un taux de tunnel global mélange des personnes très différentes.
Allez ensuite au-delà de la première commande. Regroupez les clients par mois de premier achat et mesurez le taux de deuxième commande et le délai qui les sépare, comme l’explique le chapitre sur la rétention. Faites le même calcul par première catégorie, et selon que la première commande a eu lieu pendant un pic. Des clients du pic qui ne reviennent jamais changent la valeur d’une acquisition Black Friday, et la LTV doit se calculer sur la marge.
Livrez un plan daté depuis le prochain pic
Le livrable comporte quatre parties : la marge par canal et par catégorie, le calendrier des pics avec ses constats, les segments du catalogue et une fiche d’actions priorisées dont l’impact s’exprime en marge. Posez ensuite le tout sur la roadmap à 6 mois, en comptant à rebours depuis la date du prochain pic.
| Temps avant le pic | Travail |
|---|---|
| 6 mois | Classer catégories et produits par marge, définir le template saisonnier |
| 5 à 4 mois | Publier les pages saisonnières, les relier depuis les catégories |
| 3 mois | Construire les versions pour les ads, vérifier le suivi des achats et les données de marge |
| 2 mois | Tester les pages et le tunnel, puis arrêter les changements structurels |
| 1 mois | Figer le stock, les planchers de marge et les créations, lancer les tests de charge |
| Après le pic | Analyser les cohortes, garder les pages en ligne pour l’année suivante |
Votre prochaine étape : prenez la date de votre prochain pic, comptez six mois à rebours et voyez sur quelle ligne de ce tableau vous vous trouvez. Listez ensuite vos vingt meilleures catégories en marge et notez à côté de chacune la date de mise en ligne de sa page saisonnière. Les cases vides sont votre première semaine de travail.