Planifica antes de migrar
Una migración de WordPress consiste en mover dos cosas: los archivos del sitio y la base de datos. Si copias solo una de ellas terminarás con un sitio roto. Antes de empezar, haz una copia de seguridad completa y bloquea la publicación de contenido nuevo para evitar perder posts creados durante el proceso.
Método 1: plugins de migración
Si no tienes experiencia técnica, plugins como Duplicator, All-in-One WP Migration o Migrate Guru empaquetan archivos y base de datos en un solo archivo. En el hosting de destino instalas WordPress limpio, subes el paquete y el plugin se encarga del resto. Son ideales para sitios pequeños; con sitios muy grandes algunos plugins exigen versión de pago o chocan con el límite de memoria de PHP.
Método 2: migración manual
Es el método más confiable para sitios grandes o cuando algo falla con los plugins. Los pasos son:
- Descargar los archivos: vía FTP/SFTP baja toda la carpeta del sitio, incluyendo
wp-content,wp-config.php,.htaccessy demás. - Exportar la base de datos: entra a phpMyAdmin en el hosting actual, selecciona la base y exporta en formato SQL.
- Subir los archivos al nuevo hosting: sube todo a la carpeta pública (
public_htmlo equivalente) del nuevo servidor. - Importar la base de datos: crea una base nueva en el destino y carga el SQL desde phpMyAdmin.
- Editar wp-config.php: actualiza
DB_NAME,DB_USER,DB_PASSWORDyDB_HOSTcon los datos del nuevo servidor.
Cambiar el site_url en la base de datos
Si además cambias de dominio, debes actualizar las URLs guardadas en la base de datos. Lo más rápido es desde phpMyAdmin ejecutar:
UPDATE wp_options SET option_value = 'https://nuevodominio.com'
WHERE option_name IN ('siteurl', 'home');
Pero eso no cambia URLs dentro del contenido, widgets ni serializaciones. Para eso necesitas un search-replace real.
Search-replace seguro con WP-CLI
WP-CLI maneja correctamente los datos serializados que WordPress usa en metadatos y options:
wp search-replace 'https://viejodominio.com' 'https://nuevodominio.com' --all-tables --dry-run wp search-replace 'https://viejodominio.com' 'https://nuevodominio.com' --all-tables
Ejecuta primero el --dry-run para ver cuántas coincidencias cambiarían antes de aplicar. Si no tienes WP-CLI, el plugin Better Search Replace hace algo equivalente desde el navegador.
Verifica permalinks y enlaces rotos
Entra a Ajustes → Enlaces permanentes y pulsa Guardar sin cambiar nada: eso regenera el .htaccess. Navega por el sitio en una ventana privada, revisa imágenes, formularios, login del admin y caché de plugins. Apunta los DNS al nuevo servidor solo cuando hayas confirmado que todo funciona en el destino.