Corrección de PageSpeed · Junio de 2026

Minimizar el trabajo del hilo principal en Shopify: Corregir la advertencia de PageSpeed (2026)

Para minimizar el trabajo del hilo principal en Shopify, reduzca la ejecución de JavaScript, posponga los scripts de aplicaciones, interrumpa las tareas largas, simplifique el trabajo de diseño y elimine el código de tema no utilizado. Comience con un prueba de velocidad gratuita de Shopify; Thunder maneja automáticamente el aplazamiento del script de mayor impacto antes de tocar el código.

~12 min de lectura · Se incluyen ejemplos de JavaScript

Solución rápida con Thunder

En Shopify, el trabajo del hilo principal rara vez consiste en un archivo limpio que puedas editar. Por lo general, es su tema más una pila de widgets de reseñas, ventanas emergentes, herramientas de análisis, suscripciones, chat, ventas adicionales y scripts de creación de páginas. Thunder mejora el orden de carga y pospone JavaScript no crítico para que el navegador pueda representar el contenido y responder a los usuarios antes.

Si PageSpeed también informa recursos que bloquean el procesamiento, lea nuestra guía de recursos para bloquear el renderizado. Si la métrica del campo es roja, utilice nuestro Guía Shopify INP después de aplicar Trueno.

Instalar Trueno

Qué hace realmente el hilo principal

El hilo principal del navegador es el carril único donde ocurre el trabajo de página más visible. Analiza HTML, analiza CSS, calcula qué estilos se aplican, calcula el diseño, pinta píxeles, maneja entradas y ejecuta JavaScript. Cuando se ejecuta JavaScript, el navegador no puede responder simultáneamente a un toque, actualizar el diseño o pintar un nuevo marco.

Lighthouse divide esto en categorías como evaluación de scripts, análisis y compilación de scripts, estilo y diseño, renderizado, análisis de HTML y CSS, y recolección de basura. Los comerciantes de Shopify a menudo ven que la evaluación de scripts domina el informe porque los scripts de aplicaciones se ejecutan en cada página incluso cuando el cliente nunca abre el widget.

Es por eso que la advertencia es importante más allá de la puntuación del laboratorio. El trabajo elevado del hilo principal infla el tiempo total de bloqueo, y el tiempo total de bloqueo es una fuerte señal de laboratorio para un verdadero dolor de interacción. El umbral INP de Google para una buena experiencia es inferior a 200 ms; si el hilo principal está ocupado, el clic espera.

Por qué las tiendas Shopify activan esta advertencia

JavaScript de la aplicación

Las reseñas, el chat, las ventanas emergentes, los análisis, la fidelización, las suscripciones y los paquetes ejecutan código en el mismo hilo.

Características del tema

Los controles deslizantes, la búsqueda predictiva, la vista rápida, los selectores de variantes, las animaciones y los mega menús agregan controladores de eventos y trabajo de diseño.

DOM grande

Miles de nodos encarecen el cálculo y el diseño del estilo. Vea nuestro Guía de tallas DOM.

Paso 1: Encuentra las tareas largas

Abra Chrome DevTools, vaya a Rendimiento, registre la carga de una página y busque tareas amarillas largas. Cualquier tarea de más de 50 ms bloquea el hilo principal el tiempo suficiente para contar en el tiempo total de bloqueo.

// 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 guía de scripts de terceros. If they come from your own theme bundle, continue below.

Paso 2: Aplazar los guiones de temas no críticos

Los scripts en el encabezado sin aplazamiento bloquean el análisis y compiten por el hilo principal desde el principio. Para scripts de temas que no necesitan ejecutarse antes de que aparezca el contenido, utilice aplazar:

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

Cuidado con las dependencias. Si un selector de variantes depende de una biblioteca global cargada antes, conserve el orden. No agregue ciegamente async a todo; async puede ejecutar archivos desordenados. Thunder maneja el aplazamiento consciente de la dependencia para los scripts de aplicaciones, que generalmente es donde viven las mayores ganancias.

Paso 3: Cargue los widgets solo cuando sea necesario

Los chats, los carruseles de reseñas, los bloques de recomendaciones y las incrustaciones de videos a menudo no necesitan inicializarse al cargar la página. Cárgalos cuando estén visibles o después de la interacción.

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);

Este patrón mantiene el JavaScript no utilizado fuera de la ruta crítica. Para imágenes e incrustaciones, combínalo con nuestro Guía de carga diferida de Shopify.

Paso 4: Divida las tareas largas de JavaScript

Si su tema recorre cientos de nodos DOM, recalcula precios, actualiza filtros o presenta resultados de búsqueda en un gran bloque, regrese al navegador entre fragmentos.

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 Guía de optimización de JavaScript de Shopify.

Paso 5: Evite la destrucción del diseño

La alteración del diseño ocurre cuando el código lee repetidamente los valores del diseño y escribe cambios DOM en el mismo bucle. Cada lectura puede obligar al navegador a recalcular el diseño de forma sincrónica.

// 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';
});

Esto es importante en páginas de colección, cajones de adición rápida, encabezados adhesivos y galerías de medios de productos. Si PageSpeed ​​muestra tanto un trabajo principal como un alto costo de estilo/diseño, primero inspeccione estos componentes interactivos.

Solución manual frente a solución Thunder

Problema con el hilo principalCorrección manualSolución de trueno
Ejecución del script de la aplicaciónAuditar cada aplicación y posponer/eliminar scriptsAplaza automáticamente los scripts de aplicaciones no críticas
Tema de bloqueo de renderizado JSAgregar aplazar y probar dependenciasOptimiza el orden de carga en torno al contenido crítico
Tareas personalizadas largasReescribe JS para fragmentar el trabajo y producirReduce la carga de scripts competitivos; el código personalizado aún necesita limpieza
Trabajo de diseño/estilo altoReducir el DOM y la destrucción del diseñoKeeps scripts from piling onto the layout bottleneck

Vuelva a probar las métricas correctas

Después de los cambios, vuelva a probar el móvil primero. Vea el tiempo total de bloqueo en Lighthouse, el INP en los datos de campo y el desglose de las categorías del hilo principal. No persiga una puntuación perfecta en una carrera sintética; compare varias ejecuciones y use el panel de rendimiento web de Shopify para conocer las tendencias de los usuarios reales.

Si tu LCP también es alto, el siguiente cuello de botella puede ser tu imagen de héroe. Utilice nuestro Guía de precarga de imágenes de héroe de Shopify y el más amplio Guía de optimización de velocidad de Shopify. Si PageSpeed también informa alto tiempo total de bloqueo de Shopify, cadenas de solicitudes críticas, o enormes cargas útiles de red, corrige esos diagnósticos en la misma pasada de auditoría. Para conocer las opciones de precios y automatización, consulte Precios de trueno.

Referencias y Validación

Uso Desglose del trabajo del hilo principal de Lighthouse como fuente de verdad de lo que mide el diagnóstico. Separa la evaluación de secuencias de comandos, el análisis, el estilo y el diseño, la representación y otros trabajos del navegador para que pueda saber si el problema es el código de su tema, la pila de su aplicación o la cantidad de DOM que el navegador tiene que procesar.

Para la capacidad de respuesta, verifique con Guía INP de web.dev. Una tienda puede parecer visualmente cargada y al mismo tiempo sentirse rota si el hilo principal está ocupado cuando el cliente toca una variante, abre el cajón del carrito o hace clic en pagar. Es por eso que Thunder se centra tanto en el aplazamiento de secuencias de comandos de terceros: le da al navegador espacio para responder antes de que el visitante pierda la paciencia.

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é es el trabajo principal en PageSpeed ​​Insights?

El trabajo principal es el tiempo que el navegador dedica a analizar HTML y CSS, calcular estilos, diseñar la página, representar píxeles, compilar JavaScript y ejecutar JavaScript. Cuando este trabajo lleva demasiado tiempo, la página se carga lentamente y responde tarde a los toques o clics.

¿Por qué las tiendas Shopify tienen un alto nivel de trabajo principal?

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.

¿Minimizar el trabajo del hilo principal mejora el INP?

Sí. INP mide la rapidez con la que la página responde a las interacciones. Si el hilo principal está ocupado ejecutando JavaScript o recalculando el diseño, el navegador no puede responder inmediatamente, por lo que INP empeora.

¿Puede Thunder minimizar el trabajo del hilo principal automáticamente?

Thunder pospone automáticamente los scripts de aplicaciones y temas no críticos, reduce el comportamiento de bloqueo de renderizado y mejora el orden de carga. Eso elimina una gran parte de la presión principal sobre las tiendas Shopify típicas.

¿Qué es una tarea larga?

Una tarea larga es JavaScript o trabajo del navegador que ocupa el hilo principal durante más de 50 milisegundos. Las tareas largas bloquean la entrada, retrasan las pinturas y aumentan el tiempo total de bloqueo en Lighthouse.

¿Debo usar async o diferir en los scripts de Shopify?

Utilice aplazar para secuencias de comandos que dependen de la estructura de la página o del orden de ejecución. Utilice async solo para scripts independientes, como balizas de análisis simples. Para los scripts de aplicaciones que no controlas, un optimizador consciente de la dependencia como Thunder es más seguro que editar etiquetas a ciegas.