Inicio Blog SEO
SEO

Shopify SEO: los 12 errores más comunes (y cómo arreglarlos)

Los 12 errores SEO que veo una y otra vez en auditorías de Shopify: canonicals, variantes, robots.txt.liquid, sitemap, alt text. Con código y fix concreto.

Lionel Fenestraz · 8 de mayo de 2026 · 19 min de lectura · Actualizado: mayo de 2026
Compartir
Panel de auditoría SEO de una tienda Shopify mostrando errores comunes de canonical, variantes y sitemap detectados en Google Search Console
En este artículo

La mayoría de los playbooks de Shopify SEO que circulan por internet son, en realidad, playbooks de WordPress reciclados. Se nota enseguida: hablan de functions.php, de editar .htaccess, de plugins SEO. Nada de eso existe en Shopify. Y esa diferencia no es cosmética, es estructural. Shopify tiene su propio conjunto de limitaciones, y también sus propios atajos. Si sigues el manual equivocado, pierdes tiempo peleándote con cosas que la plataforma ya resuelve, y ignoras los errores reales que sí arrastran tu ranking. Esa es la tensión que este post intenta resolver.

Llevo varios años haciendo auditorías SEO específicas de Shopify. Estos son los 12 errores que me encuentro con más frecuencia, ordenados más o menos por impacto y facilidad de arreglo. Algunos los puedes tachar de tu lista en menos de 10 minutos. Otros requieren tocar Liquid o revisar apps una por una. Todos son concretos: código, fix, verificación. Si prefieres el contexto de plataforma antes de entrar en detalle, mi post sobre Shopify SEO vs WordPress SEO cubre las diferencias de fondo.

En 30 segundos:

  • Tres errores se arreglan en menos de 10 minutos y mueven rankings en dos o tres semanas: alt text vacío, meta descriptions duplicadas en colecciones, y páginas /search indexadas
  • Shopify permite editar robots.txt vía robots.txt.liquid desde junio de 2021 (Shopify Help Center)
  • El tema Dawn incluye schema Product/Offer automático en las fichas (Shopify.dev)
  • Core Web Vitals (LCP, INP, CLS) son factor de ranking oficial según Google Search Central
  • La mayoría de estos errores no aparecen en el panel de Shopify: hay que leer el sitemap XML o el código fuente a mano

Canonical tags mal generados en colecciones paginadas

En las auditorías que he hecho este año, este es el error que más URLs innecesarias mete en el índice de Google. Shopify pagina colecciones con ?page=2, ?page=3, etc. Por defecto y según la documentación de Shopify Help Center sobre URLs canónicas, el canonical apunta a la URL sin parámetro, lo cual es correcto. Pero muchos temas third-party lo rompen.

El patrón roto que veo: /collections/camisetas?page=2 devuelve un canonical apuntando a /collections/camisetas?page=1, creando una cadena. Google, según Google Search Central sobre canonicalización, trata las cadenas como señal débil y puede ignorar el canonical entero. Resultado: páginas paginadas compitiendo entre sí.

Cómo detectarlo

Abre /collections/tu-coleccion?page=2 en el navegador, haz click derecho, “Ver código fuente”. Busca <link rel="canonical". Si apunta a ?page=1 o a la misma URL paginada, está mal.

El fix en Liquid

Abre el tema, layout/theme.liquid, y localiza la etiqueta canonical. Reemplázala por algo así:

{%- if template contains 'collection' and current_tags == blank -%}
  <link rel="canonical" href="{{ canonical_url | split: '?' | first }}">
{%- else -%}
  <link rel="canonical" href="{{ canonical_url }}">
{%- endif -%}

Esto fuerza el canonical de toda página de colección paginada a apuntar a la URL base sin query string. Verifica después en Google Search Console, herramienta de inspección de URL, que Google reconoce el canonical correcto.

Shopify genera canonical tags automáticamente en colecciones paginadas según su Help Center, pero los temas de terceros a menudo sobreescriben ese comportamiento. Google trata las cadenas de canonicals como señal débil, explicado en su guía de canonicalización.


Meta descriptions vacías en colecciones

Shopify no genera meta descriptions automáticas en páginas de colección. Lo confirma su propia guía de SEO en Shopify Help Center: tú las escribes, o no existen. Cuando no las escribes, Google toma fragmentos aleatorios del HTML, normalmente del menú o del footer. En las páginas de colección de una marca de cosmética que audité a principios de 2026 con más de 200 SKUs, 17 de 23 colecciones activas no tenían meta description. Google mostraba, literalmente, texto de navegación en los snippets.

Esto te cuesta CTR. Y CTR es una señal de calidad implícita.

El fix

Para cada colección, ve a Tiendas online > Colecciones > [nombre] > Editar vista previa del motor de búsqueda. Escribe 140-155 caracteres que respondan a la intención: qué hay en la colección, precio de entrada, diferenciador. Ejemplo: “Camisetas de algodón orgánico desde 25€. 40 modelos, envío 48h, devolución gratuita. Compra online en [marca].”

Si tienes 100+ colecciones, hay apps como SEO Manager o Smart SEO que permiten generarlas en bulk con plantillas. Yo suelo preferir escribirlas a mano en las colecciones top 20 por tráfico y usar plantilla para el long tail.

Cómo verificar

Una vez publicado, usa site:tudominio.com/collections/ en Google y mira los snippets. Si sigues viendo texto de menú, borra la caché de Shopify (se refresca en horas) y pide un recrawl desde GSC.


¿Por qué las variantes de producto se indexan solas?

Las fichas de producto en Shopify generan URLs como /products/camiseta?variant=43281. Según la documentación de Shopify sobre productos y variantes, el canonical de esas variantes debería apuntar al producto padre, pero muchos temas custom (especialmente los que añaden selectores de color o talla con JS personalizado) rompen ese comportamiento.

En la auditoría que mencionaba, encontré 89 URLs de variantes indexadas que no deberían estarlo. Competían entre ellas y con la ficha principal.

El fix concreto

Abre tu template de producto (sections/main-product.liquid en temas modernos tipo Dawn) y busca el canonical. Si no está forzado al producto padre, añádelo en layout/theme.liquid:

{%- if template contains 'product' -%}
  <link rel="canonical" href="{{ shop.url }}{{ product.url }}">
{%- else -%}
  <link rel="canonical" href="{{ canonical_url }}">
{%- endif -%}

Así, aunque el usuario entre por ?variant=1234, el canonical siempre apunta a la ficha principal. Verifica con site:tudominio.com/products/ inurl:variant en Google: si sigue habiendo resultados tras dos semanas, revisa si tienes una app de variantes que inyecta su propio <link>.

En esa misma marca, la app de “Color Swatches” estaba duplicando el canonical con un valor distinto. Desinstalarla y aplicar el fix Liquid redujo el número de URLs indexadas de 680 a 320 en cuatro semanas.


Títulos de producto idénticos al H1

Lo veo en prácticamente todas las tiendas nuevas. Shopify, por defecto en Dawn, imprime el mismo texto en <title> y en <h1>. Si tu producto se llama “Camiseta blanca orgánica”, eso es lo que Google ve en ambos. Técnicamente no es un error: Google procesa <title> y <h1> por separado. Pero estás desperdiciando el <title>, que es donde metes la intención comercial (marca, categoría, propuesta).

Cómo detectarlo

Inspecciona cualquier ficha de producto. Compara <title> con el <h1> visible. Si son textualmente idénticos, pierde la oportunidad.

El fix

En layout/theme.liquid, localiza <title> y modifícalo para fichas de producto:

{%- if template contains 'product' -%}
  <title>{{ product.title }} | {{ product.vendor }} | {{ shop.name }}</title>
{%- else -%}
  <title>{{ page_title }}{% if current_tags %} &ndash; tagged "{{ current_tags | join: ', ' }}"{% endif %}{% if current_page != 1 %} &ndash; Page {{ current_page }}{% endif %}{% unless page_title contains shop.name %} &ndash; {{ shop.name }}{% endunless %}</title>
{%- endif -%}

Esto añade vendor y nombre de tienda al <title> sin tocar el H1 visible. Si tienes un sistema de categorías con meta campos, puedes meter la categoría también. Menos es más: máximo 60 caracteres visibles en SERP según las pruebas que publica habitualmente Moz.

¿Y si uso una app de SEO?

Entonces define la plantilla desde la app y desactiva el override en el tema. Nunca dupliques la lógica: una sola fuente de verdad.


Robots.txt que antes no podías tocar

Hasta junio de 2021, Shopify no permitía editar robots.txt directamente. Desde esa fecha, la plataforma permite crear un archivo robots.txt.liquid en el tema para override quirúrgico. Lo anunció el Shopify Help Center en su guía oficial de edición de robots.txt. Mucha gente todavía no sabe que existe esa opción.

Cuándo tocarlo

Si tienes páginas de búsqueda interna (/search?q=) indexadas, si quieres bloquear una colección específica de cara al crawler, o si has heredado URLs legacy que no deberían rastrearse. No lo toques sin motivo claro.

El fix

En el editor de tema, crea templates/robots.txt.liquid y añade lo que necesitas. Ejemplo para bloquear búsquedas internas y una colección concreta:

{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules -%}
{{ rule }}
{%- endfor -%}
{%- if group.user_agent.value == '*' -%}
Disallow: /search
Disallow: /collections/no-publicar
{%- endif %}
{%- if group.sitemap -%}
{{ group.sitemap }}
{%- endif %}
{% endfor %}

La estructura {% for group %} preserva las reglas por defecto de Shopify (que son bastante correctas) y solo añade lo tuyo. No sobreescribas el archivo completo: romperías el bloqueo de áreas de admin o checkout.

Verificación

Tras publicar, abre tudominio.com/robots.txt en navegador y busca tus líneas nuevas. Luego ve a GSC > Configuración > Comprobador de robots.txt para confirmar que Google las lee.

Frecuencia de errores SEO en auditorías Shopify Observaciones cualitativas, no estudio estadístico Alt text vacío Muy frecuente Meta desc. duplicadas Muy frecuente Variantes indexadas Frecuente Canonical chains Frecuente Apps duplicando schema Frecuente /search indexada Moderado Título = H1 verbatim Moderado Enlaces rotos handles Moderado Schema en custom pages Ocasional Sitemap incompleto Ocasional URL /blogs/news/ legacy Ocasional

Alt text vacío en imágenes de producto

Shopify no obliga a escribir alt text al subir imágenes. Según la guía oficial de accesibilidad de Shopify, el campo está ahí pero es opcional. La consecuencia: el 90% de las tiendas que audito tiene huecos. En la marca de cosmética que mencioné antes, 38 de 212 productos tenían alt text vacío en al menos una imagen. Lo arreglamos en bulk en 30 minutos. ### Por qué importa

Dos razones. Primera, Google Images sigue trayendo tráfico real a ecommerce, especialmente en cosmética, moda y decoración. Sin alt text, tus productos no se posicionan para búsquedas visuales. Segunda, accesibilidad: usuarios de lectores de pantalla necesitan esa información. Google premia la accesibilidad como parte de la experiencia de página.

El fix masivo

Si tienes pocas imágenes, editar a mano. Si tienes cientos, usa una app como Alt Text Optimizer o Image SEO Optimizer, o un script vía API. Plantilla típica: “{producto} - {color/variante} - {marca}”. Ejemplo: “Camiseta blanca orgánica - talla M - [marca]”. Nada de keyword stuffing. Descripción natural que ayude a alguien que no ve la imagen.

Verificación

Audita con un crawler como Screaming Frog (gratis hasta 500 URLs) o con la app que uses, filtrando por imágenes sin alt. Repite cada trimestre: cada vez que subes un producto nuevo, el alt empieza vacío.


Sitemap limitado: lo que Shopify no incluye

El sitemap de Shopify es automático y se genera en /sitemap.xml. Incluye productos, colecciones, páginas y posts de blog. Lo que no incluye bien, o no incluye en absoluto: páginas hreflang en ciertos setups, tags de blog como entidades independientes, o subrutas custom creadas vía app. No puedes editarlo manualmente: Shopify no lo permite.

En mi experiencia, el sitemap “simplemente funciona” para el 85% de los casos. El problema aparece cuando tienes Shopify Markets con varios idiomas, y solo se listan las URLs del mercado primario en el sitemap principal. Google lo detecta, pero tardas más en ver indexación completa.

El fix práctico

Tres pasos. Uno, en GSC, envía el sitemap principal y los sitemaps por idioma si usas Markets (Shopify los genera en /sitemap_*.xml). Dos, si tienes páginas custom importantes que no aparecen, usa “Inspección de URL” en GSC para forzar indexación manual una a una. Tres, nunca instales una app que intente “mejorar” el sitemap sobreescribiéndolo: acabas con dos sitemaps contradictorios.

Verificación

Visita tudominio.com/sitemap.xml y cuenta URLs con vistazo rápido. Compara con el número de productos + colecciones + páginas + posts de blog que tienes en el admin. La diferencia te dice qué falta.


URLs de blog con /blogs/news/

Shopify crea por defecto un blog llamado “News” y pone los posts en /blogs/news/tu-articulo. Dos problemas. Uno, el slug “news” no dice nada sobre lo que publicas: si tu blog es de guías SEO, el path /blogs/news/ es engañoso semánticamente. Dos, la estructura con /blogs/ en plural es poco común y puede confundir a usuarios que escriben URLs a mano.

El fix

En Tiendas online > Blog > Administrar blogs, crea un blog nuevo con el handle que quieras (por ejemplo guia, recursos, aprende). Mueve los posts ahí. Shopify genera automáticamente redirecciones 301 de la URL antigua a la nueva, según documenta el Shopify Help Center sobre URL redirects.

Verifica las redirecciones desde GSC o con curl -I: la URL antigua debe devolver 301, no 404 ni 200. Si devuelve 200, el traslado no se ha propagado y estás canibalizando.


Schema markup faltante en páginas custom

Dawn genera schema Product y Offer automático en fichas de producto, según la documentación de Shopify.dev sobre plantillas de producto. Hasta aquí bien. El problema aparece en páginas custom: “Sobre nosotros”, “Contacto”, artículos de blog con estructura FAQ o HowTo. Dawn no añade schema ahí. Tú tienes que meterlo a mano.

El fix para FAQ Schema en página custom

En el template de la página custom (sections/page.liquid o similar), añade justo antes del cierre </body> o dentro del <head>:

{%- if page.handle == 'faq' -%}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "¿Cuánto tarda el envío?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Entre 24 y 72 horas laborables en península."
      }
    }
  ]
}
</script>
{%- endif -%}

Verificación

Usa el Rich Results Test de Google pegando la URL pública. Debe detectar FAQPage válido sin errores.


Enlaces internos rotos después de cambiar handles

Cuando editas el handle de un producto en Shopify (el slug URL), la plataforma crea una redirección 301 automática de la URL vieja a la nueva. Bien. Lo que no actualiza son los enlaces internos que hayas puesto en descripciones de otros productos, posts de blog o páginas custom. Esos siguen apuntando al handle viejo, atraviesan la redirección, y cada salto debilita la señal.

Cómo detectarlo

Audita con Screaming Frog o ahrefs Site Audit. Filtra por “Internal 301”. Cada enlace que aparezca ahí es un enlace que deberías actualizar para que apunte directo al destino final.

El fix

Edita manualmente los enlaces en descripciones de producto, posts y páginas. No hay atajo de Shopify para esto. Sí hay apps tipo Broken Link Manager, pero en mi experiencia suele ser más rápido hacerlo a mano si tienes menos de 50 enlaces que corregir.

¿Y si cambio muchos handles?

Planifícalo. Haz todos los cambios en una ventana (una tarde), después audita, y corrige enlaces internos en bloque. No vayas cambiando handles uno a uno a lo largo de meses: acumulas redirecciones encadenadas que tardas horas en limpiar.


Páginas de búsqueda interna indexadas

Shopify genera URLs como /search?q=camiseta+blanca cuando un usuario busca. Si no lo bloqueas, esas URLs pueden llegar al índice de Google. Resultado: snippets de baja calidad con pocos productos, contenido delgado y arañas crawleando rutas infinitas. Google documenta este patrón como problema clásico de presupuesto de rastreo en su guía de gestión del crawl budget.

El fix rápido

Añade esta línea al robots.txt.liquid que creaste antes:

{%- if group.user_agent.value == '*' -%}
Disallow: /search
{%- endif %}

Alternativamente, si prefieres noindex (permite rastrear pero no indexar), añade en layout/theme.liquid:

{%- if template contains 'search' -%}
  <meta name="robots" content="noindex,follow">
{%- endif -%}

La diferencia es sutil. Disallow impide rastrear (más eficiente para crawl budget). noindex permite rastrear pero bloquea indexación (más flexible si quieres que los links internos de esas páginas sigan pasando equity). En la mayoría de tiendas yo prefiero noindex,follow.

Verificación

Usa site:tudominio.com inurl:search en Google. Si siguen apareciendo resultados tras dos o tres semanas, solicita retirada desde GSC > Retirar URLs.


¿Tus apps SEO se están pisando entre sí?

Este es el error más silencioso y, en mi experiencia, el más subestimado. Instalas una app para schema (JSON-LD for SEO), otra para canonicals (Smart SEO), otra para sitemap (Sitemapper Pro), y cada una inyecta su propio código en el <head>. Lo que el usuario ve en el front es una sopa de etiquetas duplicadas: dos canonicals distintos, dos bloques de schema que se contradicen, tres títulos meta.

En la marca de cosmética, conté 4 apps distintas tocando el <head>. Dos metían schema Product con precios desactualizados, una canonical que apuntaba a una URL distinta de la del tema, y la cuarta inyectaba Open Graph duplicado. Google ignoraba una buena parte de la señal porque no sabía cuál creer.

Cómo detectarlo

Inspecciona el código fuente de una ficha de producto (no el HTML renderizado por JS, el HTML original). Busca ocurrencias de <link rel="canonical", <script type="application/ld+json">, <meta property="og:. Si aparecen más de una vez, tienes conflicto.

El fix

Una sola app SEO por función. Desactiva el resto y verifica si se rompe algo esencial. Si el tema ya genera schema y canonical (Dawn lo hace bien), muchas apps son redundantes. La regla que aplico: una app de schema si necesitas tipos que Dawn no cubre, una de redirects/sitemap solo si Shopify nativo se queda corto, y ninguna más. He visto tiendas que ganan rankings solo por desinstalar tres apps SEO y dejar al tema hacer su trabajo.

Verificación

Tras desinstalar, espera 7-10 días y vuelve a revisar el código fuente. Usa Rich Results Test y Schema Markup Validator de Schema.org para confirmar que sigues teniendo el schema que quieres, sin duplicados.


¿Qué priorizar si solo tienes una tarde?

Si te tengo que dar una lista de prioridad, en este orden: primero, robots.txt.liquid para bloquear /search y cualquier ruta basura. Segundo, revisar canonicals en fichas y colecciones (el código de arriba). Tercero, alt text masivo con una app o en bulk. Esos tres arreglos te llevan una tarde y resuelven la mayoría del daño técnico en una Shopify media.

Lo que dejas para después: schema en páginas custom, actualizar enlaces internos tras cambios de handle, y auditoría de apps. Son importantes pero no bloqueantes. Si vienes de una Shopify con 500+ productos y nunca han tocado nada, calcula entre dos y tres semanas de trabajo bien hecho, no una tarde.

El orden de prioridad en la auditoría SEO de una Shopify se basa en el coste de oportunidad: según Google Search Central, las URLs basura consumen crawl budget y retrasan la indexación de las páginas que sí importan. Por eso bloquear /search y variantes fantasma suele ser el primer movimiento rentable.


¿Quieres una revisión experta de tu Shopify?

Si sospechas que tu tienda tiene varios de estos errores acumulados, o si vas a migrar y quieres evitar tropezar con ellos, una auditoría SEO específica de Shopify identifica los puntos de dolor rápido en una sesión. Puedes reservar una sesión de 30 minutos sin compromiso para revisar tu caso concreto.

Sesión de 30 min · Sin compromiso · Reservar llamada


Preguntas frecuentes

¿Cuántos de estos errores suele tener una Shopify media?

Depende del estado del tema y del número de apps. En mi experiencia, una tienda que nunca ha pasado por auditoría SEO tiene entre 5 y 8 de los 12 errores descritos activos. Una tienda con equipo técnico propio o con apps SEO bien configuradas suele bajar a 2 o 3, normalmente en canonicals avanzados o schema en páginas custom. Los errores más persistentes son alt text vacío y meta descriptions duplicadas en colecciones: requieren mantenimiento continuo.

¿Puedo editar robots.txt en Shopify sin código?

Sí, desde 2021. Necesitas crear un archivo robots.txt.liquid en el editor de tema (Tiendas online > Temas > Editar código > Templates > Añadir nueva plantilla). No requiere saber programar, pero sí copiar la plantilla base correctamente según documenta el Shopify Help Center. Si sobreescribes el archivo completo sin usar {% for group in robots.default_groups %}, rompes las reglas por defecto y puedes desindexar áreas accidentalmente.

¿Dawn genera todo el schema que necesito?

Normalmente sí para fichas de producto. Dawn incluye Product, Offer y AggregateRating según la documentación oficial de Shopify.dev. Donde se queda corto es en schema para páginas custom (FAQ, HowTo, Recipe, LocalBusiness), en Article schema con autor estructurado, y en algunos casos de Review con campos avanzados. Para esos casos tienes que meter JSON-LD manual vía snippet de Liquid o usar una app como JSON-LD for SEO.

¿Merece la pena pagar una app SEO en Shopify?

Depende de lo que quieras resolver. Para bulk alt text, plantillas de meta descriptions, redirects masivos o schema avanzado, una app bien elegida ahorra tiempo y evita errores. Para canonicals y sitemap, Shopify nativo suele bastar. Recomiendo empezar sin apps SEO, arreglar lo que puedas en el tema, y solo instalar una app cuando tengas un problema concreto que el tema no resuelve. Suele salir más barato y más limpio.

¿Puedo hacer la auditoría yo mismo?

Sí, si tienes conocimientos básicos de SEO técnico. Herramientas gratuitas: Screaming Frog (hasta 500 URLs), Google Search Console, PageSpeed Insights, Rich Results Test. El orden razonable: crawl completo con Screaming Frog > revisar canonicals, títulos y meta descriptions > validar schema > revisar Core Web Vitals en GSC > auditar apps instaladas en Shopify admin. Si encuentras más de 4-5 errores serios, puede compensar contratar revisión externa para no dejar ciegos.


Para cerrar

Shopify SEO no es más difícil que WordPress SEO, pero sí es distinto. La plataforma te quita problemas (hosting, schema básico, velocidad de serie) y te pone otros (canonicals con apps, sitemap rígido, robots.txt que hasta 2021 no se podía tocar). La mayoría de tiendas que audito tienen los mismos 4-5 errores repetidos, y casi todos se arreglan en menos de una tarde si sabes dónde mirar.

Si tuviera que dejar un solo consejo: antes de instalar una app SEO, mira qué hace tu tema de serie. Dawn, de 2021 en adelante, hace bastante bien su trabajo. Muchas apps resuelven problemas que no tienes, y crean conflictos que sí tendrás después. Menos es más, también en el <head>.

Si necesitas ayuda para auditar la tuya, o para decidir qué arreglar primero, una auditoría SEO específica de Shopify te ahorra semanas de pruebas.


Fuentes consultadas: Shopify Help Center, Shopify.dev, Google Search Central, Moz, Schema.org.

Auditoría SEO gratuita
Tu web pierde clientes cada día. Descubre por qué — gratis.

Recibe una auditoría SEO personalizada de tu web en menos de 48h. Sin compromiso — solo los puntos exactos donde estás perdiendo visibilidad y cómo arreglarlo.

Lionel Fenestraz — Consultor Google Ads & Meta Ads
Lionel Fenestraz
Consultor PPC & CRO Freelance · Google Partner · CXL Certified · Google Ads Search Certified
Más de 7 años gestionando campañas de Google Ads y Meta Ads para marcas de vacation rental, B2B y ecommerce. Trilingüe (ES/EN/FR). Trabajo directamente en tu cuenta — sin intermediarios.
Primera llamada gratuita

¿Tu cuenta de ads podría
rendir mejor?

30 minutos para revisar tu situación y decirte exactamente qué cambiaría. Sin pitch, sin propuesta de venta.

¿Hablamos? Elige tu hora →
30 min · Google Meet · Sin compromiso