Migrar WordPress de un hosting a otro manualmente (cPanel)
Migrar un sitio web puede sonar a algo complicado, lleno de comandos extraños y riesgos de perderlo todo. Pero la realidad es que, con una buena guía y un poco de paciencia, migrar WordPress de un hosting a otro manualmente es un proceso totalmente manejable, incluso si nunca lo has hecho antes.
En este artículo, te voy a explicar paso a paso, como si estuviéramos sentados frente a la pantalla juntos, cómo hacer una migración WordPress sin plugin usando solo las herramientas que ya tienes en tu cPanel. Olvídate de pagar por servicios premium o de depender de extensiones que a veces fallan a mitad de camino.
Vamos a hacerlo de la forma clásica, la que te da control total sobre cada archivo y cada registro de la base de datos. Al final, tendrás tu web funcionando en el nuevo servidor, con todos tus posts, páginas, imágenes y configuración intactos.
¿Qué necesitas antes de empezar a mover WordPress?
Antes de lanzarnos a la piscina, vamos a preparar el terreno. Para hacer un cambio de hosting WordPress manual, necesitas tres cosas básicas:
- Acceso al cPanel del hosting antiguo: Ahí es donde viven actualmente tus archivos y tu base de datos.
- Acceso al cPanel del hosting nuevo: Tu nuevo hogar digital. Asegúrate de que ya tienes el dominio apuntando a él (o al menos, un acceso temporal para trabajar).
- Credenciales FTP o el Administrador de Archivos: Tanto del hosting antiguo como del nuevo. Esto lo tienes dentro del propio cPanel, así que no necesitas programas externos si no quieres.
Un consejo antes de empezar: Haz una copia de seguridad completa de tu sitio en el hosting antiguo, aunque sea solo por si acaso. Este proceso es bastante seguro, pero nunca está de más tener un plan B.
Ahora sí, vamos a ello. Lo dividiremos en cinco fases muy claras.
Fase 1: Preparar el hosting de destino (el nuevo)
Este es un paso que mucha gente se salta y luego llora. No puedes simplemente subir los archivos a la carpeta equivocada y esperar que funcione. Primero, hay que crear el "lugar" donde vivirá WordPress.
Crear la base de datos y el usuario en el nuevo cPanel
WordPress guarda todo su contenido (posts, páginas, comentarios, ajustes) en una base de datos MySQL. Necesitamos crear una nueva en el hosting de destino.
- Entra al cPanel de tu nuevo hosting.
- Busca la sección "Bases de Datos" y haz clic en "Asistentes de Bases de Datos MySQL".
- Haz clic en "Crear una base de datos". Ponle un nombre que te ayude a identificarla, por ejemplo,
web_newsite. Anota este nombre, lo necesitarás más tarde. - Ahora, crea un usuario para esa base de datos. Elige un nombre y una contraseña segura (el asistente te ayuda a generarla). Anota el nombre de usuario y la contraseña.
- Por último, asigna el usuario a la base de datos. Marca la casilla de "TODOS LOS PRIVILEGIOS" y haz clic en "Hacer cambios".
¡Listo! Ya tienes el contenedor vacío preparado. Es como tener la pecera nueva, limpia y llena de agua, esperando a los peces.
[INFO] El nombre de la base de datos y el usuario suelen llevar un prefijo con el nombre de tu cuenta de hosting (ej:
usuario123_web_newsite). Asegúrate de copiar el nombre completo que aparece en el cPanel, no el que tu imaginaste.
Fase 2: Respaldar tu sitio actual (desde el hosting antiguo)
Ahora vamos a la casa vieja a empaquetarlo todo. Necesitamos dos cosas: los archivos y la base de datos.
Exportar la base de datos desde el cPanel antiguo
Este es el corazón de tu web. Vamos a hacer una copia de seguridad.
- En el cPanel antiguo, busca la sección "Bases de Datos" y entra en "phpMyAdmin".
- En el panel izquierdo, verás una lista de tus bases de datos. Haz clic en el nombre de la base de datos que usa tu WordPress (la que quieres migrar).
- Arriba del todo, verás una pestaña que dice "Exportar". Haz clic en ella.
- Deja el método de exportación en "Rápido" y el formato en "SQL". Haz clic en el botón "Continuar" o "Exportar".
- Se descargará un archivo con extensión
.sql. Guárdalo en un lugar seguro de tu ordenador. Este archivo contiene absolutamente todo el contenido de tu web.
Descargar los archivos de WordPress (vía Administrador de Archivos)
Ahora vamos a por la "caja fuerte" donde están las fotos, los temas, los plugins y el código principal.
- Vuelve al cPanel antiguo y busca la sección "Archivos".
- Entra en el "Administrador de Archivos".
- Busca la carpeta
public_html(o la carpeta raíz de tu dominio, a veces se llamawwwo el nombre de tu dominio). Entra en ella. - Selecciona todos los archivos y carpetas que haya dentro. Puedes usar el botón "Seleccionar todo" si está disponible.
- Con todo seleccionado, haz clic en el botón "Comprimir" que verás en la barra superior. Elige el formato "Zip" y crea el archivo. Se generará un archivo comprimido (ej:
archivos.zip) dentro de la misma carpeta. - Ahora, selecciona solo ese archivo
.zipque acabas de crear y haz clic en "Descargar". Guárdalo en tu ordenador.
[WARNING] Es muy importante que descargues el archivo ZIP y no lo descomprimas en el hosting antiguo. Lo necesitamos entero para subirlo al nuevo. Si lo descomprimes, tendrás que subir miles de archivos uno a uno, lo cual es un dolor de cabeza.
Fase 3: Subir y descomprimir en el nuevo hosting
Ya tenemos la maleta hecha. Ahora toca llevarla al nuevo apartamento y deshacerla.
Subir el archivo ZIP al nuevo cPanel
- Entra en el cPanel del nuevo hosting.
- Ve al "Administrador de Archivos" y navega hasta la carpeta
public_html. - Si hay algún archivo dentro (a veces hay un
index.htmlde bienvenida), bórralo o muévelo a una carpeta temporal. Necesitamos quepublic_htmlesté vacío para empezar limpio. - Haz clic en el botón "Subir" en la barra superior. Se abrirá una ventana para que selecciones el archivo
archivos.zipque descargaste antes. - Espera a que termine la subida. Dependiendo del tamaño de tu web, puede tardar unos minutos.
Descomprimir el archivo en el servidor
Una vez subido el .zip, el siguiente paso es extraerlo.
- Verás el archivo
archivos.zipen la carpetapublic_html. Haz clic derecho sobre él (o selecciónalo y haz clic en la opción de arriba) y elige "Extraer" o "Descomprimir". - Te pedirá una ruta de destino. Asegúrate de que sea
/public_html(o la ruta raíz de tu dominio). Haz clic en "Extraer archivos". - El sistema empezará a descomprimir todo. Al terminar, verás todas tus carpetas y archivos de WordPress (wp-admin, wp-content, wp-includes, etc.) en la raíz.
- Ya puedes eliminar el archivo
archivos.zipdel servidor para mantener todo limpio.
Fase 4: Importar la base de datos al nuevo servidor
Ahora toca el segundo "pez": meter la base de datos en la pecera nueva que creamos en la Fase 1.
- En el cPanel nuevo, entra en "phpMyAdmin".
- En el panel izquierdo, selecciona la base de datos que creaste al principio (la que tiene el nombre que anotaste).
- Ve a la pestaña "Importar" en la parte superior.
- Haz clic en "Elegir archivo" y selecciona el archivo
.sqlque descargaste del hosting antiguo. - Deja el resto de opciones por defecto y haz clic en el botón "Continuar" o "Importar".
- Si todo ha ido bien, verás un mensaje verde de éxito. Ahora tu nueva base de datos tiene todas tus tablas (wp_posts, wp_options, etc.).
Fase 5: Conectar WordPress a la nueva base de datos (el paso clave)
Aquí está el truco de magia final. WordPress necesita saber que ahora tiene que hablar con la base de datos nueva, no con la antigua. Toda esa información está en un archivo llamado wp-config.php.
- En el Administrador de Archivos del nuevo hosting, dentro de
public_html, busca el archivowp-config.php. - Haz clic derecho sobre él y selecciona "Editar" (o "Code Editor").
- Busca las líneas que definen el nombre de la base de datos, el usuario y la contraseña. Se ven así:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'nombre_base_datos_antigua' );
/** MySQL database username */
define( 'DB_USER', 'usuario_base_datos_antigua' );
/** MySQL database password */
define( 'DB_PASSWORD', 'contraseña_base_datos_antigua' );
- Cámbialas por los datos de la base de datos que creaste en el hosting nuevo:
define( 'DB_NAME', 'usuario123_web_newsite' );
define( 'DB_USER', 'usuario123_web_user' );
define( 'DB_PASSWORD', 'la_contraseña_nueva_que_creaste' );
- Guarda los cambios y cierra el editor.
[TIP] No toques nada más de ese archivo. Solo las tres líneas de la base de datos. Cualquier otro cambio podría romper la configuración de seguridad o las rutas de tu web.
Fase 6: Ajustar el dominio y las URLs (el último empujón)
Si el dominio ya apunta al nuevo hosting (es decir, has cambiado los "nameservers" o la IP en tu proveedor de dominio), es probable que tu web ya cargue. Pero a veces, las URLs internas de WordPress siguen apuntando a la dirección antigua, lo que provoca que los enlaces internos y las imágenes se rompan.
Hay una forma muy sencilla de arreglarlo sin tocar código: usar un plugin de caché o una herramienta de "Better Search Replace". Pero como estamos haciendo la migración WordPress sin plugin, lo haremos con un pequeño truco.
Añade estas líneas al final de tu archivo wp-config.php (justo antes de la línea /* That's all, stop editing! Happy publishing. */):
define( 'WP_HOME', 'http://tudominio.com' );
define( 'WP_SITEURL', 'http://tudominio.com' );
Reemplaza http://tudominio.com por tu dominio real (con https:// si tienes SSL instalado). Esto le dice a WordPress cuál es su nueva dirección principal de forma forzada.
Fase 7: Verificar la migración y solucionar problemas comunes
Ya casi lo tienes. Es el momento de la verdad.
Comprobaciones rápidas de salud
- Abre tu dominio en una ventana de incógnito. ¿Carga la web? ¿Se ven las imágenes? ¿Los enlaces funcionan?
- Entra en tu panel de administración (
tudominio.com/wp-admin). ¿Puedes iniciar sesión con tu usuario y contraseña de siempre? - Ve a Ajustes > Enlaces permanentes y haz clic en "Guardar cambios" sin cambiar nada. Esto refresca las reglas de reescritura de URLs y soluciona muchos problemas de páginas 404.
Si algo falla, no te preocupes, es normal. Aquí tienes las soluciones a los problemas más típicos:
- Error "Error establishing a database connection": Revisa que el nombre de la base de datos, el usuario y la contraseña en
wp-config.phpsean exactamente los que creaste en el nuevo cPanel. Un simple espacio o error tipográfico es la causa más común. - La web carga pero sin estilos (solo texto): Esto es un problema de URLs. Asegúrate de haber añadido las líneas
WP_HOMEyWP_SITEURLalwp-config.php. También puede ser que el dominio aún no apunte correctamente y estés viendo una versión en caché. - Aparece un error de "404 Not Found" en las páginas internas: Ve a
wp-admin> Ajustes > Enlaces permanentes y haz clic en "Guardar cambios". Si no puedes entrar al admin, revisa que las URLs enwp_optionsde la base de datos sean correctas (esto es más avanzado, pero la solución delwp-config.phpsuele ser suficiente).
Preguntas Frecuentes sobre la migración manual
Para terminar, voy a resolver las dudas que más me suelen plantear los clientes cuando hacemos este proceso.
¿Y si no tengo acceso a cPanel, solo a FTP?
No pasa nada. El proceso es el mismo, pero en lugar de usar el "Administrador de Archivos", usas un cliente FTP como FileZilla. Descargas los archivos con FTP, los subes al nuevo hosting con FTP y el resto de pasos (crear BD, importar SQL) se hacen igual desde el cPanel.
¿Puedo migrar WordPress de un hosting a otro manualmente sin tocar el dominio?
Sí, de hecho es lo que hemos hecho. El cambio de DNS (apuntar el dominio al nuevo servidor) es un paso independiente que se hace en tu proveedor de dominios. Puedes tener todo migrado y funcionando con una URL temporal (como una IP) antes de cambiar los DNS.
¿Qué es eso de "Syspanel" que mencionan en otros tutoriales?
En algunos tutoriales o guías de migración, cuando se habla de paneles de control alternativos a cPanel, a veces se menciona "HestiaCP". Si te encuentras con ese nombre, ten en cuenta que aquí lo llamamos "Syspanel". Es un panel de control muy similar a cPanel pero con una interfaz diferente. Si tu hosting usa Syspanel, el acceso suele ser en el puerto 2106 (por ejemplo, https://tu-dominio.com:2106). El proceso de migración es conceptualmente el mismo: encontrar la sección de "Archivos" y "Bases de Datos". Solo cambia un poco el diseño de los botones.
¿Cuánto tarda el proceso?
Depende del tamaño de tu web. Si es un blog pequeño con poco contenido, puedes tenerlo listo en 20-30 minutos. Si es una tienda online con miles de imágenes y productos, puede llevarte un par de horas. La mayor parte del tiempo se va en la subida y descarga de archivos.
¿Es seguro este método manual?
Sí, es el método más seguro y controlado que existe. No dependes de que un plugin funcione correctamente en ambos servidores. El único riesgo es que te equivoques al copiar un nombre de usuario o contraseña, pero con los pasos de verificación que te he dado, es fácil solucionarlo.
En resumen, migrar WordPress de un hosting a otro manualmente es un trabajo de paciencia y precisión, pero totalmente al alcance de cualquiera que siga estos pasos. Has aprendido a hacer una migración WordPress sin plugin, lo que te da un conocimiento más profundo de cómo funciona tu web y te ahorra posibles dolores de cabeza con extensiones de pago.
Ahora que ya sabes cómo mover WordPress de hosting, no tengas miedo de hacerlo. Es como cambiar de casa: al principio da pereza, pero una vez que estás instalado en el sitio nuevo y todo funciona, la tranquilidad es inmensa. Si has seguido todos los pas
