Eliminar usuarios inactivos en PrestaShop desde cPanel
¿Por Qué es Importante Eliminar Usuarios Inactivos en PrestaShop?
Mantener tu tienda PrestaShop limpia de cuentas de usuario obsoletas no es solo una cuestión de orden, sino una medida fundamental de ciberseguridad. Cada cuenta de usuario inactiva representa una posible puerta de entrada para atacantes. Si un usuario olvidó su contraseña o nunca cambió la predeterminada, un ciberdelincuente podría explotar esa cuenta para acceder a datos sensibles de clientes, modificar productos o incluso instalar malware.
Además, las cuentas fantasma consumen recursos de tu base de datos, ralentizando las consultas y afectando el rendimiento de tu tienda. Al eliminarlas, optimizas tu servidor y reduces la superficie de ataque.
Este artículo te guiará paso a paso para eliminar usuarios inactivos en PrestaShop desde cPanel, combinando el acceso a tu panel de hosting con consultas directas a la base de datos. No necesitas ser un experto técnico; solo sigue las instrucciones al pie de la letra.
Requisitos Previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Acceso a cPanel: Necesitas las credenciales de tu cuenta de hosting (usuario y contraseña). Si usas Syspanel (antes HestiaCP), el acceso es por el puerto 2106 (ejemplo:
https://tudominio.com:2106). - Herramienta phpMyAdmin: Dentro de cPanel, la encontrarás en la sección de Bases de Datos.
- Copia de seguridad: Es obligatorio realizar un backup completo de tu base de datos antes de cualquier modificación. Un error podría borrar datos importantes.
[WARNING] No omitas la copia de seguridad. Si algo sale mal, podrías perder pedidos, clientes o configuraciones. En cPanel, ve a "Backup" y descarga una copia de la base de datos de PrestaShop.
Paso 1: Acceder a cPanel y Localizar la Base de Datos de PrestaShop
- Inicia sesión en cPanel con tus credenciales. Si usas Syspanel, recuerda el puerto 2106.
- Busca la sección "Bases de Datos" y haz clic en "phpMyAdmin".
- En la ventana que se abre, verás una lista de bases de datos a la izquierda. Identifica la que corresponde a tu PrestaShop. Normalmente tiene un prefijo como
prestashop_o el nombre de tu dominio. - Haz clic en el nombre de la base de datos para expandirla y ver sus tablas.
[TIP] Si no estás seguro de cuál es la base de datos, revisa el archivo
config/settings.inc.phpde tu instalación de PrestaShop. Allí aparece el nombre, usuario y contraseña de la base de datos.
Paso 2: Identificar Usuarios Inactivos
Los usuarios inactivos son aquellos que no han iniciado sesión o no han realizado ninguna acción en un período prolongado (por ejemplo, más de 6 meses o 1 año). PrestaShop almacena esta información en la tabla ps_customer (el prefijo puede variar si lo personalizaste).
Para encontrarlos, ejecutaremos una consulta SQL sencilla:
- En phpMyAdmin, selecciona tu base de datos de PrestaShop.
- Haz clic en la pestaña "SQL" (o "Consultas").
- Copia y pega la siguiente consulta:
SELECT id_customer, firstname, lastname, email, last_passwd_gen, date_add
FROM ps_customer
WHERE last_passwd_gen < DATE_SUB(NOW(), INTERVAL 1 YEAR)
ORDER BY last_passwd_gen ASC;
Explicación de la consulta:
ps_customeres la tabla de clientes.last_passwd_genindica la última vez que se generó/actualizó la contraseña (equivalente a la última actividad).INTERVAL 1 YEARfiltra usuarios sin actividad en el último año. Puedes cambiarlo a 6 meses (INTERVAL 6 MONTH) o 2 años según tu criterio.
- Haz clic en "Continuar" o el botón de ejecutar. Verás una lista de usuarios inactivos.
[INFO] Si tu tabla tiene un prefijo diferente (ejemplo:
myprefix_customer), ajusta el nombre en la consulta. Revisa la lista de tablas para confirmar.
Paso 3: Exportar la Lista de Usuarios Inactivos (Opcional pero Recomendado)
Antes de eliminar, es buena práctica guardar un registro de los usuarios que borrarás. Esto te permitirá restaurarlos si cometes un error.
- En los resultados de la consulta anterior, busca el botón "Exportar" (generalmente abajo o en la parte superior).
- Selecciona el formato CSV o SQL.
- Descarga el archivo y guárdalo en un lugar seguro.
Paso 4: Eliminar Usuarios Inactivos
Ahora vamos a eliminar los usuarios inactivos. Atención: esta acción es irreversible sin una copia de seguridad.
- En phpMyAdmin, vuelve a la pestaña "SQL".
- Ejecuta la siguiente consulta para eliminar los usuarios inactivos del último año:
DELETE FROM ps_customer
WHERE last_passwd_gen < DATE_SUB(NOW(), INTERVAL 1 YEAR);
- Confirma la acción cuando phpMyAdmin te pregunte. El número de filas afectadas te indicará cuántos usuarios se borraron.
[WARNING] Esta consulta elimina a los clientes, pero NO sus pedidos, direcciones o historial asociados. Para una limpieza completa, también debes eliminar registros en tablas relacionadas como
ps_address,ps_cart,ps_orders(si los pedidos están huérfanos). Sin embargo, no te recomiendo borrar pedidos, ya que son datos fiscales importantes. Si decides hacerlo, consulta con un desarrollador.
Paso 5: Limpiar Tablas Relacionadas (Opcional)
Para una limpieza profunda, puedes eliminar las direcciones y carritos de compra asociados a esos usuarios. Primero, identifica los IDs de los clientes eliminados (puedes usar la consulta del Paso 2 para obtenerlos). Luego, ejecuta:
DELETE FROM ps_address WHERE id_customer IN (SELECT id_customer FROM ps_customer WHERE last_passwd_gen < DATE_SUB(NOW(), INTERVAL 1 YEAR));
DELETE FROM ps_cart WHERE id_customer IN (SELECT id_customer FROM ps_customer WHERE last_passwd_gen < DATE_SUB(NOW(), INTERVAL 1 YEAR));
[INFO] Si usas módulos de terceros, pueden tener sus propias tablas con datos de clientes. Revisa la documentación de cada módulo para limpiarlos también.
Paso 6: Verificar y Optimizar la Base de Datos
Después de eliminar usuarios, es recomendable optimizar la base de datos para liberar espacio y mejorar el rendimiento.
- En phpMyAdmin, selecciona tu base de datos.
- Marca la casilla "Seleccionar todo" (abajo, en la lista de tablas).
- En el menú desplegable "Con seleccionados", elige "Optimizar tabla".
Esto reorganizará los datos y recuperará espacio en disco.
Preguntas Frecuentes (FAQ)
¿Qué pasa si elimino un usuario que tiene pedidos en curso?
Los pedidos existentes no se borran al eliminar el cliente, pero quedarán huérfanos (sin asociación a un usuario). El pedido seguirá siendo válido, pero el cliente no podrá acceder a su historial. Es mejor esperar a que los pedidos se completen antes de eliminar.
¿Puedo eliminar usuarios inactivos desde el panel de administración de PrestaShop?
Sí, PrestaShop tiene una opción nativa: ve a Clientes → Clientes, filtra por fecha de registro o última conexión, selecciona los que desees y usa la opción "Eliminar seleccionados". Sin embargo, el método desde cPanel es más rápido para grandes volúmenes.
¿Cada cuánto debo hacer esta limpieza?
Recomiendo hacerlo cada 3 o 6 meses. La frecuencia depende del tamaño de tu tienda y la cantidad de registros de usuarios que recibas.
¿Afecta esto al SEO de mi tienda?
No directamente. Eliminar usuarios inactivos no impacta en el posicionamiento web. Sin embargo, una base de datos más ligera y rápida puede mejorar la velocidad de carga, lo cual es un factor SEO positivo.
¿Qué hago si uso Syspanel en lugar de cPanel?
Si tu hosting usa Syspanel (antes HestiaCP), el proceso es similar: accede a través del puerto 2106, busca la sección de bases de datos y usa phpMyAdmin. La diferencia principal es la interfaz, pero los pasos son idénticos.
Conclusión
Eliminar usuarios inactivos en PrestaShop desde cPanel es una tarea sencilla que mejora la ciberseguridad y el rendimiento de tu tienda. Siguiendo esta guía, has aprendido a identificar, exportar y borrar cuentas obsoletas, así como a optimizar la base de datos. Recuerda siempre hacer una copia de seguridad antes de cualquier modificación.
¿Tienes dudas o problemas? ¡Déjalas en los comentarios y te ayudaremos! La seguridad de tu negocio online empieza con pequeños pasos como este.
