Cambiar el dominio de un WordPress no es «apuntar el DNS y ya». Las URLs viven en la base de datos, muchas en cadenas serializadas de PHP. Un REPLACE bruto en phpMyAdmin puede dejar widgets, constructores y el customizer rotos. Por eso el orden es: copia primero, luego las dos opciones de siteurl y home, y para el resto del contenido un reemplazo que respete serializados (Better Search Replace) o un reemplazo muy acotado en phpMyAdmin.

El hosting sigue siendo el mismo sitio elástico. El nombre nuevo tiene que existir en la cuenta: dominio y subdominio en cPanel. El DNS, al final, como en cualquier mudanza: migrar WordPress.

Qué vas a tener al terminar

El sitio sirviendo en https://www.dominio-nuevo.co (o el canónico que elijas), con el administrador abriendo, sin mixto eterno. Una copia en JetBackup de antes del reemplazo.

0. Backup, no es adorno

cPanel → JetBackup: cuenta o al menos archivos + base, de hoy. El paso a paso: cómo utilizar JetBackup. Si el reemplazo sale mal, restaurar es más barato que «deshacer a mano» mil posts.

Anota la URL vieja y la nueva exactas: con o sin www, con https. Mezclar http://dominio.co y https://www.dominio.co deja mitades. Elige un canónico; el otro se redirige después.

1. El mínimo en phpMyAdmin (siempre)

  1. cPanel → phpMyAdmin → la base de ese WordPress.
  2. Tabla de opciones (suele ser wp_options; el prefijo puede ser otro).
  3. Busca las filas siteurl y home. Deben quedar con la URL nueva, con https si ya vas a servir SSL.

Eso saca el administrador del dominio viejo. Aún faltan posts, metadatos y opciones serializadas.

También puedes fijar en wp-config.php las constantes WP_HOME y WP_SITEURL con la URL nueva. Sirve de ancla. No sustituye el reemplazo del contenido.

2. Better Search Replace (el camino que menos rompe)

Con el sitio aún accesible (aunque sea por el dominio viejo o por hosts), instala el plugin Better Search Replace, el de wordpress.org. No hace falta nombrar a nadie más.

  1. Primero dry run (simulación): URL vieja → URL nueva, todas las tablas de esa instalación.
  2. Mira el conteo. Si sale cero, la cadena no coincide (www, barra final, http).
  3. Cuando el conteo tenga sentido, corre el reemplazo real.
  4. Desactiva el plugin. No lo dejes de adorno.

Ese plugin entiende serializados. Un UPDATE ... REPLACE() en todas las columnas, no.

3. phpMyAdmin: search-replace con pulso

Si no puedes instalar plugins (sitio caído, solo phpMyAdmin), puedes buscar en wp_posts y wp_postmeta la URL vieja y reemplazar después de haber respaldado. Evita las tablas de opciones que son objetos serializados largos, o restaura JetBackup al primer widget roto.

La pestaña Buscar de phpMyAdmin sirve para ver cuántas filas hay. El reemplazo masivo, solo si sabes lo que tocas. Ante la duda, ticket y la copia de hoy.

4. www, correo en el contenido y cookies

Si pasas de dominio.co a www.dominio.co (o al revés), trata eso como un cambio de URL completo: las dos formas tienen que quedar reemplazadas, y una sola será canónica. El otro host se redirige después en cPanel. Mezclar las dos en la base deja CSS y admin a medias.

Tras el reemplazo, cierra sesión y entra otra vez: las cookies del dominio viejo no sirven. Si el administrador redirige al host anterior, siteurl o las constantes de wp-config.php no quedaron alineadas. Revísalas antes de un segundo reemplazo.

Los correos ya enviados y los PDF no se reescriben. El contenido de entradas y de Elementor sí, si corriste Better Search Replace bien.

5. SSL, permalinks, caché

Cuando el dominio nuevo resuelva aquí, AutoSSL en cPanel: estado SSL/TLS. Mientras tanto, HTTPS en WordPress.

Guarda Enlaces permanentes. Vacía LiteSpeed Cache: vaciar la caché. Si el home abre y el resto 404: 404 en todo el sitio.

Si no sale

No hagas un segundo REPLACE encima del primero. Restaura JetBackup y abre el ticket con dominio viejo, dominio nuevo y «ya hay backup de hoy». Guía: crear un ticket.

Cloud Web Hosting · JetBackup · Ticket