Core Web Vitals · Actualizado el 20 de abril de 2026

Arreglar Shopify CLS: 6 soluciones comprobadas para el cambio de diseño (2026)

Cambio de diseño acumulativo (CLS) mide cuánto se mueve inesperadamente el contenido de su página mientras se carga. Google quiere CLS por debajo de 0.1. Los cambios de diseño frustran a los visitantes, provocan clics erróneos y perjudican su clasificación de búsqueda. A continuación te explicamos cómo arreglar CLS en tu tienda Shopify, paso a paso.

~13 minutos de lectura · 2800 palabras · Ejemplos de código incluidos

¿Qué es CLS y por qué es importante para Shopify?

Cumulative Layout Shift (CLS) es uno de los tres de Google Core Web Vitals : las métricas que influyen directamente en su clasificación de búsqueda y miden la experiencia real del usuario. mientras LCP mide qué tan rápido se carga el contenido y El INP mide la interactividad, medidas CLS estabilidad visual : si los elementos de tu página permanecen fijos o cambian inesperadamente.

Imagínese esto: un cliente está a punto de tocar "Agregar al carrito" en la página de su producto cuando de repente se carga un widget de reseña arriba, presionando el botón hacia abajo. Accidentalmente tocan un enlace diferente y abandonan tu tienda. Ése es un problema de CLS y le cuesta ingresos reales.

CLS se calcula multiplicando el fracción de impacto (cuánto de la ventana gráfica se desplazó) por el fracción de distancia (qué tan lejos se movieron los elementos). La puntuación no tiene unidades, no se mide en segundos o milisegundos como LCP e INP.

≤ 0.1

Bueno

0.1–0.25

Necesita mejorar

> 0.25

Pobre

Por qué CLS es importante para tu tienda Shopify:

  • Clasificaciones SEO: Google utiliza CLS como señal de clasificación: un CLS deficiente significa posiciones de búsqueda más bajas
  • Conversiones: Los cambios de diseño provocan clics erróneos que frustran a los clientes y aumentan la tasa de rebote
  • Confianza del usuario: Las páginas que saltan se sienten rotas y sin pulir
  • Impacto móvil: CLS suele ser peor en dispositivos móviles donde las pantallas son más pequeñas y los cambios son más notorios

¿La buena noticia? A diferencia de LCP, que depende en parte de la infraestructura del servidor de Shopify, CLS está casi por completo bajo tu control. La mayoría de las correcciones de CLS implican cambios de CSS y atributos HTML adecuados; no se necesitan actualizaciones del servidor. Según un análisis de HTTP Archive de 2026, el 38% de las tiendas Shopify todavía tienen CLS "deficientes" en dispositivos móviles, por lo que arreglar el tuyo te coloca por delante de la competencia. ¿Quiere comprobar su puntuación CLS actual? Realiza una prueba de velocidad gratuita en tu tienda y comparar con Puntos de referencia de velocidad de Shopify.

La solución fácil: optimización automática de CLS

Antes de sumergirse en las ediciones manuales de temas, existe un enfoque más rápido. Thunder Page Speed Optimizer aborda automáticamente varias de las causas más comunes de CLS alto en las tiendas Shopify.

Cómo Thunder reduce CLS:

Aplazamiento de secuencia de comandos inteligente

Aplaza los scripts de aplicaciones de terceros que inyectan contenido tarde, lo que reduce los cambios de diseño posteriores a la carga

Optimización de fuentes

Implementa visualización de fuentes: intercambio y precarga para minimizar los cambios de redistribución del texto

Incorporación de CSS crítico

Inlines above-the-fold CSS to prevent late-arriving stylesheets from causing shifts

Carga consciente de la dependencia

Administra el orden de carga del script para que los widgets de la aplicación se inicialicen sin cambiar el contenido de la página

Mejora media: +27 puntos PageSpeed

Thunder aborda CLS junto con LCP e INP: la mayoría de las tiendas ven que los tres Core Web Vitals mejoran a los pocos minutos de habilitar las optimizaciones.

Corrige tu puntuación CLS ahora →

Plan gratuito disponible · No se requiere tarjeta de crédito · Configuración de 30 segundos · Funciona con todos los temas

¿Prefieres hacerlo tú mismo? Sigue leyendo ↓

Cómo medir la puntuación CLS de tu tienda Shopify

Antes de corregir CLS, necesita conocer su puntuación actual e identificar exactamente qué elementos están cambiando. Aquí están las mejores herramientas para las tiendas Shopify:

PageSpeed Insights (punto de partida recomendado)

Ir a pagespeed.web.dev o utilice nuestro prueba de velocidad gratuita de Shopify. Mira dos secciones:

  • Datos de campo (top) — Real user CLS from Chrome users over 28 days. This is what Google uses for rankings.
  • Datos de laboratorio — Simulated CLS from a controlled test. Only captures load-time shifts, not post-load.

Desplácese hasta la sección Diagnóstico y busque "Evitar grandes cambios de diseño" : enumera cada elemento que cambió y su contribución individual a CLS.

Panel de rendimiento de Chrome DevTools

Abra DevTools (F12), vaya a la pestaña Rendimiento, marque "Web Vitals" y registre una recarga de página. La línea de tiempo muestra una Pista de cambios de diseño con barras moradas que resaltan cada evento de turno:

  • Haga clic en cualquier marcador de desplazamiento para ver exactamente qué elemento se movió y en qué medida
  • Los diamantes más grandes indican cambios más grandes; céntrese en esos primero
  • El panel Resumen muestra la puntuación del turno, los elementos afectados y el momento

Consejo profesional: Utilice la vista Métricas en vivo en el Panel de rendimiento para interactuar con su página y detectar problemas de CLS posteriores a la carga que solo aparecen al desplazarse o hacer clic.

Google Search Console

En Experiencia → Core Web Vitals, verá el rendimiento de sus páginas en las tres métricas. Search Console agrupa las páginas por estado (Bueno/Necesita mejorar/Deficiente) y utiliza datos reales del usuario. Es la mejor herramienta para realizar un seguimiento de las mejoras de CLS en todo su sitio a lo largo del tiempo. Recuerde: los datos utilizan un promedio móvil de 28 días, por lo que las mejoras tardan aproximadamente un mes en reflejarse por completo.

Observador de rendimiento de JavaScript (avanzado)

Para depurar turnos específicos, pegue esto en la consola de su navegador mientras navega por su tienda:

new PerformanceObserver((entryList) => {
  for (const entry of entryList.getEntries()) {
    if (!entry.hadRecentInput) {
      console.log('CLS shift:', entry.value.toFixed(4));
      for (const source of entry.sources) {
        console.log('  Element:', source.node);
      }
    }
  }
}).observe({ type: "layout-shift", buffered: true });

Esto registra cada cambio de diseño a medida que ocurre, incluido el elemento DOM específico que se movió. Desplácese por su página para ver los cambios posteriores a la carga que PageSpeed ​​Insights pasa por alto.

Solución n.º 1: agregar dimensiones a todas las imágenes

Las imágenes sin atributos explícitos de ancho y alto son las #1 cause of CLS, que representa aproximadamente el 60 % de todos los problemas de cambio de diseño. Cuando el navegador muestra su página por primera vez, no sabe qué tan alta será la imagen, por lo que la representa con altura cero. Cuando se carga la imagen, todo lo que está debajo salta hacia abajo.

El problema

Muchos temas de Shopify generan imágenes sin dimensiones, especialmente en cuadrículas de productos, páginas de colecciones e imágenes destacadas de publicaciones de blogs. El navegador no asigna espacio y luego cambia el contenido cuando llegan las imágenes.

La solución: atributos de ancho y alto

Agregar ancho y altura atributos a cada Etiqueta . Esto le indica al navegador la relación de aspecto para que pueda reservar el espacio correcto antes de que se cargue la imagen:

<img src="product.jpg" alt="Foto del producto">

<img src="product.jpg" alt="Foto del producto" width="800" height="600">

Luego, en tu CSS, asegúrate de que las imágenes se escalen de manera receptiva sin alterar la relación de aspecto:

img {
  max-width: 100%;
  height: auto;
}

Shopify Liquid: usar image_tag

Si estás editando archivos de temas de Liquid, el enfoque más sencillo es usar Shopify. etiqueta_imagen El filtro , que agrega automáticamente atributos de ancho y alto:

{{ product.featured_image | image_url: width: 800 | image_tag }}

Esto genera un tag with proper width, height, and srcset attributes — eliminating CLS from product images automatically.

Alternativa: relación de aspecto CSS

Para contenedores de imágenes donde desea una relación de aspecto fija independientemente de las dimensiones reales de la imagen (como cuadrículas de productos), use CSS relación de aspecto Propiedad :

.product-card__image {
  aspect-ratio: 1 / 1;  /* Square */
  width: 100%;
  object-fit: cover;
}

Esto es especialmente útil para cuadrículas de colección donde desea alturas de tarjetas uniformes: el navegador reserva espacio para la relación de aspecto exacta y ajuste de objeto: cubierta recorta la imagen para que se ajuste.

Solución n.º 2: reservar espacio para contenido inyectado en la aplicación

Las aplicaciones de Shopify que inyectan contenido en tu tienda (estrellas de reseñas, insignias de confianza, barras de anuncios, íconos de pago, contadores de inventario) son la segunda causa más importante de CLS. Estas aplicaciones se cargan a través de JavaScript, lo que significa que su contenido aparece después la página ya se ha renderizado. Cuando aparece el contenido, todo lo que lo rodea cambia.

Bloques de aplicaciones: usar altura mínima

Para aplicaciones que usan Extensiones de aplicaciones temáticas (bloques de aplicaciones), puede establecer una altura mínima en su contenedor usando CSS personalizado en el Editor de temas. Seleccione la sección principal del bloque de aplicaciones y luego agregue:

/* Reserve space for app block content */
.shopify-app-block {
  min-height: 24px; /* Adjust to match your app's rendered height */
}

Mida la altura real renderizada del contenido de la aplicación (use DevTools → inspeccionar elemento → verifique la altura), luego configure altura mínima a ese valor. Incluso si la altura exacta varía, establecer un mínimo cercano reduce significativamente la distancia de cambio.

Scripts que no son de bloqueo de aplicaciones: soluciones alternativas de CSS

Algunas aplicaciones aún inyectan contenido a través de la API ScriptTag anterior (no bloques de aplicaciones). Estos son más difíciles de solucionar. Deberá identificar el selector del elemento inyectado y reservar espacio con CSS. Por ejemplo, si se inserta un widget de reseña encima de la descripción de su producto:

/* Reserve space for a review widget that loads late */
:not(.review-widget-wrapper) + .product__description {
  margin-top: 80px; /* Height of the review widget */
}

Este enfoque es frágil: si la aplicación cambia su estructura HTML o mueves el widget, el CSS se rompe. Una alternativa más fácil de mantener: mover el contenido de la aplicación debajo del pliegue donde los turnos tienen menos impacto en CLS, o cambiar a una aplicación que admita bloques de aplicaciones.

Barras de anuncios y pancartas

Las barras de anuncios que aparecen en la parte superior de la página son una fuente CLS clásica. Cuando se cargan tarde, todos los elementos de la página se desplazan hacia abajo. Dos enfoques:

  • Renderizar del lado del servidor: Utilice la barra de anuncios integrada de su tema (representada en Liquid, no en JavaScript) en lugar de una aplicación de terceros
  • Reserva el espacio: Agregue un marcador de posición de altura fija en el encabezado de su tema que coincida con la altura del banner
/* Reserve 40px for announcement bar */
.header-wrapper {
  padding-top: 40px;
}

Solución n.º 3: Optimice la carga de fuentes web para evitar CLS

Las fuentes web causan CLS a través de un fenómeno llamado FOUT (Destello de texto sin estilo). Cuando su fuente personalizada aún no se ha cargado, el navegador muestra el texto en una fuente del sistema alternativo. Cuando llega la fuente personalizada, el texto se vuelve a representar y, debido a que las dos fuentes tienen métricas diferentes (ancho de carácter, alto de línea, espacio entre letras), el texto se desplaza, empujando el contenido circundante.

Paso 1: Usar visualización de fuente: intercambio (u opcional)

En tu @font-face declaraciones, conjunto visualización de fuente: intercambiar para mostrar el texto alternativo inmediatamente, luego cambie a la fuente personalizada cuando esté listo:

@font-face {
  font-family: 'YourBrandFont';
  src: url('/fonts/brand-font.woff2') format('woff2');
  font-display: swap;
  font-weight: 400;
}

Para CLS mínimo, visualización de fuente: opcional es aún mejor: solo usa la fuente personalizada si se carga dentro de ~100 ms; de lo contrario, se queda con la fuente alternativa. No intercambiar fuentes significa que no hay CLS, pero es posible que su fuente personalizada no se muestre en conexiones lentas.

Paso 2: Precargar fuentes críticas

Agregue sugerencias de precarga para sus archivos de fuentes más importantes en su tema <head>:

<link rel="preload" href="/fonts/brand-font.woff2" as="font" type="font/woff2" crossorigin>

Solo precargue 1 o 2 fuentes (la fuente principal del encabezado y del cuerpo). La precarga de demasiadas fuentes desperdicia ancho de banda y puede ralentizar otros recursos críticos.

Paso 3: Hacer coincidir las métricas de fuentes alternativas

El CSS ajuste de tamaño, anulación de ascenso, y anulación de descenso Las propiedades le permiten modificar su fuente alternativa para que coincida con las métricas de su fuente personalizada, minimizando el cambio cuando ocurre el intercambio:

@font-face {
  font-family: 'BrandFallback';
  src: local('Arial');
  size-adjust: 105%;
  ascent-override: 95%;
  descent-override: 22%;
  line-gap-override: 0%;
}

Herramientas como Generador de fuentes alternativas puede calcular estos valores de anulación para sus fuentes específicas. Esta es una de las correcciones de CLS más impactantes para temas de Shopify con muchas fuentes. Para profundizar más en el rendimiento de las fuentes, consulte nuestra guía completa de optimización de velocidad de Shopify.

Solución n.º 4: evitar cambios de CSS que lleguen tarde

Cuando CSS se carga después de que la página ya ha comenzado a renderizarse, el navegador vuelve a calcular los diseños, lo que hace que el contenido salte a medida que se aplican nuevos estilos. Esto sucede comúnmente con:

  • Archivos CSS cargados a través de @import dentro de otros archivos CSS (carga encadenada)
  • Hojas de estilo de aplicaciones de terceros que se cargan de forma asincrónica
  • Estilos inyectados con JavaScript (comunes con los componentes React/Vue en los temas)

La solución: CSS crítico en línea

Inserte el CSS necesario para el contenido de la mitad superior de la página directamente en su <head>. This ensures the browser has all the styles it needs for the initial render — no shifts from late-arriving stylesheets.

Extraer e insertar CSS crítico manualmente es complejo y propenso a errores. Aquí es donde brilla Thunder: identifica e integra automáticamente CSS crítico para cada tipo de página y luego pospone el resto. El resultado: cero cambios de diseño relacionados con CSS sin ningún trabajo manual.

Evite CSS @import

Si tu tema o aplicaciones usan @import dentro de los archivos CSS, reemplácelos con Etiquetas Etiquetas en el HTML. @import crea una cascada: el navegador descarga CSS, descubre la importación y luego descarga más CSS. Cada paso corre el riesgo de tener que volver a calcular el diseño y cambiarlo. Más información sobre arreglando recursos que bloquean el renderizado en Shopify.

Solución n.º 5: utilice transformaciones CSS en lugar de animaciones que activen el diseño

Animaciones que cambian la apariencia de un elemento. arriba, izquierda, ancho, altura, margen, o acolchado activa recálculos de diseño que cuentan como CLS. En su lugar, utilice transformar y opacidad : son manejados por el compositor de GPU y no provocan cambios en el diseño.

/* ❌ Bad: Triggers layout shift */

.slide-in {
  animation: slideIn 0.3s ease;
}
@keyframes slideIn {
  from { margin-left: -100px; }
  to { margin-left: 0; }
}

/* ✅ Good: No layout shift */

.slide-in {
  animation: slideIn 0.3s ease;
}
@keyframes slideIn {
  from { transform: translateX(-100px); }
  to { transform: translateX(0); }
}

Audite el CSS de su tema para detectar cualquier animación que utilice propiedades que activen el diseño. Culpables comunes: barras de anuncios deslizables, menús de navegación en expansión y efectos de zoom de imágenes de productos. También revisa cualquier scripts de terceros que agregan efectos de animación.

Solución n.º 6: estabilizar presentaciones de diapositivas y carruseles

Las presentaciones de diapositivas de héroes y los carruseles de productos son una fuente frecuente de CLS. El carrusel JavaScript se inicializa después de cargar la página, calcula las dimensiones de la diapositiva y reorganiza los elementos, lo que a menudo provoca cambios visibles.

Reservar la altura de la presentación de diapositivas

Establezca una relación de aspecto fija o una altura mínima en el contenedor de su presentación de diapositivas para que el navegador reserve el espacio correcto antes de que se inicialice JavaScript:

.slideshow-container {
  aspect-ratio: 16 / 9;  /* Or your preferred ratio */
  width: 100%;
  overflow: hidden;
  background-color: #f5f5f5; /* Prevent flash of empty space */
}

Renderizar la primera diapositiva del lado del servidor

La mayoría de los temas modernos de Shopify (como Dawn) procesan la primera diapositiva en Liquid para que se muestre inmediatamente, luego JavaScript se hace cargo de las transiciones. Si su tema solo muestra diapositivas a través de JavaScript, considere reestructurarlo para mostrar la primera diapositiva en HTML/Liquid; esto elimina por completo el cambio inicial.

Considere eliminar la presentación de diapositivas por completo. Varios estudios muestran que las presentaciones de diapositivas principales a menudo tienen un rendimiento inferior al de una sola imagen principal estática tanto en conversiones como en rendimiento. Si su presentación de diapositivas está causando problemas persistentes de CLS, un héroe estático bien diseñado puede mejorar tanto su conversiones y sus Core Web Vitals. Para obtener más información sobre cómo optimizar sus imágenes destacadas, consulte nuestra Guía de optimización de imágenes de Shopify. El CLS alto también aumenta tasas de rebote, lo que le cuesta ingresos.

Correcciones manuales de CLS frente a Thunder: comparación lado a lado

Así es como se compara el enfoque manual con permitir que Thunder maneje la optimización CLS automáticamente:

Solución CLS Aproximación manual Aproximación del trueno
Dimensiones de la imagen Edite plantillas de Liquid, agregue ancho/alto a cada etiqueta img Manejo inteligente de imágenes con tamaño responsivo
Contenido inyectado en la aplicación Identifique el DOM de cada aplicación, escriba reglas de altura mínima CSS personalizadas Pospone scripts no críticos para evitar cambios posteriores a la carga
Carga de fuentes Edite reglas @font-face, agregue sugerencias de precarga, calcule valores de ajuste de tamaño Optimización y precarga automática de visualización de fuentes
CSS crítico Extraer e insertar manualmente CSS en la mitad superior de la página Extracción e incorporación automatizadas de CSS críticos
Hora de implementar 2 a 8 horas (varía según la complejidad del tema) 30 segundos (instalación con un clic)
Mantenimiento Debe rehacerse después de actualizar el tema o agregar nuevas aplicaciones Se adapta automáticamente a los cambios de tema y aplicación

Las correcciones manuales le brindan control total pero requieren mantenimiento continuo. Thunder maneja las optimizaciones más impactantes automáticamente y se adapta a medida que cambia su tienda. Muchos comerciantes combinan ambos: instalan Thunder para el trabajo pesado y luego aplican correcciones manuales para problemas específicos del tema. Ver planes de precios de Thunder.

Preguntas frecuentes

¿Cuál es una buena puntuación CLS para Shopify?

Google considera una puntuación CLS inferior a 0,1 como "buena", entre 0,1 y 0,25 como "necesita mejorar" y superior a 0,25 como "mala". La mayoría de las tiendas Shopify mejor optimizadas pueden alcanzar CLS por debajo de 0,1 en computadoras de escritorio y por debajo de 0,15 en dispositivos móviles. A diferencia de LCP, que está limitado por la infraestructura de Shopify, CLS está casi por completo bajo tu control a través del tamaño adecuado de la imagen, técnicas CSS y estrategias de carga de fuentes.

¿Qué causa un CLS alto en las tiendas Shopify?

The most common causes of high CLS on Shopify are: images without explicit width and height attributes (accounting for ~60% of CLS issues), dynamically injected content from third-party apps (review widgets, announcement bars, payment badges), late-loading web fonts that cause text to reflow (FOUT), CSS that arrives after initial render, and slideshow or carousel components that resize during initialization.

¿CLS afecta las clasificaciones SEO?

Sí. CLS es uno de los tres Core Web Vitals de Google (junto con LCP e INP) que sirven como señales de clasificación. Las páginas con puntuaciones CLS "buenas" (inferiores a 0,1) reciben una ventaja de clasificación sobre las páginas con poca estabilidad visual. En el comercio electrónico, CLS también afecta directamente las conversiones: los cambios de diseño pueden hacer que los usuarios hagan clic en botones incorrectos, abandonen los carritos o abandonen el sitio por completo.

¿Pueden las aplicaciones de Shopify causar problemas con CLS?

Absolutamente. Las aplicaciones Shopify de terceros son una de las principales causas de CLS. Las aplicaciones que inyectan contenido en su tienda (widgets de revisión, insignias de confianza, barras de anuncios, temporizadores de cuenta regresiva y ventanas emergentes de ventas adicionales) a menudo se cargan a través de JavaScript después de que la página se haya renderizado. Cuando aparece su contenido, empuja los elementos existentes. Thunder ayuda aplazando los scripts de aplicaciones no críticas y gestionando su secuencia de carga.

¿Cómo encuentro la causa del CLS en mi tienda Shopify?

Utilice Google PageSpeed ​​Insights (pagespeed.web.dev): desplácese hasta el diagnóstico "Evitar grandes cambios de diseño" para ver exactamente qué elementos cambiaron y en qué medida. El panel Rendimiento de Chrome DevTools también muestra cambios de diseño en una pista dedicada. Para obtener datos de campo, consulte Google Search Console en Experiencia → Core Web Vitals. También puede utilizar nuestra herramienta de prueba de velocidad gratuita en thunderpagespeed.com/tools/speed-test/ para una verificación rápida.

¿Reparar CLS requiere conocimientos de codificación?

Algunas correcciones de CLS son simples (agregar ancho/alto a las imágenes), mientras que otras requieren conocimientos de CSS y Liquid (reservar espacio para contenido dinámico, implementar estrategias de visualización de fuentes). Si no se siente cómodo editando el código del tema, Thunder Page Speed ​​Optimizer maneja automáticamente las correcciones CLS más impactantes, incluida la optimización de fuentes, el aplazamiento de secuencias de comandos para evitar cambios tardíos y la carga inteligente de recursos.

¿Por qué mi CLS es peor en Google Search Console que en PageSpeed ​​Insights?

PageSpeed Insights lab data only measures CLS during initial page load. Google Search Console uses real user data (CrUX) that captures CLS throughout the entire page lifecycle — including shifts from scrolling, lazy-loaded content, and user interactions. Post-load CLS from app widgets, cookie banners, and dynamically loaded sections often accounts for the difference.

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