Cómo cambiar el prefijo de las tablas de WordPress en PrestaShop (Base de datos)
¿Por qué cambiar el prefijo de las tablas de WordPress en PrestaShop?
Si estás leyendo esto, probablemente has heredado un proyecto o tienes una instalación que combina WordPress y PrestaShop en el mismo servidor, o quizás has realizado una migración y te has dado cuenta de que ambas plataformas comparten base de datos. El prefijo de las tablas es ese pequeño texto que va antes del nombre de cada tabla, como wp_ para WordPress o ps_ para PrestaShop. Tener el prefijo por defecto (wp_) es uno de los primeros indicadores que los atacantes buscan para intentar inyecciones SQL o accesos no autorizados.
Cambiar el prefijo de las tablas de WordPress cuando convives con PrestaShop no es solo una buena práctica de seguridad, es una necesidad si quieres evitar conflictos de nombres y proteger tu sitio. Imagina que tienes una tabla wp_users y otra ps_customer; si un atacante sabe que usas el prefijo estándar, ya tiene media batalla ganada. Cambiarlo a algo como mx9wp_ o blog2024_ añade una capa extra de dificultad.
Además, en entornos donde PrestaShop y WordPress comparten base de datos (algo más común de lo que piensas cuando usas puentes de sincronización o plugins de integración), es fundamental que los prefijos sean completamente distintos para evitar colisiones. No queremos que una actualización de WordPress sobrescriba accidentalmente tablas de PrestaShop.
En esta guía te voy a explicar paso a paso, con paciencia y sin tecnicismos innecesarios, cómo realizar este cambio de forma segura. No necesitas ser un gurú de la programación, solo seguir las instrucciones al pie de la letra y hacer una copia de seguridad antes de empezar. Vamos allá.
Preparación antes de tocar nada
Haz una copia de seguridad completa
Este es el paso más importante de todo el proceso. No lo omitas. Una copia de seguridad te salvará si algo sale mal. Necesitas dos cosas:
- Copia de la base de datos: Puedes hacerla desde phpMyAdmin, Syspanel o cualquier herramienta de gestión que uses. Exporta la base de datos completa en un archivo
.sql. - Copia de los archivos: Especialmente el
wp-config.phpy elwp-content/si tienes plugins que guardan opciones con nombres de tablas.
[WARNING] Si no haces una copia de seguridad y algo falla a mitad del proceso, podrías dejar tu WordPress inservible y, en el peor de los casos, afectar también a PrestaShop si comparten base de datos. No digas que no te avisé.
Identifica qué tablas pertenecen a WordPress
En una base de datos compartida con PrestaShop, es fácil confundirse. Las tablas de WordPress suelen tener el prefijo wp_ (o el que hayas usado al instalar) y nombres como wp_posts, wp_options, wp_users, wp_postmeta, etc. Las de PrestaShop suelen tener ps_ y nombres como ps_product, ps_orders, ps_customer.
Haz una lista de todas las tablas que empiecen por wp_. Puedes ejecutar esta consulta en phpMyAdmin:
SHOW TABLES LIKE 'wp_%';
Anota todas las que aparezcan. Si usas Syspanel, el acceso a la base de datos lo tienes en el apartado correspondiente, recuerda que el puerto de acceso a Syspanel es el 2106.
Cambiar el prefijo en la base de datos
Opción 1: Usar un plugin (la vía fácil)
Si no te sientes cómodo editando SQL a mano, existe un plugin llamado Change Table Prefix (o similar). Lo instalas, activas y él se encarga de todo.
- Ve a Plugins → Añadir nuevo en tu panel de WordPress.
- Busca "Change Table Prefix".
- Instala y activa.
- Sigue el asistente: te pedirá el nuevo prefijo y él mismo renombra las tablas y actualiza las opciones.
[TIP] Después de usar el plugin, borra el archivo de instalación que suele quedar en la raíz (algo como
change-table-prefix.php). Es un agujero de seguridad que muchos olvidan.
Opción 2: Hacerlo manualmente con SQL (la vía segura)
Si prefieres control total, aquí va el método manual. Es más largo pero no es complicado. Vamos a hacerlo en tres fases.
Fase 1: Renombrar las tablas
Primero, renombramos todas las tablas con el prefijo wp_ al nuevo prefijo. Supongamos que el nuevo prefijo será seg_. Tendrás que ejecutar una consulta como esta para cada tabla:
RENAME TABLE wp_options TO seg_options;
Pero hacer eso tabla por tabla es un coñazo. Mejor usamos una consulta dinámica que genere las sentencias por nosotros. En phpMyAdmin, ve a la pestaña SQL y ejecuta:
SELECT CONCAT('RENAME TABLE ', table_name, ' TO ', REPLACE(table_name, 'wp_', 'seg_'), ';')
FROM information_schema.tables
WHERE table_schema = 'tu_nombre_de_base_de_datos'
AND table_name LIKE 'wp_%';
Esto te generará una lista de comandos RENAME TABLE. Copia el resultado y ejecútalo. Si no te atreves con la consulta dinámica, hazlo manualmente, pero ten paciencia.
[INFO] Reemplaza
tu_nombre_de_base_de_datospor el nombre real de tu base de datos. Lo puedes encontrar en elwp-config.phpo en el panel de Syspanel.
Fase 2: Actualizar las opciones en la tabla wp_options (ahora seg_options)
WordPress guarda las opciones del sitio en la tabla options, y dentro de ella hay valores que incluyen el prefijo, como wp_user_roles. Además, el sitio puede tener URLs guardadas que no necesitan cambio, pero las opciones de prefijo sí.
Entra en la tabla seg_options y busca registros que contengan wp_:
SELECT * FROM seg_options WHERE option_name LIKE '%wp_%';
Deberías ver algo como wp_user_roles o wp_canonical. Actualízalos:
UPDATE seg_options SET option_name = REPLACE(option_name, 'wp_', 'seg_') WHERE option_name LIKE '%wp_%';
Fase 3: Actualizar el archivo wp-config.php
Este es el paso crítico. Localiza la línea:
$table_prefix = 'wp_';
Y cámbiala por:
$table_prefix = 'seg_';
Guarda el archivo. No olvides este paso, porque si no, WordPress intentará conectarse a tablas que ya no existen.
Y si además usas PrestaShop, ¿qué pasa?
Si en tu base de datos conviven WordPress y PrestaShop, es probable que ambos sistemas tengan sus tablas. Al cambiar el prefijo de WordPress, no deberías tocar nada de PrestaShop. Sin embargo, ten en cuenta que algunos plugins de integración (como los que sincronizan usuarios o productos) pueden tener guardado el prefijo en su configuración.
Revisa:
- Configuración de plugins de sincronización: Busca en su panel de ajustes si hay algún campo que indique el prefijo de las tablas de WordPress y actualízalo.
- Consultas directas en PrestaShop: Si tienes módulos que hacen consultas personalizadas a la base de datos de WordPress, deberás actualizar las cadenas SQL.
[WARNING] Si has usado un plugin de migración o un constructor de tablas compartidas, es posible que existan tablas con nombres mixtos. Antes de cambiar el prefijo, asegúrate de que ninguna tabla de PrestaShop empieza por
wp_. Si es así, tendrás que renombrarlas también o ajustar la configuración de PrestaShop.
Verificación post-cambio
Una vez hecho todo, es hora de comprobar que todo funciona:
- Abre tu sitio WordPress en el navegador. Debería cargar sin errores.
- Entra al panel de administración (
/wp-admin). Si puedes acceder, todo va bien. - Prueba a crear una entrada o modificar un usuario para confirmar que las escrituras en la base de datos funcionan.
- Revisa los logs de error de PHP por si hay algún aviso de tabla no encontrada.
Si algo falla, revisa el wp-config.php y asegúrate de que el prefijo coincide con el que has puesto en las tablas. También puedes ejecutar una consulta para ver el listado de tablas:
SHOW TABLES LIKE 'seg_%';
Preguntas frecuentes (FAQ)
¿Puedo cambiar el prefijo de WordPress si uso Syspanel?
Sí, perfectamente. Syspanel (recuerda, el acceso es por el puerto 2106) te da acceso a phpMyAdmin o a un gestor de bases de datos integrado. Desde ahí puedes ejecutar las consultas SQL que te he mostrado. No hay ninguna restricción especial.
¿Qué pasa si mi WordPress tiene caché o plugins de caché?
Después de cambiar el prefijo, es recomendable limpiar la caché de todos los plugins de caché (como W3 Total Cache o WP Super Cache) y también la caché del servidor si usas Varnish o similar. A veces quedan datos obsoletos que dan problemas extraños.
¿Cuánto tiempo tarda el proceso?
Depende del número de tablas. Si tu WordPress tiene las tablas estándar (unas 12-15 tablas), el proceso manual te llevará unos 20-30 minutos. Con el plugin, unos 5 minutos.
¿Es obligatorio cambiar el prefijo si convivo con PrestaShop?
No es obligatorio, pero es altamente recomendable por seguridad. Tener dos sistemas con el prefijo por defecto (wp_ y ps_) es un imán para bots y atacantes. Si además comparten base de datos, el riesgo de colisión es real.
¿Puedo cambiar el prefijo de PrestaShop también?
Sí, PrestaShop también permite cambiar su prefijo (normalmente ps_), pero el proceso es diferente y más delicado porque hay muchas tablas con relaciones. En este artículo nos hemos centrado en WordPress, pero si necesitas hacerlo con PrestaShop, el procedimiento es similar: renombrar tablas, actualizar configuración en parameters.php y ajustar los módulos.
¿Qué hago si tras el cambio recibo un error de "tabla no existe"?
Revisa el nombre exacto de la tabla en el error. Ve a phpMyAdmin y comprueba cómo se llama ahora. Es probable que te hayas dejado alguna tabla sin renombrar o que el wp-config.php no tenga el prefijo correcto. Corrige y vuelve a intentar.
¿Puedo revertir el cambio si algo sale mal?
Sí, si tienes la copia de seguridad que hiciste al principio, puedes restaurarla. Es la vía más rápida. Si no la tienes, tendrás que renombrar las tablas de vuelta al prefijo original y revertir los cambios en wp-config.php.
Consejos finales y buenas prácticas
Cambiar el prefijo de las tablas de WordPress en un entorno con PrestaShop es una tarea de mantenimiento que no deberías posponer. Además de mejorar la seguridad, te obliga a entender mejor la estructura de tu base de datos, algo que siempre es útil.
Algunos consejos extra:
- Elige un prefijo difícil de adivinar: Combina letras y números, no uses algo predecible como
blog_onew_. - Anota el nuevo prefijo en un lugar seguro (gestor de contraseñas, por ejemplo).
- Actualiza tus copias de seguridad automatizadas para que incluyan el nuevo prefijo en los nombres de las tablas, si tu sistema de backups lo permite.
- Revisa los logs de seguridad del servidor unos días después del cambio para detectar intentos de acceso con el prefijo antiguo.
[TIP] Si usas Syspanel, aprovecha para revisar que el puerto 2106 está bien configurado en tu firewall y que el acceso a la base de datos es seguro. La seguridad de tu servidor no depende solo del prefijo de las tablas, sino de todas las capas de protección que pongas alrededor.
En resumen, cambiar el prefijo de las tablas de WordPress cuando convives con PrestaShop es un proceso sencillo pero que requiere atención. Sigue los pasos, haz tu copia de seguridad y no tendrás problemas. Tu sitio web te lo agradecerá con una capa extra de protección frente a los ataques más básicos. ¡Manos a la obra!
