
Hay momentos en que necesitas cambiar un texto en toda la base de datos de WordPress: cambiaste de dominio, pasaste de http a https, moviste el sitio de una carpeta de prueba a la definitiva, o cambiaste el correo de contacto que aparece en mil lugares.
La tentación es abrir phpMyAdmin y lanzar un UPDATE ... REPLACE(...). Es la forma más rápida de romper widgets, menús y ajustes de plugins sin darte cuenta hasta días después.
Por qué el SQL directo rompe cosas: los datos serializados
WordPress y sus plugins guardan muchos ajustes como datos serializados: un formato de PHP que, junto a cada texto, anota cuántos caracteres tiene. Por ejemplo:
s:22:"http://tudominio.cl/ok";
Ese 22 es el largo exacto del texto. Si reemplazas http:// por https:// con SQL, el texto pasa a tener 23 caracteres pero el número sigue diciendo 22. PHP ya no puede leer ese dato y el plugin o el widget lo trata como vacío: pierdes la configuración.
Las herramientas de esta guía entienden la serialización: leen cada dato, hacen el reemplazo y vuelven a calcular los largos. Por eso son seguras.
Método 1: WP-CLI (el recomendado)
Si tienes acceso SSH o la Terminal de cPanel, WP-CLI tiene el comando search-replace, que es rápido incluso en bases de datos grandes.
cd ~/public_html
# 1. Respaldo, siempre
wp db export antes-del-reemplazo.sql
# 2. Simulación: dice cuántos cambios haría, sin tocar nada
wp search-replace 'http://tudominio.cl' 'https://tudominio.cl' --all-tables-with-prefix --skip-columns=guid --dry-run
# 3. Si la simulación se ve bien, ahora de verdad
wp search-replace 'http://tudominio.cl' 'https://tudominio.cl' --all-tables-with-prefix --skip-columns=guid --report-changed-only
# 4. Vaciar cachés
wp cache flush
Qué hace cada opción:
--all-tables-with-prefix: incluye las tablas de plugins que usan tu prefijo (por ejemplo, las de WooCommerce o de un plugin de formularios), no solo las de WordPress.--skip-columns=guid: no toca la columnaguid, que identifica cada entrada en los feeds y no debe cambiar después de publicar.--dry-run: simula. Úsalo siempre primero.--report-changed-only: en el resumen final, muestra solo las tablas donde hubo cambios.
La trampa: URLs escapadas
El editor de bloques y muchos constructores visuales guardan parte de sus datos en formato JSON, donde las barras van escapadas: https:\/\/tudominio.cl en lugar de https://tudominio.cl. Un reemplazo normal no las encuentra.
Después del reemplazo principal, busca si quedan:
wp db search 'http:\/\/tudominio.cl' --all-tables-with-prefix --stats
Si aparecen, haz un segundo reemplazo con la versión escapada:
wp search-replace 'http:\/\/tudominio.cl' 'https:\/\/tudominio.cl' --all-tables-with-prefix --skip-columns=guid --dry-run
Y repite sin --dry-run si la simulación encuentra lo esperado.
Cuidado con los reemplazos cortos. Reemplazar tudominio por nuevodominio sin el https:// puede cambiar también correos ([email protected]), nombres de archivo o textos que no querías tocar. Usa siempre la dirección completa, con el protocolo.
Método 2: un plugin (sin terminal)
Si no tienes SSH, el plugin gratuito Better Search Replace hace lo mismo desde el escritorio:
- Haz un respaldo de la base de datos.
- Ve a Herramientas → Better Search Replace.
- Escribe el texto a buscar y el nuevo, y selecciona todas las tablas.
- Deja marcada la opción Ejecutar en modo de prueba (dry run) y pulsa Ejecutar.
- Revisa el resultado; si está bien, desmarca la prueba y ejecuta de nuevo.
- Cuando termines, desactiva y borra el plugin: no conviene dejar una herramienta así disponible en el escritorio.
Nivel pro: migrar sin tocar el sitio en vivo
Si vas a mover un sitio a otro dominio, puedes generar un archivo SQL ya reemplazado sin modificar la base de datos original:
wp search-replace 'https://prueba.tudominio.cl' 'https://tudominio.cl' --all-tables-with-prefix --skip-columns=guid --export=migracion.sql
El sitio de prueba queda intacto y en migracion.sql tienes la base lista para importar en el sitio definitivo con wp db import migracion.sql.
Después del reemplazo
- Vacía la caché del plugin de caché, de Cloudflare y del hosting.
- Si cambiaste el dominio, entra a Ajustes → Enlaces permanentes y pulsa Guardar para regenerar las reglas.
- Si usas un constructor visual, busca en sus herramientas una opción tipo «Regenerar CSS» o «Reemplazar URL»: algunos guardan archivos CSS con las direcciones antiguas.
- Revisa algunas páginas, los menús, los widgets y los formularios.
¿La simulación te da un número de cambios que no esperabas? Comparte en el foro el comando que usaste y el resumen (sin datos privados) y lo revisamos antes de ejecutarlo de verdad.





