Correction de PageSpeed · Juin 2026

Minimisez le travail du fil principal sur Shopify : Correction de l'avertissement PageSpeed (2026)

Pour minimiser le travail du thread principal sur Shopify, réduire l'exécution de JavaScript, différer les scripts d'application, interrompre les tâches longues, simplifier le travail de mise en page et supprimer le code de thème inutilisé. Commencez par un test de vitesse Shopify gratuit; Thunder gère automatiquement le report des scripts ayant le plus grand impact avant que vous ne touchiez au code.

~12 min de lecture · Exemples JavaScript inclus

Solution rapide avec Thunder

Sur Shopify, le travail sur le fil principal est rarement un fichier propre que vous pouvez modifier. Il s'agit généralement de votre thème ainsi que d'une pile de widgets d'évaluation, de fenêtres contextuelles, d'outils d'analyse, d'abonnements, de chat, de ventes incitatives et de scripts de création de pages. Thunder améliore l'ordre de chargement et diffère le JavaScript non critique afin que le navigateur puisse restituer le contenu et répondre aux utilisateurs plus tôt.

Si PageSpeed signale également des ressources bloquant le rendu, lisez notre guide des ressources bloquant le rendu. Si la métrique du champ est rouge, utilisez notre Guide Shopify INP après avoir appliqué Thunder.

Installer Thunder

Ce que fait réellement le fil principal

Le fil conducteur du navigateur est la voie unique où se déroule le travail de page le plus visible. Il analyse le HTML, analyse le CSS, calcule les styles applicables, calcule la mise en page, peint les pixels, gère les entrées et exécute JavaScript. Lorsque JavaScript est en cours d'exécution, le navigateur ne peut pas simultanément répondre à une pression, mettre à jour la mise en page ou peindre un nouveau cadre.

Lighthouse divise cela en catégories telles que l'évaluation de script, l'analyse et la compilation de script, le style et la mise en page, le rendu, l'analyse HTML et CSS et le garbage collection. Les marchands Shopify voient souvent l'évaluation des scripts dominer le rapport, car les scripts d'application s'exécutent sur chaque page, même lorsque le client n'ouvre jamais le widget.

C'est pourquoi l'avertissement est important au-delà du score de laboratoire. Un travail élevé sur le fil principal gonfle le temps de blocage total, et le temps de blocage total est un signal de laboratoire fort pour une réelle douleur d'interaction. Le seuil INP de Google pour une bonne expérience est inférieur à 200 ms ; si le thread principal est occupé, le clic attend.

Pourquoi les magasins Shopify déclenchent cet avertissement

Application JavaScript

Les avis, les discussions, les popups, les analyses, la fidélité, les abonnements et les offres groupées exécutent tous du code sur le même fil.

Fonctionnalités du thème

Les curseurs, la recherche prédictive, la vue rapide, les sélecteurs de variantes, les animations et les méga menus ajoutent des gestionnaires d'événements et un travail de mise en page.

Grand DOM

Des milliers de nœuds rendent le calcul de style et la mise en page plus coûteux. Voir notre Guide des tailles DOM.

Étape 1 : Trouver les tâches longues

Ouvrez Chrome DevTools, accédez à Performances, enregistrez le chargement d'une page et recherchez les longues tâches jaunes. Toute tâche de plus de 50 ms bloque le thread principal suffisamment longtemps pour être prise en compte dans le temps de blocage total.

// Quick field debugging in the browser console
new PerformanceObserver((list) => {
  for (const entry of list.getEntries()) {
    console.log('Long task:', Math.round(entry.duration), 'ms');
  }
}).observe({ type: 'longtask', buffered: true });

If the worst tasks come from third-party domains, use our Guide des scripts tiers. If they come from your own theme bundle, continue below.

Étape 2 : différer les scripts de thème non critiques

Scripts dans la tête sans analyse de bloc de report et en compétition pour le thread principal plus tôt. Pour les scripts de thème qui n'ont pas besoin d'être exécutés avant l'apparition du contenu, utilisez defer :

<script src="{{ 'theme.js' | asset_url }}" defer></script>

Soyez prudent avec les dépendances. Si un sélecteur de variantes dépend d'une bibliothèque globale chargée avant lui, conservez l'ordre. N'ajoutez pas aveuglément de l'asynchrone à tout ; async peut exécuter des fichiers dans le désordre. Thunder gère le report tenant compte des dépendances pour les scripts d'application, ce qui représente généralement le gain le plus important.

Étape 3 : Charger les widgets uniquement en cas de besoin

Les discussions, les carrousels d'avis, les blocs de recommandations et les intégrations de vidéos n'ont souvent pas besoin d'être initialisés au chargement de la page. Chargez-les lorsqu'ils sont visibles ou après une interaction.

const widget = document.querySelector('[data-reviews-widget]');

const observer = new IntersectionObserver((entries) => {
  if (!entries.some((entry) => entry.isIntersecting)) return;

  import('./reviews-widget.js').then((module) => {
    module.init(widget);
  });

  observer.disconnect();
}, { rootMargin: '300px' });

if (widget) observer.observe(widget);

Ce modèle maintient le JavaScript inutilisé hors du chemin critique. Pour les images et les intégrations, associez-le à notre Guide de chargement paresseux de Shopify.

Étape 4 : diviser les longues tâches JavaScript

If your theme loops through hundreds of DOM nodes, recalculates prices, updates filters, or renders search results in one big block, yield back to the browser between chunks.

async function renderProducts(products) {
  for (let i = 0; i < products.length; i += 12) {
    renderProductBatch(products.slice(i, i + 12));

    if ('scheduler' in window && 'yield' in scheduler) {
      await scheduler.yield();
    } else {
      await new Promise((resolve) => setTimeout(resolve, 0));
    }
  }
}

This does not reduce total work, but it prevents one long task from blocking input. That helps INP, especially on mobile where CPU throttling makes every millisecond of script work more expensive. For deeper JavaScript cleanup, use our Guide d'optimisation JavaScript de Shopify.

Étape 5 : évitez les modifications de la mise en page

La mise en page se produit lorsque le code lit à plusieurs reprises les valeurs de mise en page et écrit les modifications DOM dans la même boucle. Chaque lecture peut forcer le navigateur à recalculer la mise en page de manière synchrone.

// Bad: read and write in the same loop
cards.forEach((card) => {
  const height = card.offsetHeight;
  card.style.minHeight = height + 20 + 'px';
});

// Better: batch reads, then batch writes
const heights = cards.map((card) => card.offsetHeight);
cards.forEach((card, index) => {
  card.style.minHeight = heights[index] + 20 + 'px';
});

Cela est important pour les pages de collection, les tiroirs à ajout rapide, les en-têtes collants et les galeries multimédias de produits. Si PageSpeed ​​affiche à la fois un travail sur le fil principal et un coût de style/mise en page élevé, inspectez d'abord ces composants interactifs.

Correction manuelle vs Thunder Fix

Problème de thread principalCorrection manuelleCorrection du tonnerre
Exécution du script d'applicationAuditer chaque application et différer/supprimer les scriptsDiffère automatiquement les scripts d'application non critiques
Thème JS bloquant le renduAjouter des dépendances différées et de testOptimise l'ordre de chargement autour du contenu critique
Tâches personnalisées longuesRéécrire JS pour fragmenter le travail et produire du rendementRéduit la charge de script concurrente ; le code personnalisé a encore besoin d'être nettoyé
Travail de style/mise en page élevéRéduire le DOM et la mise en pageKeeps scripts from piling onto the layout bottleneck

Retestez les bonnes métriques

Après les modifications, retestez d'abord le mobile. Regardez le temps de blocage total dans Lighthouse, l'INP dans les données de terrain et la répartition des catégories de threads principaux. Ne recherchez pas un score parfait sur une seule manche synthétique ; comparez plusieurs exécutions et utilisez le tableau de bord des performances Web de Shopify pour connaître les tendances des utilisateurs réels.

Si votre LCP est également élevé, le prochain goulot d'étranglement peut être votre image de héros. Utilisez notre Guide de préchargement des images de héros Shopify et le plus large Guide d'optimisation de la vitesse Shopify. Si PageSpeed signale également Temps de blocage total Shopify élevé, chaînes de requêtes critiques, ou Rembourrage énormes charges utiles réseau, corrigez ces diagnostics dans la même passe d'audit. Pour connaître les options de tarification et d'automatisation, voir Tarification Thunder.

Références et Validation

Utilisation Répartition du travail principal de Lighthouse comme source de vérité sur ce que mesure le diagnostic. Il sépare l'évaluation des scripts, l'analyse, le style et la mise en page, le rendu et les autres travaux du navigateur afin que vous puissiez savoir si le problème concerne le code de votre thème, la pile de votre application ou la quantité de DOM que le navigateur doit traiter.

Pour la réactivité, recoupez-vous avec web.dev. Un magasin peut paraître visuellement chargé tout en ayant l'impression d'être brisé si le fil principal est occupé lorsque le client appuie sur une variante, ouvre le tiroir du panier ou clique sur la caisse. C'est pourquoi Thunder se concentre autant sur le report des scripts tiers : il donne au navigateur la possibilité de répondre avant que le visiteur ne perde patience.

Do It Yourself

Free plan · 1-click install · Instant results

Install Thunder Free →

Done For You

Core Web Vitals guarantee · 2-week delivery · 6 months Thunder free

Get Expert Optimization →

Starting from €1,500

FAQ

Qu'est-ce que le travail sur le fil principal dans PageSpeed ​​Insights ?

Le travail sur le fil principal est le temps du navigateur consacré à l'analyse HTML et CSS, au calcul des styles, à la mise en page de la page, au rendu des pixels, à la compilation de JavaScript et à l'exécution de JavaScript. Lorsque ce travail prend trop de temps, la page se charge lentement et répond tardivement aux tapotements ou aux clics.

Pourquoi les magasins Shopify ont-ils un travail de thread principal élevé ?

The biggest cause is JavaScript from apps, analytics, chat widgets, reviews, popups, page builders, and theme features. Large DOM size, complex CSS, sliders, and quick-add product grids add more style and layout work.

La réduction du travail du thread principal améliore-t-elle l'INP ?

Oui. INP mesure la rapidité avec laquelle la page répond aux interactions. Si le thread principal est occupé à exécuter JavaScript ou à recalculer la mise en page, le navigateur ne peut pas répondre immédiatement, donc INP s'aggrave.

Thunder peut-il minimiser automatiquement le travail du thread principal ?

Thunder diffère automatiquement les scripts d'applications et de thèmes non critiques, réduit le comportement de blocage du rendu et améliore l'ordre de chargement. Cela supprime une grande partie de la pression du fil principal sur les magasins Shopify typiques.

Qu'est-ce qu'une tâche longue ?

Une tâche longue est un travail JavaScript ou de navigateur qui occupe le thread principal pendant plus de 50 millisecondes. Les tâches longues bloquent la saisie, retardent les peintures et augmentent le temps de blocage total dans Lighthouse.

Dois-je utiliser l'async ou le différé sur les scripts Shopify ?

Utilisez defer pour les scripts qui dépendent de la structure de la page ou de l'ordre d'exécution. Utilisez async uniquement pour les scripts indépendants tels que les simples balises d’analyse. Pour les scripts d'application que vous ne contrôlez pas, un optimiseur prenant en compte les dépendances comme Thunder est plus sûr que la modification aveugle des balises.