Join our community of websites already using SEOJuice to automate the boring SEO work.
See what our customers say and learn about sustainable SEO that drives long-term growth.
Explore the blog →TL;DR: El mayor logro SEO en theme.liquid suele ser eliminar código global, no añadir otro snippet. Mantén las señales SEO universales en el layout, traslada el trabajo específico de la página a plantillas o secciones y asegúrate de que el HTML que recibe Google sea rápido, claro y menos dependiente de scripts de apps.
theme.liquid como si fuera un plugin de SEOAntes solía buscar primero la etiqueta que faltaba. Mala costumbre. En mindnow, las tiendas de Shopify con los problemas de SEO más feos rara vez necesitaban un snippet más en theme.liquid; necesitaban borrar cinco snippets antiguos que Google y los clientes cargaban en cada página.
En una tienda, el tema fue acusado de tener “mal SEO en Shopify”. El problema real eran seis snippets de apps, dos bloques de schema duplicados y un feed de ofertas de productos pegado en el layout. Mismo patrón en vadimkravcenko.com y seojuice.io: el <head> debe describir la página — no dirigir el negocio.
«Liquid es un lenguaje de plantillas de código abierto creado por Shopify y escrito en Ruby. Es la columna vertebral de los temas de Shopify y se usa para cargar contenido dinámico en el escaparate.»
Esa definición de Shopify importa porque pone la culpa en el lugar correcto. Liquid no es el villano. El trabajo global descuidado en el tema sí lo es.
theme.liquidtheme.liquid es el contenedor principal para la mayoría de las páginas del escaparate de Shopify (la “cáscara” que envuelve plantillas y secciones). Suele incluir el <head>, content_for_header, referencias CSS, app embeds, etiquetas de tracking, snippets de schema, preload hints y el marcado de apertura del layout.
Esa potencia es justo la razón por la que el archivo debe permanecer aburrido. Si un error está en una sección de producto, afecta a las páginas de producto. Si está en theme.liquid, se propaga a todo el sitio.
Los mejores resultados de búsqueda aciertan en parte. La documentación de rendimiento de Shopify da la base técnica más sólida. La guía SEO general de Shopify explica estructura, metadatos y datos estructurados. Speed Boostr se acerca más al trabajo de velocidad que sienten los comerciantes.
Lo que normalmente no te dan es gobernanza: qué pertenece al layout, qué pertenece a las plantillas y qué jamás debió instalarse de forma global.
Esa es la regla para el resto del artículo. Los elementos de todo el sitio pueden vivir en theme.liquid. La lógica de producto, colección, artículo, FAQ y breadcrumb suele vivir más cerca de la plantilla que la necesita.
theme.liquidLa respuesta no es “elimina todo”. Shopify necesita algo de salida global en el head. Tu tienda necesita algunos assets de todo el sitio. Tu analítica puede requerir una carga consciente del consentimiento en todo el escaparate. El trabajo es mantener el layout honesto.
Pertenece a theme.liquid |
Normalmente no pertenece allí |
|---|---|
Salida base del atributo <html> lang |
Schema específico de producto hardcodeado globalmente |
content_for_header |
Texto o metadatos específicos de colección |
| CSS global y preload de recursos críticos | Cada script de app en cada plantilla |
| JSON-LD de Organization o WebSite de todo el sitio | JSON-LD duplicado de review, offer y breadcrumb |
| Tracking con gestión de consentimiento | Lógica de plantilla que ejecuta loops costosos |
El layout puede alojar con seguridad señales que describen todo el negocio: idioma, viewport, salida obligatoria de Shopify en el head, framework de consentimiento, CSS principal, quizá schema de Organization y quizá WebSite con SearchAction si tu URL de búsqueda es estable.
Ahí también van algunos resource hints. Un único preload de fuente o referencia a CSS crítico pueden tener sentido globalmente. Cinco preloads en competencia para imágenes que solo aparecen en una plantilla no.
El schema de producto pertenece a los datos de producto. El schema de artículo pertenece a los artículos. El schema FAQPage solo debe aparecer en páginas donde el texto FAQ sea visible. El schema de breadcrumb pertenece a un snippet de breadcrumb o a una sección consciente de la plantilla.
Aquí es donde muchos proyectos de datos estructurados para ecommerce se descarrilan. El comerciante pide “schema en Shopify”, alguien pega JSON-LD en theme.liquid y cada colección, artículo y landing page empieza a fingir que es un producto.
content_for_header no es opcional. Es la etiqueta que Shopify usa para conectar scripts de la plataforma, comportamiento de apps, analítica y funcionalidades del escaparate. No la elimines porque un waterfall se vea desordenado.
Audita lo que llega a través de ella. App embeds, extensiones de tema y código antiguo de apps aún pueden añadir peso. La solución es la propiedad, no el pánico.
No edites el tema en vivo durante una ventana de tráfico. Consejo básico. Sigue siendo la frase que más dinero ahorra.
layout/theme.liquid.
Copia el layout en un documento de trabajo y anótalo como una escena del crimen. Una tienda llegó a nosotros porque las colecciones se sentían lentas y la prueba de resultados enriquecidos de Google mostraba advertencias de producto. La solución llevó menos de dos horas: schema Offer de producto en páginas de colección, dos librerías de A/B testing abandonadas y un snippet de app de reseñas desinstalado meses antes.
El tema fue culpado (suele pasar). El archivo de layout solo cargaba fantasmas.
| Hallazgo | Por qué perjudica el SEO | Corrección más segura |
|---|---|---|
| JSON-LD de producto aparece en páginas de colección | Confunde a los parsers de datos estructurados | Moverlo a la plantilla de producto |
| Tres apps de reseñas generan schema | Crea marcado de producto duplicado o en conflicto | Elegir una sola fuente |
| Widget de chat se carga en todo el sitio | Añade JS antes de que exista intención de compra | Cargar tras interacción o solo en plantillas seleccionadas |
| Imagen hero se carga de forma lazy | Puede retrasar el LCP | Cargar el contenido above-the-fold de forma eager |
| Ordenamiento ocurre dentro de loops Liquid | Desperdicia trabajo de renderizado | Ordenar antes del loop |
Desconocido no significa malo. Significa sin dueño. Si nadie puede explicar por qué un snippet está en theme.liquid, desactívalo en un tema duplicado y prueba flujos: menú, búsqueda, formulario de producto, carrito, traspaso a checkout, reseñas, tracking y consentimiento.
Aquí es donde una auditoría SEO técnica real supera a una checklist. El riesgo rara vez es una línea mala. Son cinco herramientas decentes, todas asumiendo que merecen prioridad global.
«JavaScript no debería ser obligatorio para la funcionalidad básica de tu tema, como encontrar o comprar productos.»
Esa frase de Shopify es el estándar. Si el menú, el formulario de producto, la selección de variantes, la búsqueda o el carrito dependen de un script bloqueante que falla en silencio, no solo tienes un problema de SEO. Tienes un problema de escaparate.
«Los escaparates Liquid son muy rápidos»
Lo dijo Sia Karamalegos en el blog de rendimiento de Shopify y la implicación incomoda. Las tiendas lentas en Shopify suelen ser lentas porque los comerciantes añaden trabajo global en cada ruta. Las apps a menudo dejan código tras la desinstalación — a veces años después — y el archivo de layout sigue sirviéndolo.
Widgets de reseñas, chats, scripts de A/B testing, heatmaps, programas de fidelidad, apps de bundles, personalización y pop-ups adoran el layout. Algunas requieren acceso global. Muchas no.
Empieza con los app embeds en el editor de temas, luego inspecciona content_for_header y después busca includes que mencionen nombres de apps antiguas. Si una app solo afecta a páginas de producto, su código no debería ejecutarse en artículos y colecciones.
Diferir scripts puede ayudar. También puede romper la selección de variantes, el tracking de consentimiento, la atribución de analítica, los selectores de moneda y la visualización de reseñas. Prueba en vista previa antes de publicar.
Un patrón seguro es aburrido: elimina primero el código muerto, retrasa los widgets de marketing hasta la interacción, difiere scripts no críticos solo después de probar y permite que el descubrimiento de productos funcione sin JavaScript cuando sea posible (en 2026 ya no es opcional).
JavaScript puede mejorar la experiencia. No debería ser la única vía de ingresos. Los enlaces de producto deben ser rastreables. Las páginas de búsqueda deben mostrar resultados. El add-to-cart debe degradar con seguridad. Las URLs de variantes y las opciones seleccionadas no deben volverse invisibles para crawlers ni clientes.
Si estás luchando contra el coste de hidratación o contenido de producto renderizado en cliente, lee una guía de SEO para JavaScript antes de culpar a Liquid. El problema de renderizado puede estar en la capa de la app, no en el lenguaje del tema.
«PageSpeed NO es una buena forma de medir la velocidad de una tienda.»
Kurt Elster es directo por una razón. Una puntuación alta que rompe tracking, reseñas o variantes no es una victoria; una puntuación baja que señala un retraso real en LCP sí es útil. La puntuación es una pista, no el KPI.
«Actualmente preferimos el marcado JSON-LD. Creo que la mayoría de los datos estructurados nuevos salen primero en JSON-LD. Así que es lo que preferimos.»
El punto de John Mueller zanja el debate de formato para la mayoría de las tiendas Shopify. Usa JSON-LD. La pregunta más difícil es la propiedad.
Muchos posts de SEO en Shopify dicen “añade schema”. Es un consejo incompleto. Si tu tema, la app de reseñas, la app de feeds de producto y la app SEO emiten schema de Producto, el formato deja de ser el problema.
Elige un propietario para cada tipo de schema. Luego elimina o desactiva los demás.
| Tipo de schema | Mejor ubicación |
|---|---|
| Organization | theme.liquid o un snippet global |
| WebSite con SearchAction | theme.liquid si la búsqueda es estable |
| Product | Plantilla o sección de producto |
| BreadcrumbList | Plantilla o snippet de breadcrumb |
| Article | Plantilla de artículo del blog |
| CollectionPage | Plantilla de colección |
| FAQPage | Solo en páginas con contenido FAQ visible |
El schema de producto necesita el título, imagen, descripción, SKU, precio, disponibilidad, variantes, marca, ofertas y a veces datos de reseñas del producto actual. Ese contexto no existe en todas las páginas.
Las apps de reseñas merecen sospecha especial. A menudo inyectan marcado de Product, AggregateRating, Offer y Review. Si el tema también emite esos campos, las herramientas de rich results pueden mostrar conflictos aunque la página se vea bien.
Usa Rich Results Test para ver elegibilidad en funciones de Google. Usa Schema Markup Validator para validar en general. Prueba la página renderizada, no un fragmento pegado de tu archivo de tema.
«Si quieres ordenar los productos de una colección por precio, hazlo antes de recorrer los productos, no dentro del loop.»
Esta guía de Shopify parece pequeña. No lo es. Los problemas de rendimiento en Liquid suelen esconderse en snippets llamados por theme.liquid: header, mega menú, barra de anuncios, selector de localización, franja de recomendaciones o un carrusel global de colecciones.
Tu archivo de layout puede verse limpio mientras los snippets incluidos hacen el trabajo costoso. Un mega menú puede recorrer colecciones en cada página. Un header puede consultar datos de producto que nadie ve. Un selector de localización puede repetir lógica que debería asignarse una sola vez.
Vigila all_products, menús grandes, búsquedas repetidas de metafields y loops anidados. El problema rara vez es un loop; es la repetición en cada ruta.
Ordena antes del loop. Filtra antes del loop. Asigna valores repetidos una sola vez cuando mejore la claridad. Limita los loops cuando solo necesites cuatro ítems.
El patrón malo es: recorrer cada producto y decidir dentro del loop qué productos importan. El patrón mejor es: preparar el conjunto relevante primero y luego recorrer el conjunto pequeño.
Los mega menús son un impuesto común al rendimiento SEO. Parecen navegación. Se comportan como una consulta de datos de todo el sitio.
Mantén la lógica del header predecible. Si el menú necesita tarjetas promocionales ricas, hazlas ajustes explícitos en lugar de lookups dinámicos de productos en todo el catálogo.
«Nada que aparezca above the fold debería cargarse de forma lazy.»
Esa frase de Shopify debería acabar con muchos malos consejos sobre imágenes. El lazy loading indiscriminado parece inteligente hasta que la imagen hero, los medios de producto o el banner de colección se convierten en el candidato LCP y esperan demasiado.
No hagas lazy-load de la imagen que probablemente sea el LCP. Dale a Shopify suficiente información de ancho y alto para evitar el layout shift. Usa salida de imagen responsive con filtros y tags de imagen de Shopify en lugar de un asset sobredimensionado.
Preload solo la imagen realmente prioritaria, no cinco assets en competencia. El preload es una promesa al navegador. Rompe esa promesa demasiadas veces y crearás un cuello de botella diferente.
Muchas apps de imágenes aplican una sola regla en todo el sitio. La decisión correcta depende de la plantilla y la posición. Una miniatura de galería de producto debajo del fold puede esperar. La primera imagen de producto, normalmente no.
Esto se relaciona con theme.liquid: los resource hints y scripts de lazy loading globales suelen vivir allí, pero la decisión correcta pertenece más cerca de la sección que renderiza la imagen.
Las etiquetas SEO clásicas siguen importando. Solo se vuelven arriesgadas cuando un archivo de layout intenta controlar cada plantilla con una cascada de condicionales.
Usa la salida canonical integrada de Shopify cuando sea posible. No hardcodees un patrón canonical único para todas las plantillas. El ordenamiento de colecciones, la paginación, los filtros y las URLs de producto necesitan manejo consciente de plantilla.
Las directivas robots deben ser raras y obvias. Una etiqueta canonical duplicada — de esas que chocan silenciosamente con la salida integrada de Shopify — puede pasar desapercibida durante meses. Un noindex suelto puede hacer más daño en una sola publicación que un script de app lento.
Yo mismo he publicado uno de esos árboles condicionales largos (y lo desenredé tras una actualización de app). Algunas condiciones están bien. Un archivo de layout que finge ser un CMS huele mal.
No confíes solo en ver código fuente. Inspecciona el HTML renderizado (la URL actual tras la ejecución en el navegador) y confirma título, descripción, canonical, robots, hreflang si aplica y datos estructurados.
Si una app reescribe etiquetas tras la carga, Google puede aún renderizarlas, pero has hecho que una señal simple dependa del timing en cliente. Evita eso salvo que no haya opción más limpia.
theme.liquid ayudaron al SEOLas pruebas deben comparar las mismas plantillas antes y después. Ganar en la home no prueba que ganes en producto. Ganar en producto no prueba que el template de artículo siga limpio.
| Prueba | Lo que te indica |
|---|---|
| Ver HTML renderizado | Si Google puede ver etiquetas y contenido finales |
| Inspección de URL en Google | Si Google indexó lo que crees que indexó |
| Rich Results Test | Si los datos estructurados son válidos para rich results |
| WebPageTest | Waterfalls, candidato LCP y archivos que bloquean render |
| Panel Performance de Chrome | Tareas largas y coste de scripts |
| Core Web Vitals en Search Console | Tendencia de datos de campo |
| Vista previa del tema en Shopify | Comparación segura antes de publicar |
Prueba home, producto, colección, página, artículo y búsqueda. Captura HTML renderizado, candidato LCP, CLS, tareas largas, canonical, robots y salida de schema.
En seojuice.io me importa menos una puntuación de laboratorio perfecta y más que el HTML se entregue limpio, el canonical sea estable y la página no haga esperar a Google para entenderla.
«Un sitio bueno y rápido no hace daño. Uno lento no ayuda. No creo que sea el todo y fin que se ha querido pintar.»
El enfoque de Kurt Elster es el sensato. La velocidad apoya al SEO. No reemplaza contenido, enlaces, demanda ni merchandising.
Después de publicar, vigila indexación, enhancements, merchant listings, snippets de producto y Core Web Vitals para ecommerce. Espera que los datos de campo tarden. Las herramientas de laboratorio reaccionan hoy; Search Console lleva tiempo.
theme.liquidcontent_for_header.theme.liquid.El objetivo no es un theme.liquid ingenioso. El objetivo es un archivo de layout aburrido que deje a cada plantilla hacer su trabajo.
theme.liquid afecta al SEO en Shopify?Sí. Puede afectar claridad de rastreo, datos estructurados, coste de renderizado, Core Web Vitals, canonicals, etiquetas robots y peso de scripts. El peligro es que un error en el layout afecta a casi todas las páginas del escaparate.
theme.liquid?Solo si el código es realmente global. Schema de Organization, schema de WebSite, salida de idioma y la salida obligatoria del head de Shopify pueden vivir allí. La lógica específica de producto, artículo, FAQ, breadcrumb y colección suele ir en otro sitio.
content_for_header para ganar velocidad?No. Mantenlo. Audita qué añaden las apps y embeds a través de él, pero no elimines la salida obligatoria de Shopify en el head.
La causa habitual es la multipropiedad. Tu tema, app de reseñas, app SEO o app de feeds pueden emitir schema de Producto, Oferta, Reseña o AggregateRating. Elige una fuente y desactiva las demás cuando sea posible.
No. Úsalo como un input de diagnóstico (no solo una puntuación). También prueba HTML renderizado, Inspección de URL, Rich Results Test, WebPageTest, Performance de Chrome y los datos de campo de Search Console.
SEOJuice puede ayudarte a auditar tu configuración SEO en Shopify Liquid, identificar qué debe ser global, qué debe moverse a plantillas y qué puede eliminarse con seguridad. Si el theme.liquid de tu tienda se ha convertido en un cementerio de apps, empieza por limpiar el layout antes de añadir otro snippet de SEO.
no credit card required
No related articles found.