Cómo limpiar la base de datos de clientes en Magento 2 (guía práctica para ecommerces)

Magento 2 es probablemente el ecommerce open source más potente del mercado, pero tiene un efecto secundario que casi nadie reconoce hasta que se ve en una factura de Klaviyo o en una campaña que no funciona: acumula datos sucios mucho más rápido que Shopify o WooCommerce. La razón es estructural. En Magento conviven clientes registrados, clientes invitados, suscriptores de newsletter sin cuenta, direcciones secundarias y cuentas de prueba que nunca se borraron. Cada uno entra por una puerta distinta y, si no se hace una revisión periódica, la base termina siendo un mosaico difícil de gestionar.

Este artículo es una guía concreta para dueños y responsables técnicos de tiendas Magento 2 que quieren limpiar su base sin mover una columna a mano y sin pagar una agencia. Te cuento dónde está cada cosa, qué exportar, qué problemas vas a encontrar y cómo resolverlos.


Por qué Magento 2 acumula datos sucios más rápido que otras plataformas

Hay cuatro motivos que explican por qué la base de datos de un Magento típico tiene más ruido que la de un Shopify equivalente:

  1. Guest checkout activado por defecto. Magento permite comprar sin crear cuenta. Esto es bueno para conversión, pero significa que cada compra de invitado crea un registro de pedido vinculado a un email — sin que ese email pase por ninguna validación posterior ni tenga obligación de existir.
  2. Suscriptores de newsletter desligados de los clientes. En Magento 2, las tablas newsletter_subscriber y customer_entity son independientes. Alguien puede suscribirse a tu newsletter sin tener cuenta. Si ese email es falso, queda fuera de cualquier proceso de limpieza basado en clientes.
  3. Direcciones múltiples por cliente. Cada cliente puede tener varias direcciones de envío y facturación. Una de ellas puede tener un teléfono mal formateado, una calle incompleta o un código postal incorrecto, sin que el resto de la cuenta refleje el problema.
  4. Migraciones acumuladas. Muchas tiendas Magento 2 vienen de Magento 1, de PrestaShop o de instalaciones antiguas con import manuales. Cada migración deja datos huérfanos, duplicados por diferencia de codificación (María vs Marí­a) o registros con campos vacíos.

El resultado es que, en bases típicas del sector, una tienda Magento con seis meses de actividad ya tiene entre un 15 % y un 25 % de registros con algún problema de calidad. En tiendas con más de dos años, ese porcentaje sube a 30 %–40 %.


Paso 1: Exportar la base completa desde el admin

Magento 2 incluye un exportador de clientes en Sistema → Transferencia de datos → Exportar. Selecciona la entidad Customers Main File, formato CSV, y descarga. Repite el proceso con Customer Addresses para tener las direcciones completas en un segundo CSV.

Si tienes más de 50.000 clientes, Magento puede tardar varios minutos y, en algunas instalaciones, fallar por timeout. Si es tu caso, usa el comando de consola:

bin/magento export:run customer

O, si tienes acceso a la base de datos directamente, una consulta como:

SELECT entity_id, email, firstname, lastname, created_at
FROM customer_entity
ORDER BY created_at DESC;

Importante: no exportes solo lo que está activo. Para limpiar de verdad necesitas ver también los inactivos, los que no han comprado nunca y los suscriptores de newsletter sueltos. La tabla newsletter_subscriber se exporta por separado desde Marketing → Subscribers.


Paso 2: Identificar los cuatro problemas que vas a encontrar

Cuando abras los CSV en una hoja de cálculo y los ordenes por la columna email, vas a ver, casi seguro, estos cuatro patrones:

2.1. Duplicados invitado vs registrado

El cliente más típico de Magento es el que compró tres veces como invitado y luego se registró. En tu base aparece como cuatro registros distintos: tres en sales_order_address (sin entity_id de cliente) y uno en customer_entity. El email es el mismo, pero el sistema los trata como cuatro personas diferentes.

Ejemplo de cómo lo verás en el CSV:

email                       firstname   total_orders
juan@example.com            Juan        1
JUAN@example.com            Juan        1
juan@example.com            J.          1
juan@example.com            Juan        1 (cliente registrado)

Cuatro registros, una persona. Si tienes 8.000 clientes en tu admin pero 12.000 emails distintos en tu base completa (incluyendo invitados), tienes un problema de duplicación significativo.

2.2. Emails inválidos o con dominio muerto

Magento valida la sintaxis del email cuando alguien crea cuenta o se suscribe (es decir, comprueba que tenga arroba y un dominio). Pero no comprueba que el dominio exista realmente. Esto deja entrar emails con dominios mal escritos (gmial.com, hotmial.com) y dominios temporales (mailinator.com, tempmail.io).

En bases típicas de Magento, entre el 5 % y el 10 % de los emails dejan de existir cada año porque la persona cambió de dominio, dejó de usar esa cuenta o el dominio se dio de baja. Si tu base tiene tres años, eso son entre un 15 % y un 30 % de emails muertos acumulados.

2.3. Teléfonos con formato inconsistente

España tiene un formato de teléfono móvil muy concreto (9 dígitos empezando por 6 o 7), pero Magento 2 acepta cualquier cosa en el campo telephone. En la práctica, en una base española típica vas a encontrar:

  • Móviles correctos: 666 12 34 56, +34 666 12 34 56
  • Móviles sin prefijo: 666123456
  • Números con caracteres extra: (666) 12-34-56
  • Números mal copiados: 66612345 (8 dígitos)
  • Campos con texto: no tiene, ninguno, 0000

Si haces SMS marketing con esa base, una parte importante de los envíos rebota antes de salir de tu plataforma de envío.

2.4. Direcciones incompletas en el secondary address

La tabla customer_address_entity puede tener varias direcciones por cliente. Lo habitual es que la dirección principal (la del último pedido) esté completa y bien, pero las secundarias — añadidas en un momento puntual y nunca revisadas — tengan problemas: código postal vacío, calle sin número, ciudad mal escrita.

Esto importa cuando lanzas una campaña de marketing directo o cuando un cliente devuelve y el sistema usa la dirección equivocada para el reembolso.


Paso 3: Limpiar dentro de Magento (lo que se puede)

Hay tres acciones que puedes hacer directamente desde el admin sin herramientas externas:

Borrar suscriptores no confirmados antiguos

Marketing → Subscribers → Filtrar por status: Not Activated y created_at < hace 90 días → Delete. Estos son emails que se suscribieron pero nunca confirmaron. Si llevan más de tres meses sin confirmar, no van a hacerlo. Mantenerlos solo penaliza tu deliverability.

Borrar cuentas inactivas con cero pedidos

Filtrar clientes con Total Orders = 0 y Last Activity > hace 365 días. Si alguien creó cuenta hace más de un año y nunca compró, mantener su email solo te cuesta dinero en tu plataforma de email.

Importante: si tienes consentimiento explícito para newsletter, esas cuentas no son automáticamente borrables sin más. Revisa con tu DPO.

Unificar duplicados manuales

Si encuentras dos cuentas con el mismo email exacto (caso raro, pero ocurre tras migraciones), Magento permite fusionarlas desde Customers → Manage Customers → Edit. Es lento. Solo merece la pena para clientes con histórico de compras importante.


Paso 4: Lo que NO se puede limpiar dentro de Magento

Aquí está la limitación real. Magento no tiene, de serie, herramientas para:

  • Verificar que un email existe (que su dominio responde y acepta correo).
  • Detectar duplicados fuzzy (mayúsculas, acentos, espacios sobrantes, variantes de nombre).
  • Validar el formato real de un teléfono español (no solo que sea numérico, sino que cumpla el patrón de móvil ES).
  • Identificar direcciones incompletas de forma sistemática.
  • Detectar dominios desechables (mailinator, tempmail, guerrillamail y sus 200 variantes).

Para todo eso necesitas o bien escribir scripts SQL personalizados (caro de mantener), o bien una extensión de pago del marketplace de Magento (las que existen son caras y casi todas requieren suscripción mensual), o bien una herramienta externa que tome tu CSV exportado y te devuelva uno limpio.


Paso 5: Procesar el CSV exportado con una herramienta de limpieza

El flujo que recomendamos en ClearRows para tiendas Magento 2 es el siguiente:

  1. Exporta los CSV de Customers, Customer Addresses y Newsletter Subscribers desde el admin.
  2. Únelos en un solo archivo (manualmente en una hoja de cálculo, o con un script).
  3. Sube el CSV unificado a clearrows.com/prueba-gratis. El análisis es gratuito, sin tarjeta, y no tiene límite de filas.
  4. Recibes un informe con: emails inválidos detectados, duplicados detectados (exactos y fuzzy), teléfonos mal formateados, direcciones incompletas, score 0–100 y pérdida estimada en €/mes.
  5. Si decides limpiar, recibes el CSV limpio por email en unos 15 minutos.
  6. Reimportas el CSV limpio en Magento usando Sistema → Transferencia de datos → Importar, marcando la opción "Replace existing complex data".

Importante sobre el paso 6: haz una copia de seguridad de la base antes de reimportar. La importación de clientes en Magento puede sobrescribir campos. Lo más prudente es:

  • Hacer dump de la tabla customer_entity y customer_address_entity.
  • Importar primero en un entorno de staging si lo tienes.
  • Validar que el conteo de clientes y pedidos no ha cambiado.

Cuánto te ahorra limpiar la base de un Magento típico

Imagina una tienda Magento 2 española con 18.000 clientes registrados, 7.000 invitados (25.000 en total) y 4.500 suscriptores de newsletter sin cuenta (29.500 contactos únicos aproximados). Es un tamaño habitual para un ecommerce con tres años de vida y facturación mensual de cinco cifras altas.

Si la tasa de problemas es del 20 % (rango bajo del estándar), eso son unos 5.900 contactos con algún tipo de problema: emails muertos, duplicados, teléfonos inválidos, direcciones incompletas. En una plataforma como Klaviyo, donde pagas por contacto, cada uno de esos contactos cuesta unos 0,02–0,04 € al mes según el plan. Mantener 5.900 contactos basura cuesta entre 118 € y 236 € al mes, es decir entre 1.416 € y 2.832 € al año, sin contar el daño a tu deliverability.

Y eso es solo el coste directo. El coste indirecto — la tasa de apertura que cae porque los proveedores de email te marcan como remitente con base de baja calidad — suele ser bastante mayor.


Precios de ClearRows para tiendas Magento 2

  • Análisis gratuito: 0 €. Sin tarjeta, sin compromiso, sin límite de filas. Te decimos qué problemas tiene tu base antes de pagar nada.
  • Limpieza básica: 67 € (hasta 25.000 registros). Incluye validación de emails, detección de duplicados exactos y fuzzy, formato de teléfonos.
  • Limpieza completa: 147 € (hasta 50.000 registros). Incluye todo lo anterior más detección de direcciones incompletas y validación de campos extendidos.
  • Bases mayores de 50.000 registros: escríbenos a daniel@clearrows.com para presupuesto personalizado.

Una base de Magento típica de 25.000 registros se procesa por 67 €. El ROI suele estar en menos de un mes solo por el ahorro en la plataforma de email marketing, sin contar la mejora de tasas de apertura.


FAQ

¿Necesito instalar algo en Magento para usar ClearRows? No. ClearRows trabaja con el CSV que tú exportas desde el admin. No hay extensión, no hay conexión directa a tu base de datos, no hay acceso a tu instalación. Tú controlas qué subes y qué reimportas.

¿Funciona con Magento 1? Sí. Magento 1 también permite exportar clientes en CSV. El proceso es idéntico una vez tienes el archivo: subes, validamos, recibes el limpio.

¿Y si tengo Magento Commerce Cloud? Igual. La base de datos exporta a CSV de la misma forma. La única diferencia es que el reimport puede requerir pasar por el equipo de soporte de Adobe si has personalizado el flujo de importación.

¿Vais a borrarme clientes activos por error? No borramos nada. Devolvemos un CSV limpio que tú decides cómo aplicar. Lo habitual es marcar los registros problemáticos en una columna nueva (status: invalid_email, status: duplicated, etc.) y que tú decidas si quieres archivarlos, borrarlos o intentar reactivarlos. La decisión final es siempre tuya.

¿Cuántas veces al año debería limpiar mi base de Magento? Recomendamos cada 6 meses como mínimo. En tiendas con mucho tráfico de invitados y muchas campañas de captación, cada 3 meses. La limpieza semestral mantiene tu base por debajo del 5 % de problemas, que es el umbral por debajo del cual la deliverability deja de ser un problema.

¿Puedo automatizar este proceso? Hoy no hay integración nativa con Magento. La forma actual es exportar manualmente y volver a importar. Si tu base es grande y necesitas hacerlo cada mes, una opción es incorporar la limpieza a tu rutina mensual de mantenimiento, junto con backups y revisión de pedidos.


Resumen práctico

  1. Exporta los tres CSV desde Magento (clientes, direcciones, newsletter).
  2. Únelos. Identifica visualmente duplicados, emails raros, teléfonos extraños.
  3. Borra suscriptores no confirmados con más de 90 días.
  4. Sube el CSV unificado a clearrows.com/prueba-gratis para el análisis gratuito.
  5. Si los números compensan (suelen compensar), procesa la limpieza.
  6. Reimporta en un entorno de staging primero, valida, y luego en producción.

Una limpieza al semestre y tu base de Magento se mantiene en el rango sano. Las campañas funcionan, la deliverability sube y el coste de tu plataforma de email deja de inflarse mes a mes con contactos que no existen.

Si quieres ver el estado real de tu base antes de tomar decisiones, sube el CSV en clearrows.com/prueba-gratis. Sin tarjeta, sin compromiso. El informe te lo enviamos al momento y decides desde ahí.