Migrar un Sitio WordPress Sin Cortes ni Pérdida de SEO

Cómo migrar tu sitio WordPress de un proveedor a otro manteniendo las URLs, el SSL y el SEO intactos.

Introducción

Migrar un sitio WordPress a menudo asusta: miedo al corte, a la pérdida de posicionamiento, a los datos corruptos. Con el método correcto, una migración WordPress puede ser invisible para tus visitantes y Google.

Esta guía cubre dos enfoques: el método con plugin (rápido, recomendado para < 1 GB) y el método manual (más controlado, para sitios grandes). También encontrarás los pasos preparatorios (TTL DNS, auditoría de plugins), la checklist post-migración (SSL, redirecciones, sitemap Google) y la lista de trampas a evitar que hacen perder SEO o rompen un sitio (mala migración de la base con cadenas serializadas, olvido del wp-config, certificados SSL mal renovados).

Antes de la migración: preparar el terreno

Una migración WordPress exitosa empieza 48h antes del cambio. Tres acciones preparatorias limitan drásticamente los riesgos:

  1. Reducir el TTL DNS de tu dominio a 300 segundos (5 min) al menos 48h antes de la migración. El TTL estándar es 3600-86400s, lo que puede extender la propagación hasta 24h tras el cambio. Con TTL 300s, la propagación es típicamente < 30 min. Modificable en tu registrar (OVH, Gandi, Cloudflare).
  2. Auditar plugins y temas antes de migrar. Elimina los plugins inactivos, los marcados "no compatible con tu versión PHP" y los temas no usados. Un sitio WordPress de 5 años acumula típicamente 30-50% de plugins obsoletos o duplicados. La migración es la ocasión para limpiar.
  3. Listar los elementos críticos: versión PHP usada (verificar wp-admin/site-health.php), base de datos (tamaño, versión MySQL/MariaDB), extensiones PHP requeridas (imagick, curl, mbstring, gd), tareas cron, certificados SSL, redirecciones .htaccess custom. Estas infos sirven para reproducir el entorno idéntico.
  4. Modo mantenimiento opcional: si puedes permitirte 15 min de indisponibilidad, el plugin WP Maintenance Mode muestra una página de espera durante el cambio. Para sitios e-commerce o muy frecuentados, prefiere la migración progresiva sin mantenimiento.

Método 1: con plugin (recomendado)

  1. Backup completo antes de migrar: UpdraftPlus, BackWPup o All-in-One WP Migration
  2. Instalar WordPress vacío en el nuevo hosting
  3. Restaurar el backup vía el plugin
  4. Probar el sitio en la IP/subdominio temporal del nuevo proveedor
  5. Cambiar los DNS del dominio al nuevo proveedor (con TTL corto)
  6. Renovar el SSL en el nuevo proveedor tras propagación DNS

Método 2: migración manual (sitios grandes, e-commerce)

Para sitios > 1 GB o WooCommerce con miles de pedidos, el método manual es más fiable. Pasos:

  1. Exportar la base de datos vía phpMyAdmin o por SSH: mysqldump -u user -p mi_base > db_backup.sql. Para sitios grandes, añade --single-transaction --quick para evitar bloquear la base.
  2. Copiar los archivos WordPress vía FTP/SFTP o rsync: rsync -avz -e ssh ./wp-content/ user@nuevo-servidor:/var/www/html/wp-content/. El rsync incremental es ideal para reducir el tiempo de transferencia.
  3. Crear la nueva base en el nuevo proveedor (cPanel/Plesk → MySQL Databases), luego importar: mysql -u user -p mi_base_nueva < db_backup.sql.
  4. Adaptar wp-config.php con las nuevas credenciales de base (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST). Conserva las mismas claves de seguridad (AUTH_KEY, etc.) para no desconectar a los usuarios.
  5. Actualizar las URLs si cambian: si migras también tu dominio, usa WP-CLI (wp search-replace 'antiguo-dominio.com' 'nuevo-dominio.com' --skip-columns=guid) que gestiona correctamente las cadenas serializadas (PHP serialize). Un simple SQL UPDATE rompería los widgets y opciones serializadas.
  6. Probar en subdominio temporal: migration.nuevo-servidor.com vía modificación del archivo hosts local (sin tocar el DNS público). Valida: página de inicio, artículos, formularios, pagos (si e-commerce), emails transaccionales.
  7. Cambio DNS: actualiza los registros A/AAAA en tu registrar. Con TTL 300s preparado de antemano, la propagación se hace en pocos minutos.

Método 3: migración gratuita por By-Hoster

Si migras a By-Hoster, nuestro equipo técnico realiza la migración gratuitamente. Proporcionas tus accesos FTP/cPanel del proveedor anterior y nosotros nos encargamos de todo, sin cortes, en 24-48h. Incluye: transferencia archivos + base, reconfiguración wp-config, generación SSL Let's Encrypt, pruebas post-migración, cambio DNS coordinado. Conservas acceso a tu antiguo hosting durante 14 días para validación.

Checklist post-migración: 12 puntos a verificar

Una migración no está terminada cuando el DNS apunta al nuevo servidor. Aquí las 12 verificaciones cruciales en las 24h tras el cambio:

  • Sitio accesible en HTTP y HTTPS: prueba en 3-4 navegadores y un móvil. Verifica las páginas principales (inicio, contacto, carrito si e-commerce).
  • SSL Let's Encrypt generado y activo: curl -I https://tudominio.com debe retornar 200 OK con un certificado válido. Retraso post-DNS: 5-30 min.
  • Permalinks funcionales: verifica 5-10 artículos aleatorios. Si error 404, ve a wp-admin → Ajustes → Permalinks y haz clic "Guardar" (regenera .htaccess).
  • Imágenes cargadas: un Ctrl+F5 en el home. Si imágenes faltantes, verifica los permisos wp-content/uploads (755 carpetas, 644 archivos).
  • Formularios de contacto: envía un mensaje de prueba. Verifica recepción email. Si falla, configura SMTP (WP Mail SMTP) con un servicio externo (Mailgun, SendGrid).
  • Conexión wp-admin: login + 2FA si activado. Si error "Cookies bloqueados", vacía la caché del navegador e intenta en navegación privada.
  • WooCommerce (si aplica): efectúa una compra de prueba (modo "test" Stripe/PayPal). Verifica emails de confirmación, actualización de stocks, generación factura PDF.
  • Cron WordPress: verifica que las tareas planificadas se ejecutan (wp cron event list vía WP-CLI). Desactiva WP-Cron nativo y configura un cron del sistema: * * * * * curl https://tudominio.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1.
  • Rendimiento: test PageSpeed Insights. Si puntuación < 80, verifica activación de caché (LiteSpeed Cache, WP Rocket, W3 Total Cache), compresión Brotli/Gzip, lazy-loading imágenes.
  • Sitemap enviado a Google Search Console: si la IP cambió, Google puede tardar 24-72h en recrawlear. Fuerza vía Search Console → Sitemaps → enviar URL.
  • Antiguas redirecciones 301: si migras también el dominio, configura los 301 en el antiguo proveedor vía .htaccess: RewriteRule ^(.*)$ https://nuevo-dominio.com/$1 [R=301,L]. Mantén 12 meses mínimo para conservar el link juice SEO.
  • Monitoreo 24h: un servicio gratuito como UptimeRobot o Hyperping detecta los cortes y alerta por email/SMS. Vigila también los logs de error PHP (tail -f /var/log/php/error.log) durante las primeras 48 horas.

Trampas frecuentes y cómo evitarlas

  • Cadenas serializadas rotas: si migras con un SQL Find & Replace ingenuo, las opciones PHP serializadas (widgets, customizer, page builders) se rompen. Usa SIEMPRE WP-CLI o un plugin Better Search Replace que gestiona la serialización.
  • SSL no renovado tras migración: Let's Encrypt debe ser regenerado en el nuevo proveedor porque está ligado a la IP/dominio. Los antiguos certificados no migran.
  • Mal wp-config.php: olvidar actualizar DB_HOST (a veces "localhost", a veces una IP), o dejar antiguas configs WP_DEBUG=true exponiendo errores en producción.
  • Cron nativo WordPress no reemplazado: en el antiguo hosting, WP-Cron se ejecutaba con tráfico. Si olvidas desactivar WP-Cron nativo y configurar un verdadero cron del sistema, las tareas planificadas (backups, envío de newsletters, actualización PMI) ya no se ejecutan correctamente.
  • Caché obsoleto: antiguo caché CDN (Cloudflare, BunnyCDN) que sigue apuntando al antiguo servidor. Purga la caché tras la migración: Cloudflare → "Purge Everything", BunnyCDN → "Clear Cache".
  • Sitemap XML roto: Yoast/Rank Math regeneran automáticamente, pero verifica accesible en https://tudominio.com/sitemap_index.xml. Reenvía a Search Console.
  • Mala propagación DNS: si el antiguo TTL se quedó en 24h, algunos visitantes ven aún el antiguo sitio durante 24h. Por eso el paso a TTL 300s antes de la migración es crucial.

Preguntas frecuentes

No, si mantienes exactamente las mismas URLs y la propagación DNS se hace limpiamente (TTL corto antes de la migración). Google solo ve una IP diferente, el contenido y la estructura permanecen idénticos.

Para un sitio estándar de < 1 GB con el método plugin: 1 a 3 horas. Para un sitio medio 1-5 GB método manual: 4 a 8 horas. Para un gran e-commerce con miles de productos: 1 a 2 días (preparación, pruebas, cambio programado). La migración gratuita By-Hoster lleva típicamente 24-48h en modo coordinado contigo.

Si conservas el mismo dominio: no, Google detecta automáticamente el cambio de IP en 24-72h. Si cambias de dominio: , usa la herramienta "Cambio de dirección" de Google Search Console tras haber configurado las redirecciones 301. Si no, pierdes las posiciones adquiridas.

Con el método plugin y un TTL DNS corto, la indisponibilidad es típicamente de 0 a 5 minutos (el tiempo de propagación DNS). Con el método manual bien preparado, se puede apuntar a 0 cortes configurando el nuevo servidor en paralelo, probando vía el archivo hosts local, luego cambiando el DNS cuando todo está validado.

Necesitamos: acceso SFTP o FTP al antiguo hosting (solo lectura basta), acceso phpMyAdmin o export SQL de la base de datos, y acceso al gestor DNS (registrar: OVH, Gandi, Cloudflare, etc.) para cambiar los registros en el momento. Ninguna información sensible se conserva tras la migración.

No, pero hay que desactivar los plugins de caché antes del export (W3 Total Cache, WP Rocket, LiteSpeed Cache) para evitar archivos caché obsoletos que pueden causar errores en el nuevo servidor. Reactívalos tras la migración y vacía la caché. Para plugins de seguridad (Wordfence, Sucuri), lo mismo: desactivar antes del export, reactivar después.

Sí, pero es más complejo porque WordPress.com (la versión alojada) limita el acceso a los archivos. El método: 1) Exportar el contenido vía Herramientas → Exportar en wp-admin (genera un XML). 2) Instalar WordPress.org en tu hosting. 3) Importar el XML vía Herramientas → Importar → WordPress. Este método importa artículos, páginas, medios, comentarios, pero no los temas de pago WordPress.com (a recomprar o reemplazar). Cuenta 4-8h con ajustes visuales.