Saltar al contenido →

Migrar WordPress desde un subdominio hacia un dominio (sub.donmik.com a donmik.com)

He tenido que migrar un sitio wordpress desde un subdominio hacia el mismo dominio: por ejemplo, desde “sub.donmik.com” hacia “donmik.com”. Estos son los pasos que he seguido.

  1. Hacer una copia de seguridad de todo el sitio (sub.donmik.com) y de la base de datos. Para la base de datos si está instalado phpMyAdmin, se puede hacer con el plugin WP Migrate DB.
  2. Instalar el plugin WP Migrate DB. Este plugin permite hacer una copia de seguridad de la base de datos. También permite hacer una copia de la base de datos preparándola para la migración a la nueva url y localización del sitio.
    WP Migrate DB
    Esta es la configuración para migrar el sitio. Se escribe la nueva url deseada y la nueva localización de los archivos. El resto de checkboxes se pueden dejar tal cual o no según las necesidades de cada sitio.
  3. Copiar los archivos del sitio original (sub.donmik.com) a su nueva localización, si es necesario. En mi caso, los archivos se situaban en una carpeta “sub.donmik.com” y los he movido a la carpeta raíz del sitio “donmik.com”. Este paso no siempre es necesario.
  4. Importar la base de datos sobrescribiendo la base de datos antigua -suponiendo que no se quiere cambiar de base de datos. A partir de este paso, la url antigua dejará de funcionar correctamente.
  5. El último paso es el de añadir un par de líneas a vuestro archivo “.htaccess” antiguo para no perder visitas de buscadores que hayan indexado vuestra url antigua. Para eso, en el “.htaccess” del antiguo sitio, se añade lo siguiente:

    Con estas dos líneas de código, cualquier usuario que acceda a la antigua url, será redireccionado a la nueva url de forma inmediata. “R=301” indica a los buscadores (como Google) que esta redirección es permanente y hará que cambien la indexación de la url antigua por la nueva url.  En pocas semanas, las antiguas urls habrán desaparecido por completo de los buscadores y se podrá eliminar todo rastro del antiguo sitio si se desea.

¡Ya está! La migración ha terminado. Si no te ha funcionado, siempre puedes restaurar la copia de seguridad que has hecho en el primer paso o dejar un comentario… quizás pueda ayudarte.

  • Alejandro Laca

    Hola, en primer lugar agradecerte la información. He tenido un problema al importar la base de datos. (lo estoy copiando a una nueva base de datos pq quiero conservar el subdominio inicial) en este momento la home es exactamente igual pero cuando entro en cualquier pagina me da error 404 o me dice que la pagina tiene un bucle de redireccionamiento. ¿Me puedes dar alguna solución? Muchas gracias de antemano. Un saludo

    • Buenas,

      Prueba a activar WP_DEBUG en wp-config.php para ver si te sale algún error. En el siguiente enlace, tienes instrucciones de cómo hacer esto: https://codex.wordpress.org/es:Depurar_en_WordPress

      Por otra parte, yo echaría un vistazo al archivo “.htaccess” para ver si tiene alguna ruta metida. También puedes intentar hacer una copia de seguridad del archivo, y meter el que trae wordpress en cada instalación por defecto. Te paso el enlace con el código de un “.htaccess” limpio para wordpress: https://codex.wordpress.org/htaccess

      • Alejandro Laca

        Buenos días,
        Muchas gracias, he cambiado el archivo .htcaccess y ha funcionado! aunque sigo teniendo problemas con el acceso al blog desde el menu principal (esta pagina tiene un bucle de redireccionamiento) y con el acceso al backoffie de wordpress que no me deja entrar de ninguna forma. Alguna sugerencia? parece que con tus indicaciones estoy a un paso de solucionarlo.. Muchisimas gracias

        • Me da la impresión de que ha habido algún error al modiificar la url del sitio. A la hora de configurar WP Migrate DB, hay que indicar la url antigua y la nueva url. Quizás sea por las “www”. No sé exactamente que puede estar pasando pero puedes forzar la url también utilizando el archivo “wp-config.php”.

          En este archivo, puedes añadir este par de líneas:

          define( ‘WP_SITEURL’, ‘urldetusitioweb’);
          define( ‘WP_HOME’, ‘urldetusitioweb’);

          Al definir estos dos valores, se tomarán como válidos en vez de utilizar los que tenga tu base de datos en la tabla wp_options.

          Aquí tienes más información de cómo hacerlo: http://codex.wordpress.org/Editing_wp-config.php

          Si te funciona así, tendrás que modificar esos valores desde la administración en Ajustes.

          • Alejandro Laca

            Hola! Acabo de retomar el tema, estaba con otras cosas.. he añadido esas lineas a wp-config.php y después he entrado en el backoffice del subdominio y he cambiado en ajustes la vieja dirección por la nueva.. ha funcionado, ahora los cambios que realizo aparecen en las dos webs.. en el futuro pensaba eliminar el subdominio, ¿tendré algún problema? la verdad es que no se si esta bien hecho.. gracias

          • Siempre que cambies la url deberías utilizar el WP Migrate DB para hacer la migración. Esto te permitirá reescribir las urls de forma sencilla en la base de datos. No basta con reescribir las dos del sitio WP_SITEURL y WP_HOME. También puede ser que en la base de datos tengas más veces la url por eso es importante que utilices este plugin. También existe otros plugin como “Duplicator” que te pueden ayudar con este proceso.

            Un error común por ejemplo del que me acabo de acordar es cuando tienes en tu base de datos urls del tipo “http://donmik.com” y “http://www.donmik.com”. Si sólo modificas uno de los dos tipos tendrás problemas por eso es importante por si acaso, configurar WP Migrate DB para que modifique esos dos tipos de urls y los convierta en “http://sub.donmik.com”.

            Cuando vayas a eliminar el subdominio, sólo tendrás que hacer en principio:
            “http://sub.donmik.com” => “http://donmik.com”. Y debería funcionar. Otro error que se me acaba de ocurrir, si utilizas https, tendrás que cambiarlo también…