Progreso del curso: 0%
Tema 2.5

Migrar WordPress de remoto a local

2.5 Migrar WordPress de remoto a local

A menudo necesitas trabajar localmente con un sitio WordPress que ya existe en un servidor remoto. Migrar un sitio WordPress completo de un servidor remoto a tu máquina local es un proceso común en el flujo de trabajo profesional: descargando una copia exacta de producción para hacer cambios, pruebas, o backups. A diferencia de instalar un WordPress nuevo desde cero, aquí copias un sitio existente preservando todos los datos, configuraciones, usuarios y contenido. Este apartado detalla el proceso paso a paso, explicando qué necesitas mover y cómo asegurar que funcione correctamente después de la migración.

Componentes a migrar

Un sitio WordPress completo consta de dos partes principales: los archivos del servidor (código PHP, temas, plugins, archivos subidos) y la base de datos MySQL. Ambas partes son necesarias. Sin los archivos, no puedes ejecutar WordPress. Sin la base de datos, pierdes toda la configuración, contenido, usuarios y datos personalizados. La migración requiere copiar ambos.

Los archivos son simples de transferir: usas FTP o SFTP para descargarlos. La base de datos requiere exportar su contenido a un archivo, copiar ese archivo a tu máquina local, e importarlo en MySQL local. Este proceso preserva exactamente el estado del sitio remoto.

Paso 1: Crear una copia de seguridad de la base de datos remota

Lo primero es exportar la base de datos del sitio remoto. La mayoría de proveedores de alojamiento web proporcionan acceso a phpMyAdmin o herramientas similares en el panel de control del servidor. Accedes a phpMyAdmin en el servidor remoto (típicamente algo como tunombre.com/phpmyadmin), te autentificas con credenciales que te proporciona tu proveedor de alojamiento, y busca la base de datos WordPress.

Selecciona la base de datos WordPress en phpMyAdmin remoto. En la pestaña Export (Exportar), ves opciones para descargar un archivo SQL con todos los datos de la base de datos. Selecciona formato SQL, asegura que todas las tablas estén seleccionadas (típicamente busca una opción Select All), y haz clic Export. Se descarga un archivo .sql que contiene la estructura y datos completos de tu base de datos WordPress remota.

Paso 2: Descargar los archivos del sitio remoto

Usando un cliente FTP como FileZilla (gratuito y disponible para Windows, macOS, Linux), te conectas al servidor remoto usando credenciales que proporciona tu proveedor de alojamiento: dirección del servidor (host FTP), usuario FTP, contraseña FTP, y puerto (típicamente 21 para FTP, 22 para SFTP que es más seguro). FileZilla muestra el contenido remoto en el lado derecho.

Descarga la carpeta raíz del sitio WordPress. Usualmente es la carpeta public_html si es el sitio principal, o una carpeta específica si WordPress está en subdirectorio. Selecciona la carpeta completa, haz clic derecho, y descarga recursivamente. FileZilla copia todos los archivos y carpetas a tu máquina local. El tiempo depende del tamaño del sitio y velocidad de conexión; sitios grandes pueden tardar minutos u horas.

Una alternativa más eficiente es usar un cliente FTP potente o herramientas de sincronización que descargan solo archivos nuevos, evitando transferir archivos que no han cambiado.

Paso 3: Crear una base de datos local para el sitio migrado

En tu máquina local, abre phpMyAdmin (http://localhost/phpmyadmin). Crea una nueva base de datos similar al apartado anterior sobre crear bases de datos. Usa un nombre descriptivo que indique el origen, ej. wordpress_remoto_backup, nombre_dominio_dev. Selecciona utf8mb4_unicode_ci como collation, igual que hiciste con la base de datos remota.

Paso 4: Importar la base de datos local

Con la base de datos local creada y vacía, necesitas importar el archivo SQL que descargaste del servidor remoto. En phpMyAdmin local, selecciona la nueva base de datos. Busca la pestaña Import (Importar). Hace clic en Browse o Choose File, y selecciona el archivo .sql que descargaste del servidor remoto.

phpMyAdmin carga el archivo y muestra el contenido. Puedes dejar la mayoría de opciones por defecto. Una opción importante es el conjunto de caracteres (charset): asegura que esté establecida en utf8mb4 para correspondencia con la base de datos remota. Luego haz clic Import o Execute para importar. El proceso puede tomar tiempo dependiendo del tamaño de la base de datos. Una vez completo, ves un mensaje de éxito indicando que todas las tablas han sido importadas.

Paso 5: Colocar los archivos descargados en htdocs

Los archivos descargados del servidor remoto ahora están en tu máquina local. Muévelos al directorio htdocs de XAMPP (C:\xampp\htdocs en Windows, /Applications/XAMPP/htdocs en macOS). Puedes crear una carpeta descriptiva dentro de htdocs para organizarlos (ej. C:\xampp\htdocs\miproyecto_remoto) o colocar el contenido directamente en htdocs si quieres acceder sin subdirectorio.

Paso 6: Actualizar archivo wp-config.php

El archivo wp-config.php descargado contiene credenciales para conectarse a la base de datos remota. Necesitas editarlo para apuntar a tu base de datos local. Abre wp-config.php en un editor de texto (no Word, sino un editor de código como VS Code o Notepad++).

Busca las líneas que definen la base de datos:

define('DB_NAME', 'nombre_base_datos_remota');
define('DB_USER', 'usuario_remoto');
define('DB_PASSWORD', 'contraseña_remota');
define('DB_HOST', 'servidor_remoto.com');

Reemplázalas con los valores locales:

define('DB_NAME', 'wordpress_remoto_backup');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');

Usa el nombre de base de datos, usuario y contraseña que configuraste en tu phpMyAdmin local. En XAMPP por defecto, el usuario es root sin contraseña (vacío), y el host siempre es localhost. Guarda el archivo.

Paso 7: Resolver problemas de URL

En este punto, WordPress está parcialmente funcional pero probablemente mostrará problemas. El mayor problema es que la base de datos contiene URLs absolutas apuntando al dominio remoto. Si tu sitio remoto es misitioweb.com pero ahora está en http://localhost/miproyecto, la base de datos aún contiene referencias a misitioweb.com. Los enlaces internos estarán rotos, las imágenes no cargarán.

Una solución es usar el plugin Better Find and Replace (gratuito) para buscar y reemplazar todas las instancias de la URL remota con la URL local. Instalas el plugin, accedes a Herramientas > Better Find and Replace en el dashboard WordPress local, y reemplazas https://misitioweb.com con http://localhost/miproyecto en toda la base de datos.

Alternativamente, desde línea de comandos usando WP-CLI, ejecutas: wp search-replace 'misitioweb.com' 'localhost/miproyecto' --all-tables. Esto reemplaza todas las instancias en la base de datos.

Paso 8: Verificación final

Accede a la URL local de tu sitio en el navegador (http://localhost/miproyecto o según donde lo colocaste). El sitio debería aparecer idéntico al sitio remoto pero funcionando localmente. Intenta navegar por diferentes páginas, acceder al dashboard con las credenciales del usuario remoto, subir una imagen de prueba. Todo debe funcionar como en remoto pero mucho más rápido porque no hay latencia de red.

Ideas clave

  • Migrar WordPress requiere copiar dos componentes: la base de datos MySQL (exportada como archivo .sql desde phpMyAdmin remoto) y los archivos de servidor (descargados via FTP/SFTP).
  • La base de datos se exporta desde phpMyAdmin remoto como archivo SQL, se crea una base de datos local nueva, y se importa el archivo SQL en phpMyAdmin local.
  • Los archivos descargados del servidor remoto se colocan en htdocs de XAMPP, formando una estructura idéntica a la remota pero en tu máquina local.
  • El archivo wp-config.php debe editarse para apuntar a la base de datos local: cambiar nombre de base de datos, usuario, contraseña y host de localhost.
  • Las URLs hardcodeadas en la base de datos (apuntando al dominio remoto) deben reemplazarse con URLs locales para que todos los enlaces y recursos funcionen correctamente; usa Better Find and Replace plugin o WP-CLI.
  • Después de migración, verifica que el sitio completo funciona localmente, accede al dashboard con credenciales del usuario remoto, y prueba funcionalidad común como subida de archivos.
¿Has terminado este apartado? Tu progreso se guarda en este navegador. Regístrate para conservarlo en tu cuenta.