optimisation core web vitals 7 min

Core Web Vitals et Google Shopping : ce que ton Merchant Center ignore

Tu peux passer des heures à peaufiner ton flux produit : si ta fiche met 4 secondes à charger, Google Shopping l'enterre. Voici comment la performance est devenue un critère de classement silencieux.

Par Julien Morel
Partager

On a longtemps cru que le succès d’une campagne Google Shopping tenait à deux choses : un flux Merchant Center sans erreur et une stratégie d’enchères bien réglée. L’adéquation du titre produit, la qualité de l’image, la cohérence du prix. Ce triptyque a recouvert une autre réalité, plus souterraine, que les équipes SEO et dev découvrent souvent trop tard. La page de destination, celle sur laquelle l’utilisateur atterrit après avoir cliqué sur une offre gratuite ou une annonce, est traitée par les systèmes de classement avec la même sévérité qu’une page organique. Pas parce que Google l’a officiellement documenté dans une règle Shopping, mais parce que l’expérience utilisateur pilote désormais la rentabilité de chaque clic.

J’ai passé une matinée entière avec un e-commerçant qui voyait ses offres Shopping dégringoler en impressions alors que son flux était validé à 100 %. L’audit Lighthouse de sa fiche produit phare affichait un LCP à 4,2 secondes et un Cumulative Layout Shift de 0,35. La page n’avait aucun problème d’indexation, aucune directive bloquante. Elle était simplement trop lente pour l’utilisateur moyen d’une recherche Shopping, majoritairement sur mobile. Le Merchant Center ne pouvait pas le lui dire. C’est ce décalage qu’on va démonter.

Ton flux produit est parfait. Mais la page derrière, elle ?

La rigueur qu’on applique aux attributs du feed disparaît souvent dès que le clic est envoyé vers le site. Le titre respecte la limite de 150 caractères, le GTIN est renseigné, la disponibilité est mise à jour en temps réel. Pourtant, la page de destination charge un bundle JavaScript non segmenté, une librairie de lazy-loading agressive et des images non redimensionnées. Résultat : le visiteur arrive sur une page blanche pendant deux secondes, puis voit le bouton “Ajouter au panier” se décaler au moment où il allait cliquer.

Ce comportement n’est pas anecdotique. Dans les logs de suivi d’un site de pièces détachées, on a constaté que les sessions provenant de Google Shopping rebondissaient 40 % plus vite que la moyenne quand le LCP dépassait les 3 secondes. Le nombre de commandes issues de Shopping a mécaniquement baissé, sans que le nombre d’impressions ou de clics ne change dans l’interface Google Ads. Le feed, lui, restait impeccable. La sanction était indirecte : un mauvais taux de conversion rendait l’offre moins compétitive face aux autres marchands, le système d’enchères étant incapable de compenser l’écart d’expérience utilisateur.

💡 Conseil : Dans Google Ads, segmentez vos rapports par vitesse de chargement des pages de destination si le suivi côté site le permet. Vous verrez immédiatement le seuil où le coût par conversion s’envole.

Le LCP sur mobile ne pardonne rien aux fiches produits

On a coutume de mesurer le LCP global d’un site e-commerce, en agrégeant la page d’accueil, la liste de catégorie et la fiche produit. Ce lissage statistique masque la réalité de l’utilisateur Shopping : il arrive sur une fiche produit isolée, souvent en provenance d’un comparateur, avec une connexion mobile fluctuante. Le LCP de la fiche est rarement prioritaire dans les optimisations car le thème du site traite toutes les pages avec le même sélecteur LCP.

Ouvre la Search Console, section Core Web Vitals, et isole le groupe de pages “/produit/” ou “/sku/”. Tu verras probablement des URL avec un LCP médian supérieur à celui que te renvoie Lighthouse en local sur une connexion throttled “Fast 3G”. L’explication tient à la cascade réseau réelle : une image principale de 2 500 pixels de large non servie en format WebP, un fichier de police Google Fonts non pré-connecté, un widget de chat en ligne qui bloque le main thread avant l’affichage.

Sur une fiche produit, l’élément LCP est presque toujours l’image principale. Pourtant, beaucoup de flux Shopping pointent vers des variantes (couleur rouge, taille 42) sans que l’URL de destination n’affiche directement la bonne image. L’utilisateur doit alors attendre une redirection JavaScript ou un rechargement partiel. Ce délai supplémentaire, invisible dans le temps de réponse serveur, repousse le LCP au-delà du seuil acceptable.

L’INP, le révélateur brutal des sélecteurs de variantes

Quand j’expose ce point en formation, on me regarde souvent avec un léger étonnement. L’Interaction to Next Paint n’est pas le premier signal qu’on associe à une fiche produit, jugée page statique. Mais les fiches modernes sont loin d’être statiques. Un sélecteur de taille, de couleur, un bouton d’ajout au panier qui doit retirer immédiatement un feedback visuel, un mini slider de photos dans une lightbox. Chaque interaction bloque le thread principal si le framework front n’est pas rigoureux.

Un collègue dev d’une boutique spécialisée en sneakers m’a montré un cas qui m’a marqué. Son équipe avait migré vers Zustand pour la gestion du state afin d’alléger le bundle et de répondre plus vite aux interactions sur les variantes. Avant migration, l’INP était mesuré à 320ms sur mobile, suffisamment pour que les utilisateurs ressentent un délai gênant au changement de couleur. L’impact Shopping ? Moins de conversions lorsque plusieurs variantes étaient disponibles sur la même fiche, parce que l’hésitation était freinée par la lenteur de l’affichage. Une fois l’INP retombé sous les 150ms, le taux de clic vers le panier a retrouvé son niveau.

⚠️ Attention : Ne vous contentez pas de mesurer l’INP sur le chargement initial. Testez-le en simulant une succession d’interactions rapides, comme un utilisateur indécis qui change trois fois de pointure avant d’acheter.

Quand le crawl budget de Googlebot croise la route de ton flux

On a tendance à compartimenter : le crawl, c’est pour l’indexation organique ; le flux Merchant Center, c’est pour les offres. Sauf que Googlebot visite aussi les URL soumises dans le feed pour vérifier la correspondance entre le prix annoncé et la page, la disponibilité réelle, et extraire les microdonnées. Si ta fiche produit met trop de temps à répondre, si elle renvoie un statut 500 sporadique, ou si elle déclenche une chaîne de redirections, le robot Googlebot va ralentir sa fréquence de visite.

Ce ralentissement a un effet en cascade. Le Merchant Center peut signaler une “discordance de prix” parce que la page n’a pas pu être lue à temps. L’offre est alors suspendue, les impressions tombent, alors même que le flux est techniquement correct. La cause racine est une page trop lente ou un serveur qui ne tient pas la charge quand Google Shopping déclenche des vérifications par vagues, surtout avant les pics saisonniers.

Un log serveur bien configuré te montrera ces accès de Googlebot aux URL Shopping. Quand tu vois une série de timeouts coïncider avec des alertes Merchant Center, tu sais que le problème n’est pas dans la gestion du feed mais dans l’infrastructure. La solution passe alors par une stratégie de cache HTTP agressive, un rendu côté serveur efficace, et éventuellement un sitemap segmenté pour alléger la pression inutile.

Ce que ton outil d’optimisation ne mesure jamais

Les plateformes e-commerce grand public et les outils de SEO technique te fournissent des audits de Core Web Vitals corrects dans un environnement de laboratoire. Lighthouse simule une connexion bridée, un device mobile milieu de gamme, une page au chargement isolé. La réalité d’un visiteur Shopping est plus dure. Il arrive avec un cache navigateur vide, un cookie consentement qui s’affiche, un pop-in de réduction qui charge son propre script, et un bandeau de promotion qui décale le contenu.

L’écart entre le LCP mesuré en labo et le LCP issu des données de terrain (CrUX) sur les fiches produits dépasse parfois une seconde entière. Si tu n’as pas de tracking Real User Monitoring (RUM) sur ton site, il te manque la moitié de l’équation. Pour les pages de destination Shopping, je recommande de taguer chaque événement LCP, INP et CLS dans le RUM avec un paramètre “source=Shopping”. Tu auras une vue non filtrée de ce que l’utilisateur subit, pas de ce que Lighthouse prédit.

Ce manque de visibilité est encore plus dangereux quand tu utilises un éditeur visuel type page builder, qui injecte du CSS et du JS non optimisés. Aucun Merchant Center ne t’avertira que ta fiche a un CLS de 0,4 parce qu’une bannière promotionnelle s’étend après le chargement des fonts. C’est pourtant cette instabilité qui pousse l’utilisateur à cliquer ailleurs.

Raccorder le Merchant Center au monitoring de performance

Aligner les équipes SEO, SEA et dev autour d’un même tableau de bord est le seul levier durable. L’erreur classique consiste à laisser l’agence média gérer le flux et les campagnes, et l’équipe technique gérer la page, sans qu’elles partagent les logs. J’ai vu des campagnes Shopping maintenues actives sur des fiches qui renvoyaient un code 302 temporaire depuis trois semaines, simplement parce que personne ne croisait les alertes Merchant Center avec les logs Apache.

Une approche plus saine consiste à intégrer dans votre CI un test de performance ciblé sur les URL les plus envoyées dans le flux. Si le LCP en conditions simulées dépasse 2,8 secondes sur ces URL, la chaîne bloque la mise à jour du flux ou du moins alerte. On peut aussi paramétrer une fonction edge qui vérifie les en-têtes de cache et la disponibilité de l’image principale avant que le flux ne soit soumis à Google. Ces garde-fous transforment une qualité de service invisible en contrainte technique assumée.

Côté Google Ads, la colonne “Expérience sur les pages de destination” est trop agrégée pour agir. Elle donne une note, pas une cause. D’où l’intérêt de construire son propre tableau de bord, mêlant données RUM segmentées par source Shopping et les indicateurs de disponibilité Merchant Center. Ce n’est qu’à ce prix que vous pourrez démontrer à la direction que la lenteur des fiches est une taxe sur chaque clic acheté.

Questions fréquentes

Est-ce que Google Shopping intègre officiellement les Core Web Vitals dans son classement des offres ?

Google ne liste pas les Core Web Vitals comme un critère explicite pour les offres Shopping. La corrélation agit via le taux de conversion. Les clics qui débouchent sur une expérience lente ont un retour sur investissement plus faible, ce qui pousse le système d’enchères à privilégier les marchands dont la page convertit mieux, créant une pénalité économique indirecte.

Une fiche produit AMP peut-elle suffire à régler le problème ?

AMP réduit le LCP mais limite la complexité des interactions et rend plus difficile le suivi analytique précis. Pour des fiches simples, cela reste une option défensive. Pour un catalogue riche avec variantes, l’approche par rendu hybride et optimisation du bundle JavaScript donne plus de contrôle sans sacrifier l’expérience ni la mesure.

Comment détecte-t-on un INP dégradé spécifiquement sur les visiteurs Shopping ?

Il faut déployer la bibliothèque web-vitals sur le site et envoyer les métriques à votre outil d’analyse avec un paramètre d’origine de trafic. Vous pourrez alors filtrer la source “Google / Shopping” et comparer l’INP médian avec celui des autres canaux. Si l’écart est significatif, l’interactivité est probablement affectée par des ressources chargées uniquement sur ces pages.

Articles similaires

Julien Morel

Julien Morel

Ancien dev front React passé SEO technique après une migration e-commerce qui a fait perdre 60% du trafic organique à son employeur en une nuit (fichier robots.txt oublié en staging). Depuis, il écrit pour que ça n'arrive à personne d'autre et teste sur ses propres side-projects avant de publier quoi que ce soit.

Cet article est publie a titre informatif. Faites vos propres recherches avant toute decision.