Cómo migrar una tienda PrestaShop a un nuevo servidor paso a paso
Mudar una tienda online es como hacer una mudanza real: da un poco de pereza, pero si lo planificas bien, todo llega a su sitio sin romperse. Si estás leyendo esto, probablemente te hayas cansado de un servidor lento, de caídas constantes o de un soporte que no responde. La buena noticia es que migrar PrestaShop a un nuevo hosting no tiene por qué ser una pesadilla técnica.
En esta guía extensa y paso a paso, voy a explicarte cómo cambiar servidor PrestaShop de forma segura, sin perder pedidos, clientes ni posicionamiento en Google. Vamos a hacerlo con calma, como si estuviéramos tomando un café y te lo explicara un amigo que ya ha hecho esto muchas veces.
Antes de empezar: qué necesitas tener a mano
Mover PrestaShop hosting requiere tres cosas fundamentales: los archivos de tu tienda, la base de datos y las ganas de seguir unos pasos con orden. No necesitas ser un gurú de la programación, pero sí tener acceso a los paneles de control de ambos servidores (el antiguo y el nuevo).
Esto es lo que debes preparar antes de tocar nada:
- Acceso FTP o al Administrador de Archivos del hosting actual y del nuevo.
- Las credenciales de acceso a phpMyAdmin (o herramienta similar) de ambos servidores.
- Una copia de seguridad reciente de tu tienda. Si no la tienes, hazla ya. No sigas leyendo sin esto.
- El nuevo hosting contratado con PHP, MySQL y Apache o Nginx compatible con PrestaShop (idealmente PHP 7.4 u 8.x).
- Paciencia y un cuaderno para anotar contraseñas temporales y rutas.
[WARNING] No empieces la migración un viernes por la tarde ni en plena campaña de rebajas. Elige un momento de bajo tráfico, idealmente un lunes o martes por la mañana, para tener margen si surge algún imprevisto.
Paso 1: Haz una copia de seguridad completa de tu PrestaShop
Este es el paso más aburrido y, a la vez, el más importante. Una copia de seguridad de tu tienda no es solo copiar la carpeta public_html o www. Necesitas dos cosas: los archivos del programa y la base de datos.
1.1 Copia de seguridad de los archivos
Accede a tu hosting actual mediante FTP (FileZilla es una opción gratuita y muy común) o desde el Administrador de Archivos de cPanel, Plesk o Syspanel (si usas un panel como este, recuerda que su puerto de acceso es el 2106).
- Descarga toda la carpeta raíz donde está instalado PrestaShop. Normalmente se llama
public_html,htdocsowww. - Asegúrate de incluir la carpeta
img,modules,themesyvar/cache. A veces se olvidan y luego hay problemas con las imágenes o los módulos. - Guarda esta descarga en tu ordenador y, si puedes, en un disco duro externo o en la nube. Nunca está de más tener dos copias.
[TIP] No borres nada del servidor antiguo hasta que la tienda nueva funcione perfectamente. Es tu red de seguridad.
1.2 Copia de seguridad de la base de datos
La base de datos es el cerebro de tu tienda: productos, clientes, pedidos, configuración... Todo está ahí.
- Entra en phpMyAdmin desde el panel de control de tu hosting actual.
- Selecciona la base de datos de tu PrestaShop (el nombre suele empezar por algo como
presta_otienda_). - Haz clic en la pestaña Exportar.
- Elige el método Rápido y formato SQL. Si tu base es muy grande (más de 100 MB), quizás tengas que usar el método personalizado y activar la compresión gzip.
- Descarga el archivo
.sqlo.sql.gzresultante.
[INFO] Si tu base de datos es gigante, puede que el exportador de phpMyAdmin se quede a medias. En ese caso, contacta con tu soporte técnico para que te hagan un dump desde la terminal, o busca en tu panel de control una opción de "Copia de seguridad de base de datos" que lo haga por ti.
Paso 2: Prepara el nuevo servidor (el destino)
Ahora que tienes tu tesoro guardado, toca preparar la nueva casa. No se trata solo de subir archivos; hay que crear el entorno adecuado.
2.1 Crea la base de datos y el usuario
En tu nuevo hosting, busca la sección de Bases de datos MySQL (en cPanel, Plesk o Syspanel).
- Crea una nueva base de datos con un nombre claro, por ejemplo
tienda_nueva_db. - Crea un usuario para esa base de datos con una contraseña segura.
- Asigna todos los privilegios de ese usuario a esa base de datos (SELECT, INSERT, UPDATE, DELETE, etc.). Normalmente hay un botón que dice "Agregar usuario a base de datos" o "Todos los privilegios".
[WARNING] Anota en tu cuaderno el nombre de la base de datos, el usuario y la contraseña. Los necesitarás en el Paso 4 para configurar el archivo
parameters.php.
2.2 Comprueba la versión de PHP
PrestaShop es exigente con la versión de PHP. Si tu tienda es de hace unos años, puede que no funcione con PHP 8.2. Revisa en el panel de tu nuevo hosting qué versiones de PHP tienes disponibles y selecciona una que sea compatible con tu versión de PrestaShop.
- PrestaShop 1.7.x: PHP 7.1 a 7.4 (idealmente 7.4).
- PrestaShop 8.x: PHP 7.2 a 8.1.
- Si no estás seguro, empieza con PHP 7.4. Es la opción más segura para la mayoría de tiendas.
Puedes cambiar la versión de PHP desde el "Selector de versión de PHP" en cPanel o en la configuración del dominio en Plesk/Syspanel.
Paso 3: Sube los archivos de tu tienda al nuevo servidor
Llegó el momento de la mudanza física. Es como llevar las cajas al camión.
3.1 Conecta con el nuevo hosting por FTP
- Abre FileZilla o usa el Administrador de Archivos del nuevo panel.
- Conéctate al nuevo servidor FTP con las credenciales que te dio tu proveedor.
- Ve a la carpeta raíz (normalmente
public_htmlowww).
3.2 Sube la carpeta completa
- Arrastra todos los archivos que descargaste en el Paso 1.1 desde tu ordenador a la carpeta raíz del nuevo servidor.
- Este proceso puede tardar horas si tu tienda tiene muchas imágenes. No lo interrumpas.
- Asegúrate de que el archivo
.htaccesstambién se suba (a veces FileZilla no muestra archivos ocultos por defecto; ve a "Servidor" -> "Forzar mostrar archivos ocultos").
[TIP] Si el FTP va muy lento, comprime la carpeta en tu ordenador en un
.zip, súbela y luego descomprímela en el servidor con el Administrador de Archivos. Es mucho más rápido.
Paso 4: Importa la base de datos al nuevo servidor
Con los archivos en su sitio, ahora toca meter el cerebro en la nueva cabeza.
- Entra en phpMyAdmin del nuevo hosting.
- Selecciona la base de datos que creaste en el Paso 2.1.
- Haz clic en la pestaña Importar.
- Selecciona el archivo
.sqlo.sql.gzque descargaste en el Paso 1.2. - Haz clic en Continuar y espera. Si la base es grande, puede tardar varios minutos. No cierres la pestaña del navegador.
[WARNING] Si te da un error de "tamaño de archivo excedido", deberás subir el archivo SQL por FTP a una carpeta temporal y luego importarlo desde la terminal (SSH) o desde la opción "Importar" de tu panel si permite archivos grandes. Otra opción es dividir el archivo SQL en partes más pequeñas con herramientas como BigDump.
Paso 5: Conecta la base de datos con tu tienda (configuración)
Tu PrestaShop no sabe que su cerebro está en una base de datos nueva. Hay que presentárselo.
- Con tu editor de texto favorito (Notepad++, Sublime Text, o incluso el Bloc de notas), abre el archivo
app/config/parameters.phpque está dentro de la carpeta de tu tienda en el nuevo servidor. - Busca las líneas que dicen
'database_host','database_name','database_user'y'database_password'. - Sustituye los valores antiguos por los de tu nueva base de datos (los que anotaste en el Paso 2.1).
- Guarda el archivo y súbelo de nuevo al servidor si lo habías descargado para editarlo.
[TIP] Si no encuentras el archivo
parameters.php, en PrestaShop 1.6 y versiones anteriores se llamabaconfig/settings.inc.php. El proceso es el mismo.
Paso 6: Actualiza las URLs y limpia la caché
Este es el paso que más dolores de cabeza evita. Si no lo haces, tu tienda te llevará a la página de instalación o te dará errores raros.
6.1 Busca y reemplaza las URLs antiguas
Tu base de datos tiene guardada la URL de tu tienda antigua (ej: http://miodominioantiguo.com). Si tu dominio no cambia, este paso es más sencillo. Pero si estás usando un dominio temporal o una IP para probar, debes cambiarlo.
- Dentro de phpMyAdmin (nuevo), ve a la pestaña SQL.
- Ejecuta esta consulta SQL (cambia los valores por los tuyos):
UPDATE ps_configuration SET value = 'http://nuevo-dominio.com' WHERE name IN ('PS_SHOP_DOMAIN', 'PS_SHOP_DOMAIN_SSL');
UPDATE ps_shop_url SET domain = 'nuevo-dominio.com', domain_ssl = 'nuevo-dominio.com';
[INFO] El prefijo
ps_puede ser diferente en tu tienda. Revisa el nombre de las tablas en tu base de datos (por ejemplo,prestashop_configuration). Si no estás seguro, puedes usar una herramienta como "Search Replace DB" (disponible en algunos paneles) para hacer el reemplazo de forma segura.
6.2 Borra la caché y los archivos temporales
PrestaShop guarda archivos en caché para ir rápido. Esos archivos contienen rutas antiguas.
- En el nuevo servidor, entra en la carpeta
var/cache(en PrestaShop 1.7) ocache(en 1.6). - Borra todo el contenido de la carpeta
var/cache/prodyvar/cache/devsi existen, dejando la carpeta vacía. No borres la carpeta en sí. - Si no puedes borrar desde FTP, usa el Administrador de Archivos del panel.
Paso 7: Configura el archivo .htaccess (si es necesario)
PrestaShop genera un .htaccess automáticamente, pero a veces al migrar se rompe o no se sube bien.
- Si tu tienda da error 500 o no encuentra las URLs, borra el archivo
.htaccessdel nuevo servidor. - Entra en el back-office de tu tienda (admin) con la URL del nuevo servidor. Si no puedes entrar, ve al Paso 8.
- Una vez dentro, ve a Parámetros avanzados -> Rendimiento y pulsa el botón "Regenerar el archivo .htaccess" (o "Guardar" si no ves el botón).
- También puedes regenerar la caché de Smarty desde ahí.
Paso 8: Prueba tu tienda a fondo (y no des por hecho nada)
Este es el momento de la verdad. No te limites a abrir la página de inicio y decir "¡funciona!". Haz una prueba exhaustiva.
- Front-office: Navega por las categorías, busca un producto, añádelo al carrito y simula un pedido (sin pagar, o con un método de pago en modo test).
- Back-office: Entra como administrador, revisa que los productos se editan, que los pedidos antiguos aparecen y que los módulos están activos.
- Imágenes: Comprueba que las imágenes de los productos se ven correctamente. Si no se ven, puede ser un problema de permisos o de la caché de imágenes (borra la carpeta
img/tmpen PrestaShop 1.7). - Módulos de pago y envío: Ve a la configuración de tus pasarelas de pago y verifica que las claves API o los webhooks apuntan al nuevo servidor (a veces hay que actualizar las URLs en el panel del proveedor externo, como PayPal o Stripe).
[WARNING] Los errores más comunes en este punto son: páginas en blanco (por falta de permisos en
var/cacheoconfig), errores de conexión a la base de datos (revisa elparameters.php), o problemas con los módulos de terceros que necesitan reactivación de licencia.
Paso 9: Cambia el DNS y apunta el dominio
Si tu dominio sigue apuntando al servidor antiguo, tus clientes seguirán viendo la tienda vieja. Este paso es el más delicado porque afecta a todo el mundo.
- Ve a tu proveedor de dominios (donde compraste el
.com,.es, etc.). - Busca la sección de Gestión de DNS o Servidores de nombres.
- Copia los servidores de nombres (nameservers) que te dio tu nuevo hosting (suelen ser algo como
ns1.nuevohosting.comyns2.nuevohosting.com). - Sustituye los antiguos por los nuevos.
- Guarda los cambios.
La propagación del DNS puede tardar desde unas horas hasta 48 horas. Durante ese tiempo, algunos usuarios verán la tienda nueva y otros la antigua. Es normal.
[TIP] Para asegurarte de que los cambios se aplican, puedes editar el archivo
hostsde tu ordenador para forzar que tu dominio resuelva a la IP del nuevo servidor. Así podrás probar la tienda nueva con el dominio real antes de que se propague para todos.
Paso 10: Desactiva el modo mantenimiento (la guinda del pastel)
Cuando estés 100% seguro de que todo funciona, es el momento de abrir las puertas.
- En tu back-office, ve a Parámetros avanzados -> Mantenimiento.
- Cambia "Activar tienda" a Sí.
- Guarda los cambios.
[INFO] Durante la migración, es recomendable tener la tienda en modo mantenimiento (activado en el servidor antiguo) para evitar que los clientes hagan pedidos mientras mueves los muebles. Puedes poner un mensaje bonito tipo "Estamos de mudanza, volvemos en unos minutos".
Preguntas frecuentes (FAQ) sobre migrar PrestaShop
Aquí te dejo las dudas que más me suelen plantear cuando ayudo a alguien a trasladar tienda PrestaShop.
¿Cuánto tarda en migrar una tienda PrestaShop?
Depende del tamaño. Una tienda pequeña (sin muchas imágenes) puede estar lista en 2-3 horas. Una tienda grande con 10 GB de imágenes puede llevarte un día entero. El tiempo de propagación del DNS es aparte (hasta 48 horas).
¿Pierdo el SEO al cambiar de servidor?
No, si haces las cosas bien. La clave es mantener la misma estructura de URLs (mismos enlaces), usar redirecciones 301 si cambias alguna URL, y asegurarte de que el certificado SSL está activo. También es buena idea volver a enviar el sitemap a Google Search Console después de la migración.
¿Qué pasa con los módulos de pago?
Los módulos de pago como PayPal, Stripe o Redsys suelen tener una URL de notificación (webhook) que apunta a tu dominio. Después de migrar, entra en el panel del proveedor y verifica que la URL sigue siendo correcta. Si cambiaste de dominio, deberás actualizarla.
¿Puedo usar una herramienta de migración automática?
Sí, hay módulos y plugins que hacen esto por ti, como "PrestaShop Migration"
