¿Qué es la carga diferida?
La carga diferida es una estrategia que retrasa la carga de recursos no críticos hasta que realmente se necesitan. En lugar de descargar todas las imágenes de la página en el momento en que llega un visitante, el navegador sólo carga imágenes cuando el visitante se desplaza hacia ellas.
Piensa en la cocina de un restaurante: en lugar de preparar cada plato del menú en el momento en que abre el restaurante, cocinan cada plato cuando un cliente lo pide. ¿El resultado? Primer servicio más rápido y menos esfuerzo desperdiciado.
En una página típica de producto o colección de Shopify, es posible que tengas entre 20 y 50 imágenes. Sin carga diferida, el navegador intenta descargarlos todos simultáneamente, luchando por el ancho de banda y ralentizando las imágenes que el visitante ve primero: el banner principal, la foto del producto, los íconos de navegación.
Con carga diferida, solo el en la mitad superior de la página las imágenes se cargan inmediatamente. Todo lo que se encuentra debajo del pliegue espera hasta que el visitante se desplaza cerca de él. El resultado: representación de la página inicial más rápida, menor uso de ancho de banda y una mejor experiencia, especialmente en dispositivos móviles.
Cómo funciona técnicamente: El navegador utiliza el API IntersectionObserver para observar cuando un elemento está a punto de ingresar a la ventana gráfica. Cuando detecta que la imagen está cerca, activa la descarga. Con carga diferida nativa (cargando="perezoso"), this is all handled by the browser — zero JavaScript required from your end.
Por qué la carga diferida es importante para las tiendas Shopify
Las tiendas Shopify tienen muchas imágenes por naturaleza. Fotografías de productos, imágenes de estilos de vida, pancartas de colecciones, insignias de confianza, widgets de aplicaciones: una página de inicio típica puede tener fácilmente más de 30 imágenes con un total de entre 5 y 15 MB de datos.
Sin carga diferida, todas esas imágenes compiten por el ancho de banda en la carga inicial de la página. Esto es lo que eso significa en la práctica:
LCP más lento (pintura con contenido más grande): La imagen principal, el elemento visual más importante, se carga más lentamente porque comparte ancho de banda con otras 30 imágenes a las que el visitante ni siquiera se ha desplazado todavía.
Tasas de rebote más altas en dispositivos móviles: Las conexiones móviles son más lentas y variables. Cargar 10 MB de imágenes en una conexión 4G puede tardar entre 8 y 12 segundos. Si su tienda no procesa rápidamente, los visitantes rebotan — y no regresan.
Ancho de banda desperdiciado: La mayoría de los visitantes no se desplazan hasta el final de la página. Si el 60% de tus imágenes están en la mitad inferior de la página y el 70% de los visitantes se van antes de desplazarse, estás descargando megabytes de datos que nadie ve.
Elementos vitales web centrales inferiores: Google utiliza Core Web Vitals como señal de clasificación. La carga excesiva de imágenes afecta directamente al LCP y puede provocar cambios de diseño (CLS) si no se establecen las dimensiones de la imagen.
La carga diferida adecuada puede reducir el peso de la página inicial en 40–70% en páginas con muchas imágenes. Esto se traduce directamente en una primera pintura más rápida y una mejor experiencia de usuario. Sin embargo, la carga diferida es solo una pieza del rompecabezas; para obtener una imagen completa, lea nuestro guía completa de optimización.
El error número uno de carga diferida (y le está costando 1 segundo)
Aquí está la verdad contraintuitiva: el error de carga diferida más común no es no realizar la carga diferida: es una carga diferida demasiado agresiva.
Específicamente, carga diferida de tu imagen principal o elemento LCP. Según El propio equipo de rendimiento de Shopify:
⚠️ El asesino LCP
"Los sitios de Shopify que cargan de forma diferida su imagen LCP tienen un LCP medio que es 1,0 segundo más lento que los ansiosos y cargados."
— Equipo de rendimiento de Shopify, performance.shopify.com
¿Por qué sucede esto? cuando estableces cargando="perezoso" en una imagen de la mitad superior de la página, agrega un paso innecesario:
Sin carga diferida (correcto):
El navegador lee HTML → Encuentra la imagen → Comienza a descargar inmediatamente
Con carga diferida en LCP (incorrecto):
El navegador lee HTML → Encuentra la imagen → Marca como diferida → Espera a IntersectionObserver → Detecta que la imagen está en la ventana gráfica → Entonces comienza a descargar
Ese paso de detección adicional agrega entre 200 y 1000 ms de retraso a su imagen más importante. En dispositivos móviles con una ejecución de JavaScript más lenta, es aún peor.
La regla es simple:
- ✓ En la mitad superior de la página: Carga ansiosa (no
atributo
cargando, ocargando="ansioso") - ✓ Debajo del pliegue: Carga diferida (
cargando="perezoso") - ✗ Nunca: Carga diferida de la imagen principal, la imagen destacada del producto o cualquier candidato a LCP
Suena simple, ¿verdad? En la práctica, es complicado. "En la mitad superior de la página" es diferente en cada dispositivo, cada tamaño de pantalla y cada plantilla de página. Lo que está en la mitad superior de la página en un monitor de escritorio de 27" podría estar en la mitad inferior de la página en un iPhone SE. Hacer esto correctamente manualmente requiere un conocimiento receptivo en docenas de puntos de interrupción.
Omita el trabajo manual: Thunder maneja la carga diferida automáticamente
Se aplica el Optimizador de velocidad de página Thunder estrategias de carga inteligentes en toda tu tienda. Identifica automáticamente su imagen LCP y la carga con entusiasmo mientras carga lentamente todo lo que se encuentra debajo de la página: sin cambios de código, sin edición de temas, sin adivinar puntos de interrupción.
Pero Thunder va más allá de la carga diferida básica. También:
- ✦ Pospone secuencias de comandos de aplicaciones que bloquean el procesamiento : el mayor asesino de velocidad que la carga diferida por sí sola no puede solucionar
- ✦ CSS crítico integrado para que tu página se muestre al instante
- ✦ Precarga fuentes para eliminar el destello de texto invisible (FOIT)
- ✦ Monitores diarios para que las optimizaciones sigan siendo efectivas a medida que agrega productos y aplicaciones
La mayoría de las tiendas ven un Mejora de puntuación de velocidad de más de 27 puntos a los pocos minutos de la instalación. No se necesita desarrollador. Consultar planes para encontrar la opción adecuada para su tienda.
Instalar Thunder — Prueba gratuita →¿Ya tienes Thunder instalado? Puede omitir las secciones de implementación manual a continuación: Thunder maneja todo esto automáticamente. Sigue leyendo si quieres entender lo que sucede bajo el capó.
Carga diferida nativa versus JavaScript: cuál usar en 2026
Hay dos enfoques para la carga diferida de imágenes, y esta decisión es más importante de lo que la mayoría de los desarrolladores de Shopify creen.
Carga diferida nativa (cargando="perezoso")
Agregada a la especificación HTML en 2019, la carga diferida nativa ahora es compatible con 96%+ de los navegadores (todas las versiones modernas de Chrome, Firefox, Safari y Edge). simplemente agregas cargando="perezoso" a tu <img> o :
<img
src="product-photo.jpg"
loading="lazy"
alt="Zapatillas para correr azules - vista lateral"
width="800"
height="600"
/>
Eso es todo. Sin biblioteca de JavaScript, sin configuración, sin aumento del tamaño del paquete. El navegador se encarga de todo.
Carga diferida de JavaScript (tamaños diferidos, etc.)
Antes de la carga diferida nativa, el enfoque estándar era usar bibliotecas de JavaScript como tamaños perezosos. Estas bibliotecas utilizan la API IntersectionObserver para detectar cuándo las imágenes se acercan a la ventana gráfica y luego intercambian un marcador de posición. fuente de datos con lo real origen.
<!-- JS lazy loading pattern -->
<img
data-src="product-photo.jpg"
class="lazyload"
alt="Zapatillas para correr azules - vista lateral"
/>
<script src="lazysizes.min.js" async></script>
Esto todavía funciona, pero agrega una sobrecarga de JavaScript: generalmente entre 5 y 10 KB de secuencia de comandos adicional que debe descargarse, analizarse y ejecutarse antes de que comience cualquier carga diferida.
Comparación
Nativo (cargando="perezoso") |
JavaScript (tamaños diferidos) | |
|---|---|---|
| JS sobrecarga | Cero | 5–10 KB |
| Compatibilidad con navegador | 96%+ | 100% (polirelleno) |
| Complejidad de configuración | Un atributo | Biblioteca + nombres de clases |
| Control de umbral | El navegador decide | Personalizable |
| Seguridad SEO | Completo (imágenes en HTML) | Depende de la implementación |
| Repliegue | Cargas ansiosas (elegantes) | Es posible que las imágenes no se carguen |
| Recomendación (2026) | ✓ Usa esto | Legado: eliminación gradual |
Conclusión: En 2026, utilice carga diferida nativa. El 4% de los navegadores que no lo soportan simplemente cargarán las imágenes con impaciencia, lo cual está perfectamente bien. Ya no hay razón para agregar una biblioteca JavaScript para esto. Si su tema todavía usa tamaños diferidos, es hora de migrar.
Qué cargar de forma diferida (y qué NO)
No todos los recursos deben recibir el mismo trato. Aquí hay un desglose práctico de las tiendas Shopify:
✓ Carga diferida estos
Imágenes de productos en cuadrículas de colección : debajo de la primera fila, carga de forma diferida todas las miniaturas. Una página de colección con 48 productos no necesita las 48 imágenes en la carga inicial.
Secciones debajo del pliegue : testimonios, feeds de Instagram, carruseles "También te pueden gustar", vistas previas de publicaciones de blogs: cualquier cosa que un visitante necesite desplazarse para ver.
Incrustaciones de YouTube/Vimeo : los iframes son caros. Una sola inserción de YouTube carga más de 500 KB de scripts. uso cargando="perezoso" en iframes o reemplácelo con una miniatura estática que cargue el iframe al hacer clic (patrón de fachada).
Imágenes de productos adicionales : en las páginas de productos, las imágenes de la galería más allá de la foto destacada se pueden cargar de forma diferida.
Contenido del pie de página : insignias de confianza, íconos de pago, imágenes de la sección del boletín: todo en la parte inferior de cada página.
✗ Nunca cargues estos de forma perezosa
Imágenes de héroe/banner : este es casi siempre su elemento LCP. La carga diferida cuesta ~1 segundo. Carga siempre con ganas. Considere agregar para mayor velocidad.
Imagen destacada del producto — La foto principal del producto en un PDP es el candidato a LCP. Cárgalo inmediatamente.
Logotipo e imágenes de navegación : son pequeños, están por encima del pliegue y son fundamentales para la primera pintura. No los retrases.
Imágenes de fondo configuradas mediante CSS — cargando="perezoso" solo funciona en
Etiquetas <img> y . Las imágenes de fondo CSS requieren un enfoque diferente (IntersectionObserver para alternar una clase).
Consejo profesional: ¿No estás seguro de cuál es tu elemento LCP? Ejecute su página a través PageSpeed Insights y busque el diagnóstico "Elemento de pintura con contenido más grande". Esa es la imagen que nunca debes cargar de forma diferida.
Cómo implementar la carga diferida en Shopify Liquid
Si estás editando el código de tu tema manualmente, aquí te mostramos cómo implementar la carga diferida correctamente en el lenguaje de plantillas Liquid de Shopify.
Método 1: Filtro image_tag de Shopify (recomendado)
Líquido de Shopify
El filtro etiqueta_imagen
El filtro se establece automáticamente cargando="perezoso" en imágenes. También maneja responsivo conjunto de origen y tamaños atributos para una entrega óptima.
{{- product.featured_image | image_url: width: 800 | image_tag:
loading: 'lazy',
widths: '200,400,600,800',
sizes: '(min-width: 768px) 50vw, 100vw',
alt: product.featured_image.alt -}}
Para tu imagen de héroe/LCP, establece explícitamente la carga inmediata:
{{- section.settings.hero_image | image_url: width: 1200 | image_tag:
loading: 'eager',
fetchpriority: 'high',
widths: '600,900,1200,1800',
sizes: '100vw',
alt: section.settings.hero_alt -}}
Detalle clave: Aviso prioridad de búsqueda: 'alta' en la imagen del héroe. Esto le indica al navegador que priorice la descarga de esta imagen sobre otros recursos. Combinado con una carga rápida, es la forma más rápida de renderizar su imagen LCP. Más información sobre Optimización de LCP en Shopify.
Método 2: HTML sin procesar con atributo de carga
Si estás escribiendo HTML sin formato (secciones personalizadas, fragmentos), agrega el atributo directamente:
<!-- Below-fold image: lazy load -->
<img
src="{{ image | image_url: width: 600 }}"
alt="{{ image.alt | escape }}"
width="{{ image.width }}"
height="{{ image.height }}"
loading="lazy"
decoding="async"
/>
<!-- Above-fold image: eager load -->
<img
src="{{ image | image_url: width: 1200 }}"
alt="{{ image.alt | escape }}"
width="{{ image.width }}"
height="{{ image.height }}"
loading="eager"
fetchpriority="high"
/>
¡Establezca siempre el ancho y el alto! Sin dimensiones explícitas, las imágenes cargadas de forma diferida causan cambio de diseño (CLS) cuando se cargan: la página salta a medida que la imagen empuja el contenido hacia abajo. Establezca el ancho/alto en HTML o use CSS relación de aspecto
Propiedad para reservar espacio.
Método 3: Carga inteligente basada en la posición de la sección
Dawn y otros temas de Shopify 2.0 usan un patrón inteligente: rastrean qué sección es la primera en la página y solo cargan imágenes con entusiasmo en esa sección.
{%- liquid
# In the layout or page template:
assign first_section = true
-%}
{%- for block in section.blocks -%}
{%- if first_section -%}
{%- assign loading_strategy = 'eager' -%}
{%- assign fetch_priority = 'high' -%}
{%- assign first_section = false -%}
{%- else -%}
{%- assign loading_strategy = 'lazy' -%}
{%- assign fetch_priority = 'auto' -%}
{%- endif -%}
{{- block.settings.image | image_url: width: 800 | image_tag:
loading: loading_strategy,
fetchpriority: fetch_priority -}}
{%- endfor -%}
Este enfoque es mejor que la carga diferida general, pero sigue siendo imperfecto: no tiene en cuenta cuántas imágenes son visibles en la mitad superior de la página en cada sección y varía según el dispositivo.
El enfoque manual se vuelve complejo rápidamente. Entre puntos de interrupción responsivos, secciones dinámicas y contenido insertado en aplicaciones, lograr una carga diferida en cada plantilla de página requiere horas de desarrollo de temas, con mantenimiento continuo cada vez que cambia su diseño. Esto es exactamente lo que Thunder automatiza. Pruébalo gratis →
Más allá de las imágenes: carga diferida de vídeos, iframes y secciones
Las imágenes son el objetivo obvio, pero los principios de carga diferida también se aplican a otros recursos pesados.
Vídeos incrustados (YouTube, Vimeo)
Se carga una inserción de YouTube 500–800 KB de JavaScript más la interfaz de usuario del reproductor de video, incluso si el visitante nunca presiona reproducir. Dos soluciones comunes:
Opción A: iframe diferido nativo
<iframe
src="https://www.youtube.com/embed/VIDEO_ID"
loading="lazy"
title="Título del vídeo"
allow="accelerometer; autoplay; encrypted-media; gyroscope"
allowfullscreen
></iframe>
Opción B: Patrón de fachada (mejor)
Muestra una miniatura estática con un botón de reproducción. Cargue el iframe completo solo cuando haga clic en él. Esto ahorra más de 500 KB a los visitantes que nunca reproducen el vídeo.
<div class="video-facade" data-video-id="VIDEO_ID">
<img
src="https://i.ytimg.com/vi/VIDEO_ID/hqdefault.jpg"
alt="Miniatura del vídeo"
loading="lazy"
/>
<button class="play-btn" aria-label="Reproducir vídeo">▶</button>
</div>
API de representación de secciones de Shopify
Shopify presentó el API de representación de secciones que le permite cargar secciones enteras a pedido, no solo imágenes. Esto es como una carga diferida con esteroides: en lugar de cargar solo la imagen más tarde, carga el HTML, CSS y JavaScript de toda la sección solo cuando es necesario.
Combinado con IntersectionObserver, puede crear una verdadera experiencia de "carga al desplazarse" donde las secciones debajo de la página no existen en absoluto en el HTML inicial. Esto es particularmente poderoso para:
- • Secciones de recomendación de productos
- • Revisar widgets
- • Secciones del feed de Instagram
- • Pesado widgets de aplicaciones de terceros
Scripts de aplicaciones de terceros
Aquí es donde se esconden las verdaderas victorias en el rendimiento. La mayoría de las aplicaciones de Shopify inyectan scripts de bloqueo de renderizado en la de tu tienda <head>. Si bien no se puede "cargar de forma diferida" directamente un script con el cargando atributo, puedes aplazar o asíncrono ellos:
<!-- Blocking (bad) -->
<script src="app-widget.js"></script>
<!-- Deferred (better) -->
<script src="app-widget.js" defer></script>
<!-- Async (good for independent scripts) -->
<script src="app-widget.js" async></script>
¿El problema? No siempre se puede controlar cómo las aplicaciones inyectan sus scripts. Muchas aplicaciones codifican etiquetas de secuencias de comandos sincrónicas que no se pueden modificar sin dañar la aplicación. Esta es la razón principal por la que la optimización manual llega a un límite y por la que existe Thunder. Thunder intercepta y vuelve a secuenciar todos los scripts que se cargan automáticamente, independientemente de cómo los inserten las aplicaciones.
Cómo probar si la carga diferida está funcionando
Has añadido cargando="perezoso" a tus imágenes, pero ¿cómo sabes que realmente está funcionando? Aquí hay cuatro formas de verificar:
1. Pestaña Red de Chrome DevTools
El método más confiable:
- Abre tu tienda en Chrome → Haz clic derecho → Inspeccionar → Red
- Filtrar por Imagen (tipo de imagen)
- Actualizar completamente la página (
Cmd+Mayús+R/Ctrl+Mayús+R) - Tenga en cuenta cuántas imágenes se cargan inicialmente (este es el recuento de cargas ansiosas)
- Ahora desplácese hacia abajo lentamente y observe cómo aparecen nuevas solicitudes de imágenes.
Si todas las imágenes se cargan en la página inicial, independientemente de la posición de desplazamiento, la carga diferida no funciona. Consulte nuestra guía dedicada sobre la carga diferida no funciona para correcciones paso a paso.
2. Inspeccionar elemento
Haga clic derecho en cualquier imagen del pliegue inferior → Inspeccionar. Mira el <img> en el panel Elementos. deberías ver cargando="perezoso" como atributo.
3. Auditoría de PageSpeed Insights
Ejecute su página PageSpeed Insights o prueba la velocidad de tu tienda con nuestra herramienta gratuita. Si no se implementa la carga diferida, verá la sugerencia: "Aplazar imágenes fuera de pantalla" con una estimación de ahorro potencial (en KB y segundos).
4. Faro en DevTools
Chrome DevTools tiene una pestaña Lighthouse incorporada. Ejecute una auditoría de rendimiento y verifique dos diagnósticos:
- • "Aplazar imágenes fuera de pantalla" : carga diferida no implementada o incompleta
- • "La imagen más grande de Contentful Paint se cargó de forma diferida" : te da pereza cargar tu LCP (¡soluciona esto inmediatamente!)
Esté atento a: La advertencia del faro "La imagen más grande de Contentful Paint se cargó de forma diferida" es el diagnóstico más crítico. Si ve esto, su imagen LCP tiene cargando="perezoso" y te está costando ~1 segundo. Cambiarlo a cargando="ansioso" con fetchpriority="alta" inmediatamente.
Trueno versus carga diferida manual
| ⚡ Trueno | Implementación manual | |
|---|---|---|
| Tiempo de configuración | 60 segundos | 2–6 horas |
| Habilidad necesaria | Ninguno | Líquido + HTML + JS |
| Detección de LCP | Automático (por página) | Manual por plantilla |
| Optimización del script de la aplicación | Incluido | No es posible manualmente |
| Manejo responsivo | Todos los puntos de interrupción | Mejor suposición |
| Mantenimiento continuo | Cero (automático) | Cada cambio de tema/diseño |
| Riesgo de rotura de tienda | Cero (reversible) | Medio (ediciones de código) |
| Mejora típica | Más de 27 puntos de velocidad | 5 a 15 puntos (solo imágenes) |
Preguntas frecuentes
{item.question}
{item.answer}
Recursos relacionados
Guía de optimización de imágenes de Shopify
Formatos, compresión, imágenes responsivas y más
Optimización de Shopify LCP
La guía completa para la pintura con contenido más grande
Recursos de bloqueo de renderizado en Shopify
Cómo identificar y solucionar el bloqueo de CSS y JS
Guía de elementos básicos de Web Vitals
LCP, CLS, INP: qué significan y cómo solucionarlos