Los rechazos de productos en Google Merchant Center por «Precio no coincidente» o «Disponibilidad no coincidente» se producen cuando el bot de Google rastrea la ficha pública de tu tienda WooCommerce y encuentra un precio o estado de stock distinto al enviado en tu feed XML. En la gran mayoría de los casos, la causa raíz es el almacenamiento en caché de la página web (que sirve datos antiguos al rastreador de Google) o un marcado de microdatos JSON-LD (Schema.org/Product) desactualizado o mal formateado.

Tener fichas rechazadas en Google Shopping o Merchant Center es una de las fugas de ingresos más frustrantes para una tienda online. Estás pagando por campañas de Performance Max o esperando clics orgánicos de la pestaña Shopping, pero tus artículos más vendidos aparecen con advertencias rojas en el panel de Google y dejan de mostrarse a compradores potenciales.

En este artículo analizamos por qué se desincronizan los datos entre WooCommerce y Google, cómo auditar tus microdatos y cómo prevenir suspensiones de cuenta definitivas.

Sincronización de catálogo WooCommerce y diagnóstico de Google Merchant Center


Por qué Google suspende productos: la discrepancia de canales

Google Merchant Center exige que el precio y la disponibilidad sean exactamente los mismos en tres puntos distintos en todo momento:

  1. El feed de datos (archivo XML o conexión por API generado por plugins como Product Feed PRO o WooCommerce Google Analytics).
  2. Los datos estructurados Schema.org integrados en el código fuente HTML de la ficha del producto.
  3. El precio visible que ve el cliente en pantalla antes de añadir al carrito, impuestos incluidos.

Diagrama técnico de desincronización entre WooCommerce, feed XML y Google Shopping

Cuando actualizas un precio en WooCommerce (por ejemplo, una rebaja de 59 € a 49 €), ocurren con frecuencia dos fallos técnicos:

  • Retraso en la generación del feed: Tu plugin de feed genera el archivo XML una vez al día o cada 12 horas. Durante ese intervalo, el feed sigue mandando 59 €.
  • Caché persistente en servidor: Si utilizas WP Rocket, LiteSpeed Cache o Cloudflare, el bot de Google (AdsBot-Google o Googlebot-Image) solicita la ficha y recibe una versión HTML cacheada hace 24 horas con el precio anterior.

Al contrastar la información, el algoritmo de Google detecta la incoherencia y suspende el producto por infringir las políticas de transparencia en precios.


Las 3 infracciones más habituales en WooCommerce y su solución

1. Desajuste de impuestos (IVA incluido vs IVA excluido)

En España y la Unión Europea, la normativa de consumo exige mostrar los precios con IVA incluido a clientes finales (B2C). Si en WooCommerce > Ajustes > Impuestos tienes configurado «Precios con impuestos no incluidos» pero tu feed envía el precio neto sin añadir la tasa impositiva, Google rechazará las fichas indicando que el precio en la caja es superior al anunciado.

Solución:

  • Asegúrate de que tu plugin de exportación añada el atributo [tax] o configure el cálculo con impuestos incluidos antes de enviar los valores a Google.

2. Microdatos Schema.org incompletos o en conflicto

WooCommerce genera un marcado estructurado básico en formato JSON-LD. Sin embargo, si tienes instalado un plugin SEO (como Yoast o Rank Math) o un tema personalizado, a menudo se insertan dos bloques Product simultáneos con datos contradictorios.

Puedes comprobar si tu producto tiene marcado válido utilizando la herramienta oficial de Google: Prueba de resultados enriquecidos (Rich Results Test).

Un bloque JSON-LD válido para Google Shopping debe contener la propiedad offers con el precio y la disponibilidad correctos:

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Zapatillas Trail Running Pro",
  "image": "https://mitienda.com/wp-content/uploads/zapatilla.jpg",
  "description": "Zapatillas de alto rendimiento para terreno técnico.",
  "sku": "TRAIL-PRO-42",
  "gtin13": "8437001234567",
  "offers": {
    "@type": "Offer",
    "url": "https://mitienda.com/producto/zapatillas-trail-pro/",
    "priceCurrency": "EUR",
    "price": "49.00",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  }
}
</script>

3. Códigos GTIN/EAN inválidos o con dígito de control erróneo

Google exige códigos de identificación comercial global (GTIN/EAN) para la inmensa mayoría de marcas comerciales. Uno de los fallos más frecuentes es inventar códigos numéricos o cometer un error tipográfico en el último número, conocido como dígito de control.

El algoritmo del dígito de control en un código GTIN-13 estándar de la asociación GS1 funciona de la siguiente manera:

  1. Se multiplican los dígitos en posiciones impares por 1 y los de posiciones pares por 3 (excluyendo el último).
  2. Se suman todos los resultados.
  3. El dígito de control es el número que falta para llegar al siguiente múltiplo de 10.

Si introduces un código donde la suma no cuadre matemáticamente, Google Merchant Center lo rechazará automáticamente antes de procesarlo.


Configuración de caché para evitar el desajuste de precios

Para evitar que tu sistema de caché sirva páginas antiguas a los rastreadores de Google, añade reglas de purga automática cada vez que se modifique un producto en WooCommerce.

Si utilizas un archivo functions.php, puedes forzar la limpieza de caché del post al actualizar stock o precio:

add_action('woocommerce_update_product', 'radar_limpiar_cache_producto', 10, 1);
function radar_limpiar_cache_producto($product_id) {
    // Purgar caché de WP Rocket si está instalado
    if (function_exists('rocket_clean_post')) {
        rocket_clean_post($product_id);
    }
    // Purgar caché de LiteSpeed si está instalado
    if (defined('LSCWP_V')) {
        do_action('litespeed_purge_post', $product_id);
    }
}


Cómo lo detecta y resuelve Melopo Radar

En lugar de enterarte de los problemas cuando Google suspende tus campañas publicitarias, el paquete Google Shopping y Feeds de Melopo Radar audita tu catálogo de forma preventiva:

  • Comprobación GMC y GTIN: Verifica que todos tus productos con código de barras tengan un dígito de control matemáticamente válido según el estándar GS1.
  • Detección de variaciones sin precio: Localiza atributos o combinaciones de tallas y colores que no tienen precio asignado en la base de datos y que provocan errores de rastreo.
  • Cotejo en tiempo real: Compara la información de tu base de datos contra el marcado HTML público para avisarte de cachés desfasadas antes de que las visite el bot de Google.

Para seguir optimizando los aspectos técnicos de tu catálogo, revisa nuestro artículo sobre cómo consolidar productos repetidos con redirección 301 y la guía sobre detección de fallos silenciosos en Stripe y Redsys.