Solución rápida con Thunder
TBT es uno de los lugares más claros donde las aplicaciones de Shopify perjudican la velocidad. Cada widget de revisión, secuencia de comandos de chat, ventana emergente, etiqueta de análisis, aplicación de suscripción y creador de páginas compite por el mismo hilo principal. Thunder pospone JavaScript no crítico para que el navegador pueda renderizar y responder antes.
Primero instale Thunder para reducir el trabajo de bloqueo de la aplicación, luego use esta guía para código de tema personalizado y tareas largas. Si su métrica de campo también es débil, lea la Guía Shopify INP; Si PageSpeed también muestra advertencias del hilo principal, use el guía de trabajo del hilo principal.
Instalar TruenoQué mide el tiempo total de bloqueo
El tiempo total de bloqueo es la suma de las partes de bloqueo de tareas largas entre la primera pintura con contenido y el tiempo de interacción. Una tarea larga es cualquier tarea del subproceso principal que dure más de 50 ms. Si una tarea tarda 120 ms, la parte de bloqueo es de 70 ms. Lighthouse suma esas partes de bloqueo.
Eso es importante porque el navegador no puede responder a un toque mientras el hilo principal está ocupado. Una página puede parecer cargada pero aún así sentirse rota si el cliente toca un selector de variante, un menú o un cajón del carrito mientras JavaScript aún se está ejecutando.
TBT no es una métrica de Core Web Vitals para usuarios reales. Pero está estrechamente relacionado con la capacidad de respuesta. La métrica de campo a tener en cuenta es INP, donde Google considera bueno menos de 200 ms. Si el TBT es terrible en Lighthouse, su riesgo de INP suele ser mayor también.
Por qué el tiempo total de bloqueo de Shopify aumenta
Guiones de aplicaciones
Las reseñas, ventanas emergentes, chat, paquetes, suscripciones, análisis y administradores de etiquetas ejecutan código durante la carga.
Paquetes de temas
Los controles deslizantes, la búsqueda predictiva, la vista rápida, los cajones del carrito, las animaciones y las galerías de productos pueden crear tareas largas.
Páginas grandes
Los DOM grandes, las cuadrículas de colección grandes y las secciones del creador de páginas aumentan el estilo, el diseño y el trabajo de consultas de JavaScript.
Paso 1: Encuentre las tareas largas detrás de TBT
Open Chrome DevTools -> Performance, record a mobile-like page load, and look for long yellow tasks. Click each task and inspect the call stack. The domain or file name often tells you whether the work comes from your theme, an app, a tag manager, or a third-party widget.
new PerformanceObserver((list) => {
for (const task of list.getEntries()) {
console.log('Long task:', Math.round(task.duration), 'ms');
}
}).observe({ type: 'longtask', buffered: true }); This small observer does not replace DevTools, but it gives you a quick feel for whether long tasks are happening during load. If most long tasks come from third-party domains, start with app loading. If they come from your theme bundle, inspect custom JavaScript.
Paso 2: Aplazar los scripts de temas y aplicaciones de Shopify
The fastest TBT win is usually to stop non-critical scripts from running during the first load. For theme scripts that are not needed before content appears, use defer:
<script src="{{ 'theme.js' | asset_url }}" defer></script>
Cuidado con el orden. aplazar conserva el orden de ejecución después del análisis. asíncrono no lo hace. Para los scripts de aplicaciones, no edite ciegamente archivos que no sean de su propiedad. Utilice Thunder para aplazar las tareas teniendo en cuenta las dependencias y luego elimine las aplicaciones de bajo valor que aún generan mucho trabajo.
Paso 3: cargar widgets después de la intención o la visibilidad
Rara vez es necesario inicializar el chat, las reseñas, las recomendaciones, los videos incrustados y los widgets de personalización antes de la primera pintura. Cárguelos cuando el cliente se desplace cerca de la sección o interactúe con la función.
const target = document.querySelector('[data-recommendations]');
if (target) {
const observer = new IntersectionObserver((entries) => {
if (!entries.some((entry) => entry.isIntersecting)) return;
import('./recommendations.js').then((module) => {
module.init(target);
});
observer.disconnect();
}, { rootMargin: '400px' });
observer.observe(target);
} Este patrón reduce el TBT inicial porque JavaScript todavía existe, pero no se ejecuta durante la ventana más sensible. Combínalo con nuestro guía de scripts de terceros y Guía de impacto de velocidad de Hotjar si las herramientas de seguimiento son parte de la pila.
Paso 4: Divida las tareas temáticas largas en partes
Algunos códigos de temas de Shopify hacen un trabajo legítimo en mal estado. El filtrado de productos, la representación de resultados de búsqueda, las actualizaciones de recomendaciones de carritos y la configuración de opciones de variantes pueden recorrer cientos de elementos en una sola tarea. Divida el trabajo en partes para que el navegador pueda responder entre lotes.
async function hydrateCards(cards) {
for (let index = 0; index < cards.length; index += 12) {
cards.slice(index, index + 12).forEach(hydrateCard);
if ('scheduler' in window && 'yield' in scheduler) {
await scheduler.yield();
} else {
await new Promise((resolve) => setTimeout(resolve, 0));
}
}
} Esto no reduce el tamaño total del código, pero reduce el tiempo de bloqueo porque el navegador tiene posibilidades de pintar y responder. Es especialmente útil en páginas de colección, páginas de búsqueda y plantillas de productos con muchas aplicaciones.
Paso 5: Reducir DOM y JavaScript no utilizado
Un DOM grande hace que JavaScript sea más lento porque las consultas, la delegación de eventos, el recálculo de estilos y el diseño tocan más elementos. Si PageSpeed muestra advertencias de TBT más DOM, lea nuestra Guía de tamaño DOM excesivo de Shopify y reducir las cuadrículas de productos, el marcado duplicado de dispositivos móviles/escritorio, los mega menús y los envoltorios del creador de páginas.
JavaScript no utilizado es el otro coste silencioso de TBT. Los fragmentos de aplicaciones antiguas, las funciones de temas no utilizadas, los controles deslizantes heredados y el código de prueba A/B abandonado aún se analizan y ejecutan. Límpielos con nuestro Guía de CSS y JavaScript no utilizados.
Si las imágenes también son enormes, el TBT no será su único cuello de botella. Utilice el guía de enormes cargas útiles de red después de que el trabajo del guión principal esté bajo control.
Solución manual frente a solución Thunder
| Problema OTC | Corrección manual | Solución de trueno |
|---|---|---|
| Los scripts de aplicaciones bloquean la carga | Auditar aplicaciones, eliminar herramientas de bajo valor, cargar fragmentos condicionalmente | Aplaza automáticamente los scripts de aplicaciones no críticas |
| Theme JS crea tareas largas | Cortar bucles, posponer scripts, eliminar funciones no utilizadas | Reduce el trabajo de guión competitivo; Es posible que el código personalizado aún necesite modificaciones |
| Los widgets se inicializan demasiado pronto | Cargar al desplazarse, hacer clic o visibilidad de sección | Mejora el orden de carga en torno a widgets no críticos |
| DOM grande ralentiza a los controladores | Reducir nodos, tarjetas de productos, menús y marcas duplicadas | Keeps extra scripts from worsening the DOM bottleneck |
Vuelva a probar TBT sin perseguir ruido
Las puntuaciones del laboratorio Lighthouse varían, especialmente en las pruebas móviles de Shopify. Realice varias pruebas, compare la mediana y concéntrese en la misma plantilla. Vea TBT, el trabajo del hilo principal, el tiempo de ejecución de JavaScript y los datos del campo INP juntos.
Si TBT mejora pero LCP sigue siendo débil, pase a Optimización de Shopify LCP. Si el TBT se mantiene alto después del aplazamiento de la aplicación, el problema probablemente sea un código de tema personalizado o una aplicación necesaria que necesita un trabajo más profundo. Para la automatización, consulte Características del Trueno y precios.
Referencias y Validación
Uso Documentación sobre el tiempo total de bloqueo de Chrome como fuente de verdad sobre cómo se calcula el TBT. Para una capacidad de respuesta del usuario real, compárelo con Guía INP de web.dev.
Los ejemplos de Shopify Community tienden a brindar consejos amplios, como comprimir imágenes o eliminar aplicaciones. Eso puede ayudar, pero TBT trata específicamente de bloquear el trabajo del hilo principal. La mejor solución es precisa: encontrar tareas largas, posponer scripts no críticos, eliminar JavaScript de bajo valor y dividir el trabajo personalizado en partes más pequeñas.
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 tiempo total de bloqueo en Shopify?
El tiempo total de bloqueo es la métrica del laboratorio Lighthouse que mide cuánto tiempo está bloqueado el hilo principal por tareas de más de 50 milisegundos entre la primera pintura con contenido y el tiempo de interacción. En Shopify, un TBT alto generalmente significa que se está ejecutando demasiado JavaScript demasiado pronto.
¿TBT es lo mismo que INP?
No. TBT is a lab metric from Lighthouse, while INP is a real-user Core Web Vitals metric. They are related because both get worse when the browser's main thread is busy and cannot respond quickly.
¿Cuál es una buena puntuación de Tiempo total de bloqueo?
Lighthouse considera que menos de 200 ms son buenos, entre 200 y 600 ms necesitan mejorar y más de 600 ms son malos. Las pruebas móviles de Shopify a menudo superan esto cuando se ejecutan varias aplicaciones, creadores de páginas y scripts de temas durante la carga.
¿Puede Thunder reducir el tiempo total de bloqueo automáticamente?
Sí. Thunder pospone scripts no críticos, mejora el orden de carga y reduce la cantidad de JavaScript de la aplicación que compite por el hilo principal durante la carga inicial. Es posible que el código de tema personalizado aún necesite una limpieza manual si crea tareas largas.
¿Qué aplicaciones de Shopify causan un TBT alto?
Cualquier aplicación puede contribuir, pero los infractores más comunes incluyen chat, ventanas emergentes, reseñas, suscripciones, paquetes, ventas adicionales, creadores de páginas, personalización, análisis, mapas de calor y administradores de etiquetas que se cargan en cada página.
¿Debo eliminar aplicaciones para reducir el TBT?
Primero elimine las aplicaciones de bajo valor, pero no elimine a ciegas las aplicaciones críticas para los ingresos. Mida cada aplicación, posponga o cargue condicionalmente lo que pueda y use Thunder para reducir el costo de bloqueo de los scripts que aún necesita.