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.
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.
Tabla de contenidos
- 1 Apunta el nuevo dominio al servidor donde está la web
- 2 Cambiar el nombre de dominio dentro de WePanel
- 3 Cambiar el dominio en el archivo htaccess
- 4 Forzar el dominio en el archivo wp-config.php
- 5 Reemplazar las URL internas que enlazaban al anterior dominio por el nuevo
- 6 Redireccionar el anterior dominio al nuevo dominio
- 7 Cambiar el dominio de la web clonándola con WPCenter
- 8 Conclusiones
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á.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
También te puede interesar:
>
- Cómo migrar WordPress manualmente
- Cómo migrar WordPress con un plugin
- Cómo migrar WordPress de local a hosting
- Cómo migrar WordPress de un hosting a local
- Cómo migrar wordpress.com a wordpress.org
- Trasladar web con Supermigrator
- Traslada tu WordPress sin complicaciones
- Migrar WordPress con Duplicator, Tutorial
¿Te ha resultado útil este artículo?
Miembro del equipo de soporte técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Soporte técnico en CiberProtector. Teacher en Webempresa University