blog webempresa

Cambiar el dominio de WordPress

por | Jul 14, 2023 | Migraciones en WordPress

Imagen destacada - Cambiar el dominio de WordPress

Hay varias formas de cambiar dominio de WordPress, es decir, una web que funciona bajo un dominio, hacer que trabaje con otro dominio diferente, algo que puede ser necesario llevar a cabo, por diversas razones, y en este artículo trato de explicarte cómo se realiza.

El proceso para cambiar el dominio de WordPress otro no es algo tan sencillo como puede parecer a primera vista, ya que en la base de datos de la web habrá varias referencias al antiguo dominio, ya sea por la propia configuración del WordPress, por los enlaces internos o por las imágenes que se estén cargando.

Inicialmente lo mejor es utilizar plugins como Better Search Replace para realizar dicho cambio de manera segura y contenida, en lugar de hacerlo manualmente interviniendo archivos y la base de datos.

Nada tiene que ver este proceso con el de cambiar una URL temporal a un dominio definitivo tras finalizar su diseño y puesta en marcha.

En este artículo el cambio explicado puede aplicarse a una web que lleve ya tiempo en producción, en la que realizar este tipo de tareas puede afectar directamente al posicionamiento y al SEO del sitio, motivo por el cual hay que realizar los pasos de forma medida y analizando los resultados a medida que avanzas en el proceso de cambios.

Sitio WordPress migrado con la URL anterior aún reflejada en el archivo wp-config.php

Si te surgen dudas, y crees que te puedes liar con el proceso, es mejor que te pongas en contacto con tu Soporte y que ellos te ayuden con los pasos a seguir, que seguro será lo mejor para tu web, ya que el cambio lo realizarán de forma controlada.

  Apunta el nuevo dominio al servidor donde está la web

 

Este paso es esencial que lo realices antes de empezar con el reemplazo de URL en WordPress, de forma que el nuevo dominio responda los DNS en el Hosting donde lo vayas a utilizar y evites así contratiempos.

Si el cambio de dominio lo vas a realizar en el mismo Hosting donde tienes la web “origen” con el dominio anterior, primero debes añadir como “dominio adicional” el dominio al que apuntarás la web a la que quieres cambiarle el dominio.

Esto lo realizas desde tu Panel de Hosting ➜ Dominios ➜ Dominios Adicionales, donde tienes que añadirlo, asegurándote previamente, en tu cuenta de cliente del Hosting, que dicho dominio apunta los DNS al Hosting contratado, de lo contrario no te funcionará.

Añadir dominio adicional al panel de hosting WePanel

De esta manera te aseguras que el dominio queda asociado al Hosting correspondiente y a la carpeta donde estará la instalación con el dominio destino, que puede ser la misma carpeta donde ya tengas la web “origen” u otra carpeta limpia donde restaures una copia del sitio original para aplicarle el cambio de dominio con Better Search Replace.

Con wetools, herramienta de Webempresa, puedes comprobar a qué DNS apunta el dominio que quieres utilizar, para saber si son correctas o si debes modificarlas.

Comprobación de DNS del dominio con wetools de Webempresa

Cuando el dominio ya esté apuntando los DNS al Hosting donde lo vas a utilizar y la propagación de DNS se haya completado (dependiendo del TLD de dominio, pueden tardar más o menos tiempo en propagarse), entonces podrás utilizarlo para hacer el cambio de dominio en tu instalación de WordPress.

Ten muy en cuenta que un dominio no puede gestionarse en dos cuentas de Hosting diferentes porque no te funcionará, pues solo obedece a unos DNS específicos.

  Cambiar el nombre de dominio dentro de WePanel

 

Una de las acciones que debes realizar en el alojamiento web de destino de la web migrada, clonada a otra carpeta o que sencillamente necesitas que trabaje con un dominio diferente, nuevo o previamente apuntado desde otro proveedor o incluso el mismo, es modificar el nombre del mismo.

Para situarte a lo largo del artículo, el punto de partida de este escenario seria:

https://pruebas.webempresa.eu/realstate/

Donde pruebas.webempresa.eu es el nombre del dominio (en realidad se trata de un subdominio pruebas asociado al dominio webempresa.eu) bajo el que se gestiona la web trasladada a un nuevo alojamiento web.

Y realstate el nombre de la carpeta donde se encuentra alojada la web WordPress en el anterior Hosting.

Ahora se va a utilizar esta web en la carpeta webempresa.cc que es también el nombre del dominio nuevo bajo el que va a funcionar la web como dominio adicional, por lo que no es necesario especificar la carpeta de la web, donde estará alojada, porque la ruta va implícita en el dominio bajo el que va a funcionar.

Con este escenario, muy habitual en traslados o cambios de dominio por las razones que sean, voy a explicarte cómo ha de pasar de llamarse la web desde https://pruebas.webempresa.eu/realstate/ a hacerlo desde la URL https://webempresa.cc eliminando todo rastro de la ruta anterior en la instalación.

No es suficiente con editar el archivo htaccess de WordPress y modificar una ruta por otra, ya que la URL está referenciada en la base de datos en numerosos registros, lo que hace invisible un cambio manual.

¿Cómo puedes realizar el cambio de URL de dominio de un sitio trasladado a otro Hosting? Esto quizás es un poco más complejo de lo que el enunciado de la pregunta fórmula, ya que puede haber muchos escenarios diferentes, por lo que no se aborda el cómo se ha llegado hasta el punto de tener ya en el alojamiento web de destino el sitio WordPress al que se quiere realizar el cambio de dominio, que es el hecho que ocupa este artículo.

En este ejemplo el sitio ya trasladado a un Hosting de Webempresa (puede ser cualquier otro), ya se encuentra en la carpeta public_html/realstate, pero sigue operando con la URL citada al principio de este punto del artículo.

Ahora se quiere que esta URL pase a funcionar en la carpeta webempresa.cc bajo el nombre de dominio de la misma carpeta, es decir, https://webempresa.cc, algo que se puede hacer de varias maneras:

  • Cambio manual de la URL del antiguo dominio al nuevo en varios archivos de la web.
  • Cambio de URL en la base de datos utilizando phpMyAdmin para todos los registros que se encuentren.
  • Cambio de URL utilizando un plugin (Better Search Replace, u otro similar).
  • Clonado del sitio desde la carpeta de origen en el mismo Hosting a otra carpeta de destino en el mismo Hosting, bajo otro dominio, utilizando WPCenter (herramienta de Webempresa).

Es posible que a ti se te ocurran otras opciones, como usar otros conocidos plugins para migrar y sustituir la URL de la web como All In One WP Migration o similares, pero para este caso voy a centrar el ejemplo en el proceso manual del punto 1 y 3 y luego al final desarrollaré el punto 3, haciendo un clonado de la web a otra carpeta y aprovechando el proceso le indicaré a la aplicación de clonado el nuevo dominio que debe figurar para la web.

Si quieres saber cómo, ponte cómodamente en tu silla porque vamos al asunto…

  Cambiar el dominio en el archivo htaccess

 

El primer sitio donde se ve reflejada la URL es en el archivo htaccess, comentado en puntos anteriores, por lo que para que la web migrada, clonada o trasladada (según sea tu caso) primero debes editar este archivo y adaptarlo a la nueva URL de dominio y aquellos ajustes pertinentes que correspondan a este archivo.

Ten en cuenta que el archivo .htaccess está por defecto “oculto” en la mayoría de alojamientos web, por lo que debes activar la opción que corresponda para que te muestre los archivos ocultos, de manera que luego lo puedas encontrar en la carpeta donde has trasladado la web.

Activar la visibilidad de archivos ocultos en WePanel

Localizar el archivo htaccess de WordPress en tu Hosting es sencillo. Luego debes editarlo con el propio editor de código o texto plano que tu Administrador de Archivos incorpore en tu Hosting, para ver qué directivas de Apache incluyen la URL del dominio para cambiarlas por las nuevas y también la ruta de carpeta en caso de existir.

Aquí te dejo un ejemplo de cómo sería el archivo .htaccess original aun haciendo referencia a la URL del dominio antiguo:

<FilesMatch ".(php4|php5|php3|php2|php|phtml)$">
    SetHandler application/x-lsphp74
</FilesMatch>

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !wc-api [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?pruebas.webempresa.eu
RewriteRule ^(.*)$ https://pruebas.webempresa.eu/realstate/$1 [R=301,L,NE]
 
# BEGIN WordPress
# Las directivas (líneas) entre «BEGIN WordPress» y «END WordPress» son
# generadas dinámicamente y solo deberían ser modificadas mediante filtros de WordPress.
# Cualquier cambio en las directivas que hay entre esos marcadores serán sobrescritas.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /realstate/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /realstate/index.php [L]
</IfModule>

# END WordPress

Una vez se edita el archivo y se cambia la URL anterior por la nueva del dominio que gestionará la web, se guardan los cambios en el archivo que quedaría más o menos como este:

<FilesMatch ".(php4|php5|php3|php2|php|phtml)$">
    SetHandler application/x-lsphp74
</FilesMatch>

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !wc-api [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?webempresa.cc
RewriteRule ^(.*)$ https://webempresa.cc/$1 [R=301,L,NE]
 
# BEGIN WordPress
# Las directivas (líneas) entre «BEGIN WordPress» y «END WordPress» son
# generadas dinámicamente y solo deberían ser modificadas mediante filtros de WordPress.
# Cualquier cambio en las directivas que hay entre esos marcadores serán sobrescritas.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /realstate/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Te he marcado los cambios en color rojo para que tengas más claro cuáles son en este archivo.

     Este cambio de URL y ruta de carpeta no hará que la web quede 100 % funcionando bajo el nuevo dominio hasta que no apliques los cambios de URL también en la base de datos de la web.

Dicho esto puedes proceder al siguiente paso…

  Forzar el dominio en el archivo wp-config.php

 

De la misma manera que modificas el archivo .htaccess para cambiar la URL del dominio anterior por el nuevo y las rutas de directivas RewriteRule, puedes «forzar» la URL bajo la que cargará la web, añadiendo unos parámetros en el archivo wp-config.php del sitio web, el cual se localiza en la carpeta principal de la instalación de WordPress afectada.

El contenido de este archivo puede ser similar o parecido al siguiente, salvando los datos relativos a la base de datos y Keys adicionales, que variarán en cada sitio web:

Archivo wp-config.php de WordPress sin defines de ruta

La idea es añadir el siguiente parámetro en el archivo para decirle que a pesar de que las URL de la base de datos sigan haciendo referencia a https://pruebas.webempresa.eu/realstate/ ahora se quiere forzar para que la web responda al dominio https://webempresa.cc/ aunque no se haya modificado para toda la web.

define('WP_SITEURL','https://webempresa.cc/');
define('WP_HOME','https://webempresa.cc/');
define('RELOCATE',true);

Estos defines deben añadirse al principio del archivo wp-config.php, justo después de <?php para que sea lo primero que interprete WordPress al leer el archivo.

Archivo wp-config.php de WordPress con defines de ruta

Naturalmente esto presenta varios problemas:

  • Las URL de imágenes y enlaces internos podrán fallar durante la navegación por el sitio web y acabar cargando la URL anterior.
  • EL SEO y posicionamiento del sitio se verá muy afectado porque en realidad no se ha realizado el cambio completo de rutas.
  • Es posible que Google detecte contenido duplicado al tratar de que este responda a dos dominios diferentes.

Es por eso que este método es más un «apaño temporal» mientras trabajas en la web migrada o trasladada y están verificando la carga del sitio en el nuevo Hosting y llevando a cabo las tareas de cambio de URL, por lo que no deberías considerarlo como un cambio permanente sino como algo temporal.

Resumiendo este punto:

Para poder acceder al dashboard de WordPress de la web migrada debes añadir los siguientes defines en el archivo wp-config.php de forma que puedas luego logearte en el sitio web mientras verificas y completas los procesos de cambio:

  • define(‘WP_SITEURL’,’XXX‘);
  • define(‘WP_HOME’,’XXX‘);
  • define(‘RELOCATE’,true);

Donde XXX para WP_SITEURL y WP_HOME debe ser la URL del dominio bajo el que debe cargar la web.

Una vez que hayas completado los cambios de rutas en la base de datos y todo el sitio web, deberás eliminar dichos defines del archivo wp-config.php eliminando las 3 líneas citadas.

  Reemplazar las URL internas que enlazaban al anterior dominio por el nuevo

 

Esto viene siendo lo que anteriormente definí en una lista como cambio de URL en la base de datos utilizando phpMyAdmin, pues la base de datos contendrá 2 o cientos de URL haciendo referencia al anterior dominio y ruta de carpeta, por lo que si no se modifican se provocará que falle la carga de imágenes y otros elementos del sitio web.

Una forma rápida de saber cuantas URL hay en la base de datos apuntando al anterior sitio web y dominio, en el ejemplo del artículo https://pruebas.webempresa.eu/realstate/, es haciendo una búsqueda SQL a la base de datos de la web trasladada, migrada o clonada, del sitio en destino, para saber la cantidad de tablas y registros afectados que habrá que cambiar.

No es lo mismo localizar 2, 8 o 15 URL y atreverse a cambiarlas manualmente, registro a registro, que encontrar 200 o 1000 URL y eso ya implica el uso de consultas SQL más complejas, por lo que es mucho mejor aventurarse a aplicar la sustitución de URL con un plugin para WordPress o un script PHP.

Búsqueda SQL a la base de datos para ver cuantas URL antiguas hay que cambiar

Al ser un método manual existen bastantes posibilidades de cometer errores en la sustitución de ruta, por lo que lo primero e importante siempre antes de abordar este tipo de cambios es realizar una copia de seguridad de la base de datos.

En el caso de la búsqueda realizada solo se han encontrado 7 registros que contienen el valor https://pruebas.webempresa.eu/realstate/ por lo que se podría realizar manualmente el cambio, editando cada registro y sustituyendo la actual ruta por la nueva, asociada al dominio bajo el que funcionará la web https://webempresa.cc/ de forma que luego los contenidos internos y de medios asociados a la ruta carguen correctamente.

En la siguiente imagen animada te muestro que es relativamente sencillo llevar a cabo la edición manual de cada registro, al ser pocos en hasta conveniente este proceso, pero observando que debes editar el registro correcto y aplicar el cambio de URL correcta, sin olvidar Guardar cambios por cada registro modificado.

Sustituir URL en registros de la base de datos manualmente

Es posible que este proceso tengas que repetirlo una o dos veces si tras los primeros cambios, al realizar de nuevo una búsqueda, aparecen resultados. De la misma forma, se pueden obtener «falsos positivos» y que la búsqueda en la base de datos diga que siguen quedando registros con la antigua URL, pero luego al verificar cada registro de los resultados no encuentres ninguna ruta vieja, es cuestión de paciencia y verificar bien los resultados.

     Este método de cambio de URL es solo recomendado para resultados con pocos registros a cambiar en tablas de la base de datos y no para docenas o centenas de URL a cambiar.

  Redireccionar el anterior dominio al nuevo dominio

 

Otro de los pasos importantes que debes realizar una vez ya has pasado por la fase de sustitución de URL en la base de datos y los archivos htaccess y wp-config.php es aplicar una redirección de dominio, del antiguo al nuevo dominio, para evitar que Google siga indexando contenidos del anterior sitio, aún activo, hacia el nuevo sitio, pues esto afecta de forma importante al SEO y posicionamiento de los contenidos.

Para aplicar la redirección es recomendable utilizar las opciones que tu panel de hosting te facilita para estos casos, y aplicar una redirección 301 permanente para que sea efectiva de forma inmediata y se mantenga el tiempo que sea necesario hasta que Google deje de mostrar resultados con la URL antigua en sus SERPS.

     La redirección la debes aplicar desd el Hosting donde tengas la web antigua o trasladada, que es desde donde «en teoría» debes estar gestionando el anterior dominio para la web a la que le apliques el cambio de dominio.
Aplicar la redirección del dominio en el Hosting anterior

Una vez aplicada la redirección será visible en el Panel de Hosting de origen, donde sigues manteniendo la web anterior que respondía a la URL https://pruebas.webempresa.eu/realstate/ podrás verla ya reflejada.

Redirección aplicada en el Hosting
     Esta redirección la deberás mantener el tiempo que sea necesario y eso pasa necesariamente, sobre todo al principio, las primeras semanas o mes, después del cambio, por comprobar en tu Google Search Console que la redirección no esté devolviendo errores de rastreo, contenido duplicado o errores 404, porque eso afectará directamente a tu posicionamiento para el nuevo dominio.

  Cambiar el dominio de la web clonándola con WPCenter

 

Si eres cliente de Webempresa y tienes un Hosting contratado, tienes la posibilidad de hacer un «todo en uno» y llevar a cabo el clonado de una web que tengas en una carpeta, que puedes haber trasladado previamente desde otro Hosting de forma manual, y en la fase de clonación o duplicado de la web a la carpeta definitiva donde está apuntado el nuevo dominio que va a gestionar la web realizar el cambio de URL.

La herramienta se llama WPCenter, está desarrollada por el equipo DevOps de Webempresa y una de sus funcionalidades es el clonado de un sitio web, algo muy útil porque realizas todo el proceso a la vez, de forma automática y sin posibilidad de equivocarte en los cambios de rutas.

Herramienta WPCenter de Webempresa para clonar un sitio WordPress

Si quieres profundizar en este proceso te recomiendo consultar el artículo Cómo clonar WordPress donde te ilustro todo el proceso de clonado de forma detallada, por pasos, para que puedas llevarlo a cabo sin miedo y con éxito.

Si no eres cliente de Webempresa y quieres disfrutar de herramientas como WPCenter y otras muchas, muy chulas, puedes ver alguno de nuestros planes de Hosting WordPress y dar el paso de evolucionar en la forma de gestionar tus webs y tu alojamiento.

  Conclusiones

 

Como has visto en este artículo, cambiar una instalación de WordPress de un dominio a otro dominio no es necesariamente una tarea complicada, sobre todo si usas algún plugin que te auxilie en el proceso.

Recuerda que el plugin All In One WP Migration, también te puede ayudar de manera bastante sencilla a cambiar una web de dominio, pues te permite instalar un WordPress limpio en el “dominio destino” y luego hacer un backup del sitio WordPress “en origen” para posteriormente restaurarlo en el WordPress “destino” sin que tengas que intervenir los cambios de URL, ya que el plugin lo hace de forma automática.

Hacer una copia de seguridad COMPLETA de tu web antes de aplicar estos cambios es fundamental y si puedes mejor opta por métodos más controlables como el uso de plugins que te permitan sustituir las URL.

En última instancia siempre puedes recurrir al Soporte de tu proveedor de Hosting y pedir que te ayude en el proceso.

¿Te ha resultado útil este artículo?

Promo hosting 70% de descuento