TL;DR — Lo que necesitas saber antes de la reunión
Datos extraídos de navegador real (Chrome DevTools) · Inspección de HTML source · GTM container analysis
Diagnóstico principal
"El sitio carga rápido. El problema está en lo que carga."

El servidor de MAJA responde en 65–130 ms — eso es excelente. El CDN de Shopify hace bien su trabajo. Pero cada página le entrega al navegador del cliente entre 6 y 6.4 MB de JavaScript decodificado, distribuidos en 180–195 archivos JS. El benchmark saludable para un ecommerce mobile es menos de 1 MB y menos de 30 archivos.
Peso homepage actual
18 MB
Benchmark: <3 MB mobile
Archivos JS por página
190
Benchmark: <30 archivos
Apps activas simultáneas
25+
Varias haciendo lo mismo
Heatmap tools en paralelo
3
Hotjar + Heatmap.com + Clarity
Solo Facebook Pixel
813 KB
Por página, en cada visita
Acciones en el plan
17
7 Quick Wins esta semana
3 problemas estructurales Ninguno requiere rediseño — son correcciones quirúrgicas

1 — Sobrecarga de apps: 25+ aplicaciones activas simultáneamente, varias haciendo lo mismo. El peso total de JavaScript de terceros supera los 870 KB, sin contar el tema.

2 — Tracking redundante: 3 herramientas de heatmaps en paralelo (Hotjar + Heatmap.com + Clarity). Doofinder cargado 2 veces. 2 propiedades de GA4. Google Ads duplicado. El stack de datos genera ruido, no señal.

3 — SEO On-Page básico roto: La página de colección no tiene H1. La homepage tiene H1 con texto duplicado. El 47–52% de las imágenes no tienen atributo alt.

Estimado: −30 a −40% en peso JS y +10 a +20 pts en Lighthouse mobile con las acciones del plan.
Qué tan rápido carga el sitio — y por qué no es suficiente
Los tiempos de servidor son buenos — TTFB 65 ms está en el top 10% de los ecommerce. El cuello de botella ocurre después, en el navegador del cliente, que tiene que descargar, parsear y ejecutar megabytes de JavaScript antes de poder interactuar con la página.
Métrica Homepage PDP (Producto) PLP (Colección) Benchmark saludable
TTFB65 ms65 ms130 ms<200 ms
DOM Content Loaded1.16 s0.71 s1.01 s<1.5 s
Load event2.38 s1.60 s1.71 s<2.5 s
Peso total de página18.05 MB9.79 MB11.39 MB<3 MB mobile
Requests totales414343340<80
Archivos JavaScript190195180<30
JS decodificado6.37 MB6.08 MB5.56 MB<1 MB
Hojas de estilo CSS353936<8
Imágenes sin alt90/191 (47%)17/9830/58 (52%)0
⚠️ Core Web Vitals reales (LCP, CLS, INP) no capturados en esta auditoría. Correr PageSpeed Insights en las 3 URLs: pagespeed.web.dev — mobile en 4G será 2–3× peor que las mediciones en desktop.
HostRequestsPeso decodificadoAcción
majasportswear.com25414.5 MBCode-split + lazy loading de apps
connect.facebook.net2813 KBMigrar a Conversions API server-side
cdn.shopify.com27464 KBOK — Shopify core
cdn.jsdelivr.net3118 KBIdentificar app — ¿self-host posible?
fonts.googleapis.com264 KBAgregar font-display: swap + preload
25 aplicaciones activas — algunas invisibles, todas pesando
Durante la auditoría se identificaron 25+ aplicaciones y servicios cargando en cada página del sitio. Muchos son legítimos y necesarios. Varios son redundantes. Uno pesa tanto como el tema completo.
App / ServicioCategoríaPeso est.Páginas
Tema y plataforma base
Shopify Theme (vendor + theme + custom)Tema270 KBTodas
Apps de negocio
Intelligems (A/B testing de precios)Testing372 KBTodas
Wrapped (opciones de regalo)Gift wrap172 KBTodas
Yotpo ReviewsReseñas81 KBTodas
Blockify Fraud FilterSeguridad50 KBTodas
Selleasy (upsell/cross-sell)Upsell46 KBTodas
Kueskipay (BNPL / pagos a plazos)Pagos41 KBTodas
Yotpo Loyalty & RewardsFidelización32 KBTodas
Klaviyo (email / SMS marketing)Marketing17 KBTodas
Swish Wishlist KingWishlist14 KBTodas
Analytics — REDUNDANCIA CRÍTICA
Hotjar (hjid: 6569959)Heatmaps15 KBTodas ⚠️
Heatmap.com (sid: 5076)Heatmaps10 KBTodas ⚠️
Microsoft Clarity (idpe3yv4c6)HeatmapsdinámicoTodas ⚠️
Búsqueda — DUPLICADO CRÍTICO
Doofinder — Instancia 1 (tema Liquid)Búsqueda5 KBTodas ⚠️ DUPLICADO
Doofinder — Instancia 2 (App Block)Búsqueda5 KBTodas ✓ Correcta
Paid Media y Tracking
Facebook Pixel (1024517206293447)Paid Social813 KBTodas (vía WPM)
TikTok Pixel (CEUU6TBC77UA1PN5K8CG)Paid SocialTodas (vía WPM)
Google Ads + GA4 (Shopify channel)Ads / AnalyticsTodas (vía WPM)
Google Tag Manager (GTM-5Z5QGPD3)Tag Manager35 KBTodas
Otros
NaizFit (guía de tallas IA)UXdinámicoTodas
Triple Whale (atribución multi-touch)AtribucióninlineTodas
Bestpush / ReStock (push notifications)Notificaciones7 KBTodas
Avada SEO SuiteSEO3 KBTodas
Total JS de terceros estimado por página~870+ KB (sin tema ni Shopify core)
El stack de datos tiene más ruido que señal
Un stack de tracking mal configurado infla métricas, genera decisiones incorrectas y pesa innecesariamente en cada página que visita un cliente.
Crítico · Problema 1 Doofinder instalado dos veces en cada página

Cada página del sitio carga DOS instancias independientes de Doofinder simultáneamente: Instancia 1 inyectada desde el código Liquid del tema, e Instancia 2 inyectada por el App Block de Shopify (la instalación correcta).

Consecuencia: dos sesiones de búsqueda en paralelo, posibles conflictos en el tracking, petición bloqueante extra.

Fix: eliminar el snippet Liquid del tema. Solo el App Block es necesario.  ·  Tiempo: 15 minutos.
Crítico · Problema 2 3 herramientas de heatmaps corriendo en paralelo

Hotjar (hjid: 6569959) + Heatmap.com (sid: 5076) + Microsoft Clarity (idpe3yv4c6) están activos simultáneamente. Las tres hacen exactamente lo mismo: grabaciones de sesión y mapas de calor.

Consecuencia: ~40 KB de JS redundante, triple captura con propósito idéntico, datos fragmentados.

Fix: elegir una sola herramienta. Recomendación: Microsoft Clarity (gratis, sin límites, integra con GA4). Alternativa: Hotjar, si ya tienen workflows establecidos.  ·  Tiempo: 30 min de decisión.
Crítico · Problema 3 GA4 y Google Ads duplicados entre GTM y Shopify

GA4 property G-86V8DLS669 configurada en GTM. GA4 property GT-K48DF3RL configurada en Shopify Google Channel (vía WPM). Google Ads AW-322713436 disparando desde GTM y desde Shopify WPM al mismo tiempo.

Consecuencia: conversiones infladas en Google Ads, datos fragmentados en dos propiedades GA4.

Fix: definir una fuente de verdad. Si se usa Shopify Google Channel, desactivar tag GA4 en GTM.  ·  Tiempo: 2–4 horas.
Importante · Problema 4 17 tags pausados en el contenedor GTM

El contenedor GTM-5Z5QGPD3 tiene 17 tags en estado "paused" (desactivados). No afectan el rendimiento, pero complican el mantenimiento y son señal de un contenedor sin limpieza regular.

Fix: auditar cada tag pausado, eliminar los obsoletos, documentar los pausados intencionalmente.  ·  Tiempo: 2 horas.
813 KB para rastrear conversiones — hay una manera mejor
Facebook Pixel es el tercer script más pesado del sitio, después del tema. Cada página descarga dos archivos desde connect.facebook.net que suman 813 KB por visita.
ScriptPesoPropósito
Custom pixel script (ID: 1024517206293447)447 KBInicializa el SDK de Meta
fbevents.js366 KBBiblioteca de eventos del pixel
TOTAL FACEBOOK813 KBPor página, en cada visita
CAPI activo Shopify ya tiene la Conversions API activada para MAJA

Detectado en el código: "facebookCapiEnabled": true — Shopify envía eventos desde sus servidores a Meta. Esto bypasea ad blockers y el bloqueo de iOS. El problema: el pixel client-side completo (813 KB) sigue cargando.

Configuración actual (subóptima)
Navegador descarga813 KB
FlujoBrowser + Servidor (duplicado)
RiesgoDuplicación de eventos
Cobertura~60–70%
Configuración óptima (recomendada)
Navegador descarga~50 KB (solo PageView)
FlujoServidor Shopify (CAPI)
Ahorro−600 KB por página
Cobertura~90–95%
Pasos para optimizar: (1) Verificar en Meta Events Manager que los eventos muestren fuente "Server". (2) Confirmar deduplicación con Match Quality Score alto. (3) Una vez confirmado CAPI, configurar el pixel en modo mínimo — solo PageView.
Google indexa lo que encuentra. Lo que encuentra tiene problemas.
La estructura técnica base está bien: robots.txt accesible, sitemap.xml correcto, canonicals y hreflang en 4 idiomas. El sitio es crawleable. El problema está en los elementos que Google lee para entender de qué trata cada página.
PáginaProblemaSeveridadFix
PLP /collections/*H1 ausente — 0 elementos H1 en la páginaCríticoEditar collection.liquid → envolver título en <h1>
HomepageH1 duplicado: "MAJA SPORTWEAR MAJA SPORTWEAR"CríticoBug en header.liquid — SVG <title> + texto se concatenan
PDP (Producto)3 elementos H1 en la misma página (mensajes error tallas)CríticoCambiar a <p> o <h3> los mensajes de error
Homepage90 de 191 imágenes (47%) sin atributo altCríticoPoblar alt desde admin de Shopify por sección
PLP30 de 58 imágenes (52%) sin altCríticoRevisar template de colección
PDPMeta description = 106 caracteres (corta)MedioAmpliar a 140–155 chars con USP + CTA
PLPMeta description = 114 caracteres (corta)MedioÍdem
PLPSchema FAQPage en página de colección (atípico)MedioVerificar en GSC — riesgo de manual action
Todasviewport con height=device-height (no estándar)BajoQuitar — puede causar bugs en iOS Safari
HomepageSchema: falta Organization + WebSite con SearchActionMedioAgregar — habilita sitelinks y searchbox en Google
Estrategia H1 El H1 del homepage NO debe ser el nombre de la marca

La marca ya gana sus búsquedas branded. El H1 debe targetear el keyword head del negocio.

Recomendación: "Ropa Outdoor para Hombre y Mujer" o "Ropa para tu Próxima Aventura Outdoor"

CheckEstadoDetalle
robots.txt accesiblePASSEstándar Shopify, sin bloqueos incorrectos
sitemap.xmlPASSIndex con 4 sub-sitemaps: products, pages, collections, blogs
Canonical homepage / PDP / PLPPASSURLs master correctas, sin ?variant= en PDP
HreflangPASS4 alternates por página — correcto
AhrefsBotWARNINGcrawl-delay: 10 — ajustar si tienen suscripción activa
Schema HomepageWARNINGSolo BreadcrumbList. Falta Organization y WebSite con SearchAction
Schema PDPPASSProduct + ProductGroup + BreadcrumbList — correcto
Schema PLPWARNINGFAQPage en PLP es atípico — riesgo de manual action
Los scripts más pesados — uno por uno
Datos reales del Performance API del navegador — tamaños decodificados que el CPU del usuario procesa. Auditado en el homepage (página más pesada, 6.37 MB de JS total).
#ScriptHostPesoRecomendación
1shop-pay-usePostPurchase.jsmajasportswear.com1,346 KBDefer — cargar solo en carrito/checkout
2utilitiesFullScreenBackground.jsmajasportswear.com530 KBTheme custom — code-split por ruta
3Facebook Pixel (1024517206293447)connect.facebook.net447 KBVer sección CAPI — optimizable a ~50 KB
4fbevents.jsconnect.facebook.net366 KBFB total = 813 KB — migrar a CAPI server-side
5browser.Blv1NClA.js (probable Sentry)majasportswear.com292 KBSi es Sentry: usar tunnel + tracesSampleRate bajo
6locale-es.BQF4JwIH.jsmajasportswear.com224 KBSolo es-MX — revisar tree-shaking
7theme.jsmajasportswear.com214 KBBundle del tema — auditar imports innecesarios
8Intelligems bundlecdn.intelligems.io372 KB¿Tests activos? Si no: desactivar. Si sí: quitar fetchpriority=high
9dist-vendor.jsmajasportswear.com175 KBVendor bundle del tema
10wrapped-app-embed.jscdn.shopify.com172 KB¿Genera revenue? Verificar conversiones antes de mantener
11worker.modern.js × ~10 instanciasmajasportswear.com730 KB totalBUG: mismo worker inicializado por cada sección → Singleton-ize
Bug de mayor impacto worker.modern.js cargado ~10 veces (730 KB innecesarios)

El mismo archivo worker se inicializa una vez por cada bloque o sección del tema en lugar de una sola vez (patrón singleton). Genera 730 KB adicionales de JS completamente innecesario en el homepage.

Fix: Singleton-ize el worker.  ·  Tiempo estimado: 1 día con dev del tema. Mayor impacto en performance de toda la auditoría.
Importante Intelligems: 372 KB con fetchpriority="high" en TODAS las páginas

Esta app de A/B testing de precios se carga con prioridad máxima en homepage, colección y producto. Si no hay experimentos activos, debería estar desactivada. Si hay tests activos, eliminar el atributo fetchpriority="high" para no bloquear el LCP.

Qué hacer, en qué orden, con qué impacto
Ordenado por ratio impacto / esfuerzo. Las Quick Wins no requieren tocar la arquitectura del tema y pueden completarse esta semana.
Quick Wins — Esta semana <2 horas cada una
1
Agregar <h1> a PLP /collections/*
Editar collection.liquid → envolver {{ collection.title }}
DevAlto30 min
2
Arreglar H1 duplicado en homepage (bug header.liquid)
Separar SVG <title> del <span> de texto visible
DevAlto1 hora
3
Cambiar 3 H1 de PDP a <h2>/<p> (mensajes error de tallas)
No deben ser H1 — son mensajes de estado, no headings
DevMedio30 min
4
Preload hero image en homepage y PDP
<link rel="preload" as="image"> en el <head>
DevAlto · LCP −500ms1 hora
5
Poblar alt de imágenes desde admin de Shopify
~120 imágenes en homepage + PLP sin alt text
MarketingMedio2–3 horas
6
Quitar height=device-height del viewport
Puede causar bugs en iOS Safari
DevBajo5 min
7
Elegir 1 herramienta de heatmaps — desinstalar las otras 2
Hotjar + Heatmap.com + Clarity → elegir solo una
Mktg + DevAlto30 min decisión
Acciones estratégicas — Este Q Coordinación con Dev requerida
8
Eliminar snippet Doofinder duplicado del tema Liquid
−10 KB + petición bloqueante menos por página
Dev15 min
9
Optimizar Facebook Pixel: verificar CAPI + pixel mínimo client-side
−600 KB · cobertura 90-95% de eventos
DevAlto1–2 días
10
Auditar GA4 duplicado: GTM vs Shopify Channel
Definir una sola fuente de verdad para conversiones
Dev2–4 horas
11
Corregir bug worker.modern.js (×10 instancias → Singleton-ize)
−730 KB JS por página — mayor impacto de la auditoría
Dev temaAlto1 día
12
Defer / lazy de Shop Pay fuera del checkout
−1.3 MB JS en homepage — el script más pesado del sitio
DevAlto1 día
13
Evaluar Intelligems: ¿tests activos? Si no, desactivar
−372 KB con fetchpriority=high en todas las páginas
Marketing30 min
14
Evaluar Wrapped: ¿genera conversiones reales? Si no, desinstalar
−172 KB en todas las páginas
Marketing1 hora análisis
15
Auditar y limpiar 17 tags pausados en GTM
Mantenimiento + claridad del contenedor
Dev / Mktg2 horas
16
Agregar Schema Organization + WebSite con SearchAction
Elegible para sitelinks y searchbox en Google
Dev2 horas
17
Limpiar GA4_Checkout_Merlion vs eventos nativos Shopify
Sin inflación en reportes de conversión
Dev1 hora
JavaScript
JS de terceros−55%
Archivos JS−30%
Peso homepage−33%
Tracking y datos
Heatmap tools3 → 1
Doofinder instances2 → 1
Propiedades GA42 → 1
Cobertura y scores
Facebook Pixel+25 pts
Lighthouse mobile+15–20 pts
Cobertura FB eventos90–95%
Inventario completo de GTM-5Z5QGPD3
Inspeccionado directamente mediante el script público del contenedor. Fuente más precisa para conocer tags, triggers y variables configurados.
Tipo de tagCantidadDescripción
Variables (__v)28Variables de dataLayer, cookies, URL, elementos DOM
Tags pausados (__paused)17Desactivados — pendiente de auditoría y limpieza
Variables JS personalizadas (__jsm)8Custom JavaScript variables
Eventos GA4 (__gaawe)6Eventos enviados a la propiedad GA4 del GTM
Click listeners (__cl)6Triggers basados en clics de usuario
URL variables (__u)4Variables de URL, query params, paths
Custom HTML tags (__html)2sessionStorage check + Microsoft Clarity snippet
Google tags (__googtag)2Base tags de Google Ads y GA4
History listener (__hl)1Navegación SPA y AJAX
ServicioID encontrado en GTMEstado
GA4G-86V8DLS669Crítico — duplicado con Shopify
Google AdsAW-322713436Crítico — duplicado con WPM
Microsoft Clarityidpe3yv4c6OK
Facebook PixelNo encontrado en GTMCorre exclusivamente vía Shopify WPM (iframe sandboxeado)
De la auditoría a la ejecución
Esta auditoría cubre el estado técnico del sitio al 27 de abril de 2026. Todos los datos provienen de fuentes primarias: HTML source, Performance API del navegador, inspección del script público del contenedor GTM.
Sesión 1 — Esta semana Revisar Quick Wins (acciones 1–7)

Cambios de bajo riesgo y alto retorno. La mayoría no requiere staging ni QA extendida. Asignar un owner y una fecha para cada una.

Sesión 2 — Este mes Priorizar acciones estratégicas 8–17

Para cada una: definir owner, estimado de dev, criterios de éxito medibles. El mayor impacto: fix de worker.modern.js (−730 KB) y optimización del Pixel de Meta (−600 KB + cobertura).

Seguimiento — 30 días Medir impacto de los cambios

Correr PageSpeed Insights en las 3 URLs para comparar scores Lighthouse antes/después. Revisar Meta Events Manager para confirmar cobertura de CAPI. Auditar en GA4 que solo haya una propiedad activa recibiendo datos.

Ticket
[SEO-001] Fix H1 Homepage
Prioridad
ALTO
Asignado a
Dev de tema (Shopify Liquid)
Estimado
1–2 horas

Problema

El H1 actual del homepage devuelve "MAJA SPORTWEAR MAJA SPORTWEAR" (texto duplicado). El <h1> envuelve simultáneamente un logo SVG con <title>MAJA SPORTWEAR</title> y un <span> con el mismo texto. Al leer textContent, el navegador concatena ambos.

Cambios requeridos

1) Cambiar h1.header__heading a div.header__heading en header.liquid. El enlace del logo debe tener aria-label con el nombre de la tienda.

2) El heading del hero banner debe ser <h1>, no <h2> — en image-banner.liquid.

3) Cambiar copy del hero: "Aventura, Estilo y Comodidad" → "Ropa Outdoor para Hombre y Mujer"

Criterios de aceptación

Homepage tiene exactamente 1 elemento <h1>
El texto del H1 contiene keyword relevante (outdoor, ropa) — no solo el nombre de la marca
El H1 es visible en pantalla — no display:none
El logo del header tiene accessible name pero NO está envuelto en <h1>
Sin regresiones en schema ni accesibilidad (validar con axe DevTools)
[SEO-002]
PLP /collections/* — agregar <h1> que renderice {{ collection.title }}
[SEO-003]
PDP — mensajes de error de tallas como <h1> → cambiar a <p class="error-message">
MAJA Sportswear · Mike Flores · Digital Marketing Manager 26–27 abril 2026 · CONFIDENCIAL