Guia completa para actualizar URLs de forma segura al migrar WordPress. Manejo de datos serializados, WP-CLI y mejores prácticas para evitar romper su sitio.
ES

Migración de URLs en la base de datos WordPress: Guia completa 2026

5.00 /5 - (23 votes )
Última verificación: 1 de mayo de 2026
5min de lectura
Guía
Arquitectura de servidores

Mover un sitio WordPress (ej. de dev.site.com a site.com) parece simple: solo ejecute un “Buscar y Reemplazar” en la base de datos, verdad?

Conozca más sobre la migración de sitios web a Astro y Next.js en WPPoland. INCORRECTO.

Si intenta ejecutar una consulta SQL cruda como: UPDATE wp_options SET option_value = replace(option_value, 'old.com', 'new.com')

…rompera su sitio. Especificamente, perdera Widgets, Opciones de Tema y algunas configuraciónes de Plugins.

#El error comun: Buscar y reemplazar simple

Muchos desarrolladores (e incluso algunos proveedores de hosting) sugieren usar una simple función SQL REPLACE() para actualizar URLs. Este enfoque parece lógico pero es fundamentalmente defectuoso.

La tentacion:

-- Esto parece seguro, pero NO lo es
UPDATE wp_options
SET option_value = REPLACE(option_value, 'https://old.com', 'https://new.com');

Que sucede:

  • Algunas URLs se actualizan correctamente
  • Los datos serializados se corrompen
  • Los widgets desaparecen
  • Las opciones de tema se rompen
  • Las configuraciónes de plugins se pierden
  • El sitio queda parcialmente roto

Por que falla: WordPress no almacena datos como texto plano. Gran parte se almacena como datos PHP serializados, que requieren manejo especial.

#Entendiendo los datos serializados: El problema central

#Que es la serializacion?

WordPress almacena datos complejos (arrays, objetos) en la base de datos como cadenas serializadas. La serializacion convierte estructuras de datos PHP en cadenas que pueden almacenarse en la base de datos.

Ejemplo de datos serializados:

// Array PHP original
array(
    'home' => 'https://old.com',
    'siteurl' => 'https://old.com',
    'admin_email' => 'admin@old.com'
)

// Cadena serializada (almacenada en la base de datos)
a:3:{s:4:"home";s:17:"https://old.com";s:7:"siteurl";s:17:"https://old.com";s:11:"admin_email";s:15:"admin@old.com";}

#Desglose de la cadena serializada

Decodifiquemos a:3:{s:4:"home";s:17:"https://old.com";...}:

  • a:3 = array con 3 elementos
  • s:4:"home" = cadena, 4 caracteres, valor “home”
  • s:17:"https://old.com" = cadena, 17 caracteres, valor “https://old.com

La parte crítica: El número 17 representa el conteo exacto de caracteres de la cadena "https://old.com".

#Que ocurre con un reemplazo simple?

Original:

s:17:"https://old.com"

Despues del reemplazo simple (old.com a new-domain.com):

s:17:"https://new-domain.com"

El problema:

  • La longitud de la cadena cambio de 17 a 23 caracteres
  • La serializacion aun dice s:17 (espera 17 caracteres)
  • PHP intenta leer 17 caracteres: "https://new-domain"
  • Falta la parte .com
  • El array completo se vuelve invalido
  • Los datos se corrompen

#La solución: Herramientas conscientes de serializacion

Necesita una herramienta que:

  1. Deserialice los datos (convierta la cadena de vuelta a un array PHP)
  2. Reemplace el texto dentro del array
  3. Recalcule los conteos de caracteres
  4. Reserialice los datos (convierta de vuelta a cadena)
  5. Actualice la base de datos

#Método 1: WP-CLI (recomendado)

La forma profesional: Si tiene acceso SSH, WP-CLI es la mejor herramienta para el trabajo.

Uso básico:

wp search-replace 'https://old.com' 'https://new.com' --all-tables

Opciones avanzadas:

## Prueba en seco (ver que cambiaria)
wp search-replace 'https://old.com' 'https://new.com' --all-tables --dry-run

## Solo tablas específicas
wp search-replace 'https://old.com' 'https://new.com' wp_posts wp_postmeta

## Omitir columnas específicas
wp search-replace 'https://old.com' 'https://new.com' --all-tables --skip-columns=guid

## Exportar cambios a archivo SQL primero
wp search-replace 'https://old.com' 'https://new.com' --all-tables --export=changes.sql

Por que WP-CLI es la mejor opción:

  • Maneja la serializacion correctamente
  • Rápido y eficiente
  • Puede previsualizar cambios (dry-run)
  • Control por linea de comandos
  • Scriptable y automatizable
  • Sin sobrecarga de plugins

#Método 2: Plugin Better Search Replace

Para usuarios sin linea de comandos: Si no tiene acceso SSH, use el plugin Better Search Replace de WP Engine.

Uso:

  1. Vaya a Herramientas > Better Search Replace
  2. Ingrese URL antigua: https://old.com
  3. Ingrese URL nueva: https://new.com
  4. Seleccione tablas (o marque “Seleccionar todas”)
  5. Importante: Marque “Ejecutar como prueba en seco?” primero
  6. Haga clic en “Ejecutar buscar/reemplazar”
  7. Revise los resultados
  8. Desmarque “Ejecutar como prueba en seco?”
  9. Haga clic en “Ejecutar buscar/reemplazar” nuevamente para ejecutar

#Lista de verificación de migración completa

#Antes de la migración

1. Hacer backup de todo:

## Backup de base de datos
wp db export backup.sql

## Backup de archivos
tar -czf site-backup.tar.gz /path/to/wordpress

2. Probar en staging:

  • Nunca pruebe en producción
  • Use entorno de staging
  • Verifique toda la funcionalidad

#Durante la migración

1. Actualizar URLs de base de datos:

## Usando WP-CLI
wp search-replace 'https://old.com' 'https://new.com' --all-tables --dry-run
wp search-replace 'https://old.com' 'https://new.com' --all-tables

2. Actualizar wp-config.php:

define('WP_HOME','https://new.com');
define('WP_SITEURL','https://new.com');

#Despues de la migración

1. Verificar URLs:

  • Verificar página principal
  • Probar enlaces internos
  • Verificar que las imágenes cargan
  • Verificar area de administración

2. Actualizar Search Console:

  • Agregar nueva propiedad
  • Enviar sitemap
  • Solicitar indexacion

3. Limpiar caches:

## Limpiar todos los transients
wp transient delete --all

## Optimizar tablas
wp db optimize

#Escenarios comunes de migración

#Staging a producción

wp search-replace 'staging.site.com' 'site.com' --all-tables

#HTTP a HTTPS

wp search-replace 'http://site.com' 'https://site.com' --all-tables

#Cambio de dominio

wp search-replace 'old-domain.com' 'new-domain.com' --all-tables

#Resolución de problemas

#Los widgets desaparecieron

Causa: Datos serializados corrompidos Solución: Restaure desde su backup y use una herramienta consciente de serializacion.

#Opciones de tema se restablecieron

Causa: Mods de tema corrompidos Solución: Restaure desde backup si esta corrupto.

#Imágenes no cargan

Causa: URLs de imágenes no actualizadas Solución:

wp search-replace 'https://old.com/wp-content' 'https://new.com/wp-content' --all-tables

#Mejores prácticas

  1. Siempre haga backup primero
  2. Use prueba en seco primero
  3. Actualice multiples patrones (HTTP y HTTPS, con y sin www)
  4. Verifique despues de la migración
  5. Actualice archivos de configuración (wp-config.php, .htaccess)

Conclusion clave: WordPress usa datos serializados extensivamente. El buscar y reemplazar simple rompe estos datos. Siempre use herramientas que entiendan la serializacion. El comando search-replace de WP-CLI es el estándar de oro: es rápido, seguro y maneja todos los casos extremos correctamente.

Conozca más sobre los servicios de desarrollo WordPress y la migración a Astro y Next.js en WPPoland.

Siguiente paso

Transforma el artículo en una implementación real

Este bloque refuerza el enlazado interno y lleva al lector al siguiente paso más útil dentro de la arquitectura del sitio.

¿Quieres implementar esto en tu sitio?

Si quieres transformar el artículo en mejoras concretas, rediseño o un plan de implementación, puedo cerrar el alcance y ejecutar.

Cluster relacionado

Explora otros servicios WordPress y base de conocimiento

Refuerza tu negocio con soporte técnico profesional en áreas clave del ecosistema WordPress.

Por que no puedo simplemente usar SQL REPLACE() para actualizar URLs?
El simple SQL REPLACE() rompe datos serializados porque no actualiza el conteo de caracteres almacenado en la serializacion. WordPress almacena datos complejos como cadenas serializadas donde cada cadena tiene un prefijo de longitud. Cuando cambia una URL, la longitud cambia pero los datos serializados aun muestran la longitud antigua, causando que PHP lea el número incorrecto de caracteres y corrompa toda la estructura.
Que son los datos serializados en WordPress?
Los datos serializados son la forma de PHP de convertir arrays y objetos en cadenas que pueden almacenarse en una base de datos. WordPress usa serializacion extensivamente para datos de widgets, opciones de tema, configuraciónes de plugins y metadatos de entradas.
Cual método es mejor para sitios WordPress grandes?
WP-CLI es el mejor método para sitios grandes porque es rápido, maneja la serializacion correctamente, puede procesar en lotes y no tiene problemas de timeout que los plugins basados en web enfrentan.
Que debo hacer si los widgets desaparecen despues de la migración?
Si los widgets desaparecen, sus datos serializados fueron corrompidos. Restaure desde su backup inmediatamente usando 'wp db import backup.sql'. Luego re-ejecute la migración usando una herramienta consciente de serializacion como WP-CLI o Better Search Replace.
Necesito actualizar URLs al mover de HTTP a HTTPS?
Si, debe actualizar todas las URLs de HTTP a HTTPS en la base de datos para evitar advertencias de contenido mixto y asegurar que todos los recursos carguen de forma segura.

¿Necesitas un FAQ adaptado a tu sector y mercado? Preparamos una versión alineada con tus objetivos de negocio.

Hablemos

Artículos Relacionados

Aprende como exportar posts, usuarios y datos de WooCommerce de WordPress a CSV o Excel con PHP, WP-CLI o la REST API.
development

Como exportar datos de WordPress a CSV o Excel

Aprende como exportar posts, usuarios y datos de WooCommerce de WordPress a CSV o Excel con PHP, WP-CLI o la REST API.

Una guía completa de endurecimiento de seguridad WordPress para 2026 - configuración de servidor, autenticación con Passkeys, configuración WAF, cabeceras CSP, protección de base de datos, seguridad headless y una checklist de auditoría de 25 puntos.
wordpress

Endurecimiento de Seguridad WordPress 2026: La Guía Completa del Servidor a la Aplicación

Una guía completa de endurecimiento de seguridad WordPress para 2026 - configuración de servidor, autenticación con Passkeys, configuración WAF, cabeceras CSP, protección de base de datos, seguridad headless y una checklist de auditoría de 25 puntos.

Guía completa de WordPress Multisite para despliegues enterprise. Aprende patrones de arquitectura, escalabilidad a 1000+ sitios, hardening de seguridad, mapeo de dominios, gestión de usuarios y optimización de costes para redes de franquicias, universidades y organismos gubernamentales.
wordpress

WordPress Multisite para Enterprise: Arquitectura, Escalabilidad y Mejores Prácticas

Guía completa de WordPress Multisite para despliegues enterprise. Aprende patrones de arquitectura, escalabilidad a 1000+ sitios, hardening de seguridad, mapeo de dominios, gestión de usuarios y optimización de costes para redes de franquicias, universidades y organismos gubernamentales.