Existe una narrativa muy cómoda en el ecosistema Shopify: si tienes un problema, hay una app para eso. Velocidad lenta, instala una app de caché. Reseñas, instala una app de reviews. Recuperación de carrito, instala una app de email. SEO, instala una app de metaetiquetas.
El resultado, después de meses o años de operar una tienda, es una plataforma que carga en 6 segundos, cobra entre $150 y $400 USD al mes en suscripciones de apps y que ningún desarrollador quiere tocar porque nadie sabe exactamente qué está haciendo cada plugin.
Esto no es un problema de Shopify. Es un problema de modelo mental.
El verdadero costo de una app: más allá de la suscripción mensual
Cuando instalas una app en Shopify, aceptas implícitamente un contrato invisible. No solo pagas la cuota mensual. También pagas con:
- JavaScript adicional que bloquea el hilo principal del navegador
- Solicitudes de red a servidores externos que no controlas
- CSS innecesario cargado en todas las páginas aunque solo aplique en una
- Cookies de terceros que activarán avisos de consentimiento
- Dependencia de que el proveedor no cambie su código ni suba precios
Cada una de estas consecuencias tiene un precio medible en milisegundos de LCP, puntos de CLS y décimas en tu score de PageSpeed. Y en e-commerce, los milisegundos se convierten en dinero: según datos de Google, cada segundo adicional de carga reduce las conversiones móviles entre un 12% y un 20%.
⚠ El problema no son las apps. Es la acumulación.
Una tienda Shopify promedio tiene entre 12 y 25 apps instaladas. Muchas de ellas inyectan JavaScript aunque el usuario esté en una página donde ese JS no se necesita. El navegador no lo sabe. Lo ejecuta todo.
Auditoría real: qué hace tu tienda en los primeros 3 segundos
Abre las DevTools de Chrome, ve a la pestaña Network y carga tu tienda con caché desactivado. Filtra por tipo "JS". Lo que verás habitualmente es una cascada de entre 20 y 40 archivos JavaScript descargándose secuencialmente.
Cada uno de esos archivos tiene un origen. Identifica cuáles provienen de dominios externos: cdn.shopify.com es Shopify nativo (inevitable). El resto — static.klaviyo.com, widget.reviews.io, cdn.privy.com, js.hs-scripts.com — son apps.
Estos números no son hipotéticos. Son mediciones reales de auditorías a tiendas Shopify con 15+ apps instaladas. El patrón se repite con una consistencia casi perfecta.
Las 5 categorías de apps que más destruyen la velocidad
1. Apps de chat en vivo y atención al cliente
Zendesk Chat, Tidio, Freshdesk, LiveChat — todas cargan un widget JavaScript en cada página, incluso en páginas de producto donde nadie va a chatear. El impacto en el thread principal del navegador es severo porque estos scripts suelen inicializar conexiones WebSocket de inmediato.
2. Apps de reseñas y UGC
Yotpo, Judge.me, Reviews.io cargan su lógica completa aunque el usuario esté en una página sin reseñas. El problema se amplifica porque también inyectan su propio CSS en el <head>, compitiendo con el CSS crítico de tu tema.
3. Apps de email marketing y pop-ups
Klaviyo, Privy, Mailchimp — las más agresivas en términos de impacto en CLS. Los pop-ups que aparecen segundos después de la carga desplazan el contenido principal, disparando el indicador de estabilidad visual.
4. Apps de upsell y cross-sell
Estas apps modifican la página de producto con JavaScript inyectado dinámicamente. Crean race conditions donde el usuario ve momentáneamente una página sin el widget de upsell, que aparece medio segundo después. CLS inmediato.
5. Apps de SEO "todo en uno"
La paradoja más cruel: apps que prometen mejorar tu SEO mientras deterioran tus Core Web Vitals, que son factores de ranking desde 2021. Muchas de estas apps simplemente editan metaetiquetas que Shopify ya maneja nativamente.
El modelo mental correcto: arquitectura primero
Un desarrollador con mentalidad de arquitectura se hace preguntas diferentes antes de instalar cualquier cosa:
- ¿Esta funcionalidad existe de forma nativa en Shopify o en Liquid? (La respuesta suele ser sí)
- ¿Puedo implementarlo con 30 líneas de JavaScript inline sin dependencias externas?
- ¿Esta app se puede reemplazar con un webhook a n8n que procese el evento en el servidor?
- Si necesito esta funcionalidad en 10 páginas, ¿tiene sentido pagar una suscripción o escribir el código una vez?
💡 El principio de la pieza mínima
Antes de instalar una app, pregúntate: ¿cuál es el comportamiento exacto que necesito? Frecuentemente, lo que parece requerir una app completa se puede resolver con 15 líneas de JavaScript vanilla y un snippet de Liquid.
Ejemplos concretos: qué puedes eliminar hoy
App de metaetiquetas SEO → Shopify nativo
Shopify incluye desde su versión base campos para title, meta description y Open Graph en cada producto, colección y página. Las apps de SEO que "gestionan" estas etiquetas son redundantes en el 90% de los casos. Configura Shopify correctamente y desinstala la app.
App de urgencia / countdown timers → Liquid + JS inline
{% assign end_date = product.metafields.promo.end_date %}
{% if end_date %}
<div id="countdown" data-end="{{ end_date }}"></div>
<script>
(function() {
var el = document.getElementById('countdown');
var end = new Date(el.dataset.end).getTime();
var t = setInterval(function() {
var diff = end - Date.now();
if (diff < 0) { clearInterval(t); el.textContent = 'Oferta terminada'; return; }
var h = Math.floor(diff/3600000);
var m = Math.floor((diff%3600000)/60000);
var s = Math.floor((diff%60000)/1000);
el.textContent = h + 'h ' + m + 'm ' + s + 's';
}, 1000);
})();
</script>
{% endif %}
App de wishlist → localStorage + Liquid
Una wishlist funcional en localStorage, con sincronización visual al cargar la página, se puede implementar en menos de 60 líneas de JavaScript. Sin servidor, sin suscripción, sin latencia externa.
App de reseñas → Judge.me plan gratuito o sistema propio
Si realmente necesitas reseñas con markup de Schema (que sí impacta en rich results de Google), la opción más ligera es el plan gratuito de Judge.me, que tiene un impacto de rendimiento significativamente menor que Yotpo o Stamped. La alternativa arquitectónica es un formulario propio con n8n procesando las submissions.
Las apps que SÍ vale la pena conservar
No todas las apps son el enemigo. El criterio de evaluación es: ¿el valor que aporta justifica el costo en velocidad y dinero?
- Pasarelas de pago adicionales — PayPal, Klarna, OXXO Pay. No hay alternativa nativa para métodos locales.
- Sincronización de inventario con ERP — Si tienes stock físico y digital que reconciliar, una app de sincronización tiene ROI claro.
- Impresión de etiquetas y fulfillment — Cuando el volumen de pedidos lo justifica, la automatización vale el costo.
- Suscripciones y pagos recurrentes — Recharge, Bold Subscriptions. No hay Liquid nativo para esto.
La pregunta correcta nunca es "¿existe una app para esto?" sino "¿necesito realmente esta funcionalidad y no hay alternativa técnica que tenga menor impacto?"
Resultado: la diferencia entre una tienda con y sin arquitectura
Una tienda con arquitectura sólida no es una tienda sin funcionalidades. Es una tienda donde cada funcionalidad existe porque aporta valor medible, implementada de la forma más liviana posible, sin dependencias externas que no controlas.
Y cuando Google mida tu Core Web Vitals el próximo trimestre, la diferencia entre una tienda arquitectónica y una tienda con 20 apps instaladas se va a manifestar exactamente donde más duele: en el ranking de búsqueda y en la tasa de conversión.
✓ Primer paso práctico
Abre Google PageSpeed Insights con tu URL, ve al apartado "Diagnósticos" y busca "Reducir el uso de JavaScript". Cada archivo listado ahí es un candidato para auditar. Los que no sean de cdn.shopify.com probablemente vengan de apps.