Saltar al contenido
Herramientas

SQL de buscar y reemplazar

Cambia la URL de tu sitio sin corromper los datos serializados

Funciona en tu navegador. No se sube nada.

El cambio

Lee esto antes de ejecutar nada

WordPress almacena muchas opciones como cadenas PHP-serialized, y una cadena serializada registra su propia longitud en bytes: s:19:"http://old-site.com". Un reemplazo SQL simple cambia el texto pero no la longitud, así que PHP ya no puede deserializar la fila. No da error. El valor simplemente se queda vacío en silencio.

Lo que pierdes: la configuración de los widgets, las personalizaciones del tema y la mayoría de los ajustes de los plugins. Normalmente no te das cuenta hasta días después, y para entonces la copia de seguridad que habrías restaurado también ha desaparecido.

Por eso las consultas de abajo deliberadamente no tocan wp_options.

¿Qué estás migrando?
search-replace.sql

Haz primero una copia de seguridad de la base de datos. No «plantéate hacerla» — hazla. No hay forma de deshacer un UPDATE.

Sobre SQL de buscar y reemplazar

Un buscar y reemplazar de SQL ingenuo en una base de datos de WordPress rompe todas las opciones serializadas que toca, porque la longitud de la cadena almacenada deja de coincidir. Esto genera las consultas que son seguras y explica exactamente cuáles no lo son.

Preguntas frecuentes

Preguntas

¿Puedo cambiar la URL de mi sitio WordPress con un buscar y reemplazar SQL?

No de forma segura, y este es el mal consejo que más se comparte en WordPress. Muchas opciones se guardan como cadenas serializadas de PHP que registran su propia longitud en bytes. Un reemplazo SQL simple cambia el texto pero no la longitud, así que PHP falla en silencio al deserializar la fila y el valor simplemente desaparece, llevándose con él los ajustes de widgets, las modificaciones del tema y la configuración de plugins.

¿Qué debería usar en su lugar?

WP-CLI: 'wp search-replace old new --all-tables --dry-run' primero, y luego sin --dry-run. Entiende la serialización y reescribe correctamente los prefijos de longitud. Si no tienes acceso a la CLI, el plugin Better Search Replace hace lo mismo desde el escritorio.

¿Debería actualizar la columna GUID?

No. El GUID es un identificador único permanente de una entrada, no un enlace, y los lectores de feeds se guían por él. Reescribirlo hace que cada suscriptor vea cada entrada antigua como nueva. La documentación de WordPress dice explícitamente que no lo cambies.