Blog/SEO
SEO

El SEO para tiendas online debe ordenar categorías, productos y contenido para captar búsquedas con intención de compra.

Datos estructurados en tiendas online: los errores que sí encuentro

En las tiendas que reviso, el problema casi nunca es que falte schema. Es que hay schema y está mal: precios con coma que ninguna máquina puede leer, dos fichas de producto contradiciéndose en la misma URL, artículos firmados por una API. Y todo eso pasa la vista humana sin que nadie lo note, porque el schema no se ve en la página.

Qué hace el schema y qué no

Los datos estructurados son un bloque de código que le dice a un buscador, en un formato que entiende sin adivinar, qué es cada cosa de la página: esto es un producto, esto es su precio, esto es su disponibilidad. Se escriben en el vocabulario de schema.org y hoy se publican como JSON-LD, que es el formato que Google recomienda en su documentación.

Sirven para que tu resultado pueda mostrar precio, disponibilidad, valoraciones o migas de pan. Y sirven cada vez más para otra cosa: que un asistente de IA pueda citarte sin inventar, porque le entregas el dato en limpio en vez de obligarlo a deducirlo del diseño.

Lo que no hacen, y conviene decirlo: no son un factor de posicionamiento que te suba de puesto por existir. Google lo repite en su propia documentación. Verás por ahí promesas de "+35% de clics con schema"; ese tipo de cifra sale de casos puntuales de empresas grandes y no se puede prometer como resultado. Lo que sí puedo decirte con honestidad es que un resultado con precio y stock visibles compite mejor que uno que es solo un enlace azul, y que un dato mal escrito puede costarte que no se muestre nada.

Error 1: dos productos en la misma página

Este lo encontré en agosto de 2026 en una tienda Shopify, sobre la ficha de un producto de suplementos. La página emitía dos entidades Product a la vez.

Una venía del tema Dawn, que la genera solo y estaba correcta. La otra estaba escrita a mano en layout/theme.liquid, agregada en algún momento anterior "para mejorar el SEO". El problema no era solo la duplicación.

La versión hecha a mano declaraba el precio así:

"price": "{{ product.price | money_without_currency }}"

Ese filtro, en pesos chilenos, devuelve 87,990. Con coma de miles. Y schema.org exige un número plano: 87990. Con la coma, un buscador puede interpretarlo como 87,99 o descartar la oferta completa, y ahí te quedas sin precio y sin disponibilidad en el resultado.

Dos entidades del mismo tipo en una URL es una contradicción de por sí: le estás dando a la máquina dos versiones de la verdad. Que además una tuviera el precio malformado lo empeoraba. La solución fue borrar la hecha a mano y quedarse con la nativa, que ya traía el sku y el precio bien.

Si vendes en Colombia, esto te pega más fuerte. Un producto de 189.900 pesos colombianos tiene dos separadores posibles y montos más largos que en otras monedas, así que la probabilidad de que el filtro de la plantilla te escupa 189.900 o 189,900 en vez de 189900 es mayor. El campo priceCurrency debe decir COP y el price tiene que ir pelado, sin puntos, sin comas y sin el símbolo de peso.

La lección: antes de agregar schema a una tienda, revisa si la plataforma ya lo trae. Shopify, WooCommerce con Yoast o Rank Math, y Tiendanube lo emiten solos. Agregar el tuyo encima no suma: resta.

Error 2: el autor de tus artículos dice "Shopify API"

Misma tienda, otro problema. Los artículos del blog se habían creado por API, y el schema que generaba el tema declaraba:

"author": {"@type": "Person", "name": "Shopify API"}

Firmar con el nombre de una interfaz de programación un contenido sobre suplementos, en una tienda que los vende, es la peor señal de autoría que se puede dar. Google evalúa quién respalda lo que se afirma, sobre todo en temas de salud o dinero. Ahí no había nadie: había un proceso automático.

Se reemplazó por un BlogPosting con autoría real. Es un cambio de una línea que nadie mira, porque el nombre del autor no aparece en pantalla; vive solo dentro del código.

Error 3: la fecha congelada

En el mismo caso, dateModified era idéntico a datePublished. El artículo se había actualizado en agosto y el schema seguía declarando mayo.

Para una búsqueda donde el año importa —cualquier "mejor X 2026", cualquier comparativa de precios— estás declarando por escrito que tu contenido está desactualizado, justo cuando acabas de actualizarlo. Y description salía vacía, que es otra oportunidad desperdiciada.

Error 4: estrellas que no existen

Este es el más tentador y el más caro. aggregateRating es lo que pinta las estrellas en el resultado, así que aparece en todas las guías como el campo estrella. Y por eso mucha tienda lo agrega con un 4,8 y "247 reseñas" que nadie escribió.

No lo hagas. Google exige que la valoración corresponda a reseñas reales, visibles en la misma página, y sanciona el marcado que no refleja el contenido. Es de las pocas cosas del SEO técnico que tienen castigo explícito.

Si no tienes reseñas todavía, la respuesta no es inventarlas: es dejar el campo fuera y trabajar para conseguirlas. Un Product con precio, stock y marca correctos ya te sirve, y no arriesga nada.

Qué schema necesita realmente una tienda

Cuatro cosas, en este orden:

  • Product con offers en cada ficha: nombre, imagen, precio, moneda y disponibilidad. Es el que hace el trabajo.
  • BreadcrumbList en fichas y categorías: le explica la jerarquía de tu catálogo y mejora cómo se ve la URL en el resultado.
  • Organization una vez, en la home: quién eres, tu logo, tus perfiles.
  • FAQPage solo si la página tiene preguntas y respuestas visibles de verdad. Si el schema dice que hay una FAQ y el visitante no la ve, es marcado que no corresponde al contenido.

Este es un Product mínimo y correcto. Fíjate en el precio: sin separador de miles, sin símbolo de moneda, la moneda va en su propio campo.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Proteína Whey 1 kg",
  "image": "https://tutienda.cl/img/whey-1kg.jpg",
  "sku": "WHEY-1KG",
  "brand": { "@type": "Brand", "name": "TuMarca" },
  "offers": {
    "@type": "Offer",
    "price": "87990",
    "priceCurrency": "CLP",
    "availability": "https://schema.org/InStock",
    "url": "https://tutienda.cl/productos/whey-1kg"
  }
}

Los valores válidos de availability son InStock, OutOfStock, PreOrder y BackOrder, siempre con la URL completa de schema.org delante.

Cómo comprobar el tuyo en cinco minutos

  1. Abre una ficha de producto de tu tienda y mira el código fuente de la página. Busca application/ld+json. Cuenta cuántos bloques hay y cuántos dicen "@type": "Product". Si hay más de uno, ahí tienes el primer problema.
  2. Copia la URL en el test de resultados enriquecidos de Google. Te dice qué detecta y qué está roto.
  3. Para revisar el vocabulario completo, no solo lo que Google usa, está el validador de schema.org.
  4. Mira el precio con lupa. Si aparece con coma, punto de miles o símbolo de moneda pegado, está mal aunque el validador no se queje.
  5. Mira el autor y las fechas en los artículos del blog. Es donde nadie mira.

Las advertencias de tipo "propiedad recomendada ausente" no son errores: puedes convivir con ellas. Los errores en rojo sí hay que resolverlos.

Qué esperar, dicho sin adornos

Arreglar el schema no te va a subir de la página tres a la uno. Lo que hace es que, cuando ya estás compitiendo, tu resultado pueda mostrar más información que el de al lado, y que un asistente de IA pueda citarte con datos correctos en vez de inventarlos o saltarte.

El trabajo es de una tarde para una tienda mediana, y la mayor parte es revisar, no escribir. Si tu plataforma ya emite schema —y casi todas lo hacen—, es probable que tu tarea no sea agregar nada, sino quitar lo que alguien agregó de más.

Preguntas frecuentes

¿Necesito un plugin o una app de pago para tener schema?

Normalmente no. Shopify lo trae en sus temas, WooCommerce lo resuelve con Yoast o Rank Math en su versión gratuita, y Tiendanube lo emite solo. Antes de pagar por una app, revisa el código fuente de una ficha: es probable que ya esté.

¿Puedo poner el JSON-LD en cualquier parte de la página?

Sí. Puede ir en el head o en el body y Google lo lee igual. Lo importante no es dónde está, sino que corresponda a lo que el visitante ve en esa misma página.

¿El schema me va a hacer subir en Google?

No por sí solo. No es un factor de posicionamiento directo. Cambia cómo se ve tu resultado y qué tan citable eres, que es otra cosa y también vale.

¿Qué pasa si mi precio cambia y el schema queda viejo?

Es exactamente por eso que conviene usar el schema que genera la plataforma en vez de uno escrito a mano: el nativo lee el precio real del producto en cada carga. Uno escrito a mano se queda con el precio del día que lo escribiste.

¿Sirve de algo si mi tienda es pequeña?

Sirve igual, y cuesta lo mismo. Con pocos productos incluso es más rápido: revisas dos fichas, arreglas el patrón y aplica a todas.

Daniel Pinzón, desarrollador web y consultor SEO

Escrito por Daniel Pinzón — desarrollador web y consultor SEO.

Trabaja con empresas de Chile, Latinoamérica, Estados Unidos y Europa en sitios, tiendas online, SEO e integraciones. Administra además su propia marca de ecommerce, donde prueba las integraciones antes de implementarlas para terceros. Perfil en LinkedIn · Sobre mí · Condiciones comerciales