Migrar WordPress de Servidor y Dominio

Una de las tareas menos agradables y divertidas que nos topamos los desarrolladores y diseñadores de páginas web es el de tener que migrar una web de un dominio y hosting a otro. Un ejemplo puede ser cuando realizamos un trabajo en nuestro dominio y deseamos migrar luego esta web al de una empresa determinada.

En Internet podemos encontrar varios tutoriales de migración de WordPress de un servidor y de un dominio a otro, sin embargo no todos cuentan con exactitud algunos detalles. Para empezar, necesitamos:

  1. Acceso a la FTP antigua.
  2. Acceso a la FTP nueva.
  3. Acceso al phpMyAdmin o área de Base de Datos (BBDD) antigua.
  4. Acceso al phpMyAdmin o área de Base de Datos (BBDD) nueva.
  5. Datos de la nueva BBDD. Es probable que la tengamos que crear.

*Aseguraros que el nuevo hosting permite cargar archivos PHP y WordPress.

A continuación, paso a detallaros una pequeña guía para realizar la migración de WordPress de hosting y dominio.

Debemos obtener los archivos que tenemos en el hosting donde tenemos alojada la página web. Para ello tenemos 2 opciones:

– Descargamos todos los archivos de nuestra web de la FTP donde tenemos actualmente la página.

 

carpeta wordpress

 

– También podemos descargarlos gracias al plugin Duplicator, de WordPress, que sirve para clonar, duplicar y hacer copias de seguridad de tu página web. El único requisito para usarlo es tener una versión compatible de WordPress y una versión PHP 5.3 o superior.Si utilizamos este sistema, debemos descargarlo previamente en el área de plugins, de forma gratuita y activarlo. Una vez descargado, lo activamos y veremos como en el lado izquierdo de la administración de nuestro WordPress aparece el panel de Duplicator. Lo abrimos y veremos una imagen similar a esta:

 

Duplicator WordPress

 

Deberemos realizar un backup de nuestra web y posteriormente descargarlo. El funcionamiento de Duplicator en sí no presenta gran dificultad, pero siempre podéis acudir a algún manual o mirar el siguiente vídeo:

 

 

Una vez tenemos los archivos de la web descargados, debemos realizar una copia de nuestra base de datos SQL. Pero para ello, antes debemos realizar una serie de acciones en nuestra web para que cuando realicemos la migración de la página esta funcione correctamente en el nuevo alojamiento.

Debemos poner los enlaces permanentes predeterminados. ¿Por qué? WordPress crea rutas absolutas, por tanto cuando migremos nuestra web, si no reestablecemos este valor a los originales previamente a hacer el backup de la BBDD, es probable que nos cargue únicamente la página principal y no nos funcionen los menús y links de la web.

Debemos desactivar los plugins de WordPress en nuestra página de origen. En algunas webs crea un conflicto que provoca que cuando realicemos la migración nos encontremos que en el backend (área de administración o escritorio), los submenús no funcionen correctamente.

Una vez hemos dado estos 2 pasos, podemos realizar la copia de seguridad de la base de datos SQL. Para ello tenemos 2 formas:

– Podemos ir al área de BBDD de nuestro Panel, el phpMyAdmin y exportar la base de datos, marcando todas las tablas. Debajo hay que etiquetar la opción de enviar, que genera automáticamente un archivo SQL de nuestra base de datos. Podemos comprimir la base de datos en otro tipo de archivo si lo deseamos.

 

migrar sql

 

– El otro método para realizar copias de base de datos y que recomiendo es utilizar el plugin WP Migrate DB, que permite guardar la base de datos para la nueva web.

 

WP-Migrate-DB-form

 

El funcionamiento es sencillo, permite modificar las rutas que estan en la web de origen a la de destino así como indicar la carpeta de la web origen a la de destino. Una vez indicado, exportamos el archivo y tendremos una copia de la nueva base de datos.

 

 

El siguiente paso es subir la copia de seguridad de nuestro WordPress a la carpeta raíz del nuevo hosting por FTP, posiblemente sea una carpeta /www, /httpdocs, o /public_html. Se recomienda no agregar el archivo de la copia de seguridad y temporales, ya que la carga tardará más tiempo del deseado. Una vez subidos los archivos, ya tendremos la mitad del trabajo hecho.

Ahora deberemos crear una nueva base de datos en el Panel de Control o phpMyAdmin del hosting de destino con un nombre, usuario y contraseña, que si queremos puede ser el mismo que teníamos. Se puede editar la línea 5 del SQL exportado con el nombre del hostname de origen. Una vez creada la Base de Datos, vamos a la pestaña de importar y añadimos la base de datos que hemos guardado con el WP Migrate DB.

 

06-Import-database

 

Ahora, una vez creada la base de datos con todas sus tablas, deberemos hacer un paso más consultando que las rutas en el nuevo hosting son correctas. Para ello iremos a la pestaña SQL dentro del phpMyAdmin y añadiremos lo siguiente:

 

UPDATE wp_options SET option_value = REPLACE ( option_value, 'http://dominioantiguo.com', 'http://www.dominionuevo.com' );

UPDATE wp_posts SET guid = REPLACE ( guid, 'http://www.dominioantiguo.com', 'http://www.dominionuevo.com' );

UPDATE wp_posts SET post_content = REPLACE ( post_content, 'http://www.dominioantiguo.com', 'http://www.dominionuevo.com' );

UPDATE wp_postmeta SET meta_value = REPLACE ( meta_value, 'http://www.dominioantiguo.com', 'http://www.dominionuevo.com' );

 

Si quedaba alguna ruta con el dominio antiguo en la base de datos, ésta será sustituida por las del dominio nuevo. Por último, queda modificar el archivo wp-config.php como hacemos siempre, pero poniendo los datos nuevos, es decir, nombre de la nueva base de datos, usuario, contraseña…

 

// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** //
/** El nombre de tu base de datos de WordPress */
define('DB_NAME', 'nombre_de_tu_base_de_datos');

/** Tu nombre de usuario de MySQL */

define('DB_USER', 'usuario_de_tu_base_de_datos');

/** Tu contraseña de MySQL */

define('DB_PASSWORD', 'password');

/** Host de MySQL (es muy probable que no necesites cambiarlo) */

define('DB_HOST', 'localhost');

 

Añadir también que debemos dar permisos de escritura 777 a los archivos, para que podamos subir fotografias y modificar cosas de la web.

RESOLUCIÓN

Si hemos seguido los pasos indicados, ahora podremos ver la web en la nueva dirección que le hayamos indicado. Accedemos al backend y activamos de nuevo los plugins y los enlaces permanentes. Para que estos funcionen correctamente se le deberá dar permisos de escritura 777 al archivo .htaccess previamente, si no nos encontraremos que no funcionan los links de los menús. Otra forma para añadir permisos de escritura para actualizar los links será editar el archivo .htaccess con los siguientes parámetros:

 

<IfModule mod_rewrite.c>
RewriteEngine On RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

Si el dominio al que traspasáis la web es nuevo puede que los cambios tarden un poco más en actualizar pero si ya tiene tiempo los cambios deberían actualizarse al momento.

¡Espero que os haya servido! ¿Conocéis algún otro método para realizar este proceso?

Share This Story!

About Author

You may also like

  • Saludos , estoy decidido a mudar mi sitio web a otra empresa, pero la nueva empresa me pide hacer una copia de seguridad para que ellos muden mi web, ahora estos son lo pasos que usted menciona para mudar mi sitio web.
    A me olvidaba mi actual proveedor a desactivado mi cpanel WHM esta inactiva la licencia ya que este mes no pague porque decidi mudarme, pero porno tener los pasos precisos aun no hago la mudanza al nuevo proveedor.
    Necesitaria sus consejos sabios Gracias

    • Hola Frank,

      Para migrar tu sitio web es imprescindible que tengas un backup de tu web actual o tengas acceso al FTP donde están alojados los archivos, realizando los cambios de rutas si procede al nuevo servidor. Puedes ayudarte de Duplicator, que te genera un archivo en la misma administración de tu web actual y puedes descargarte o acceder al FTP y descargarte los archivos y traspasarlos al nuevo hosting. En este caso recuerda ayudarte de WP Migrate DB indicando las nuevas rutas y luego subiendo esta base de datos en el nuevo CPanel, creando una nueva base de datos e importando la base de datos obtenida con el WP Migrate DB. Por último recuerda de indicar los nuevos datos en el wp-config del nuevo alojamiento o no lo incluyas y deja que WordPress haga como si fuera una instalación nueva.

      Sobre lo de tu nueva empresa, es raro que te pidan un backup ya que normalmente ellos te dan soporte en la instalación pero no hacen el trabajo por ti pero si te lo piden y es un servicio seguro no dudes. Por lo que me cuentas, al tener desactivado el CPanel actual deberás proceder a hacerlo por Duplicator y utilizar WP Migrate DB. Recuerda de desactivar los plugins y modificar la configuración de los links (Ajustes-Enlaces Predeterminados) antes de utilizar el WP Migrate DB (que te hace un backup de tu base de datos con las nuevas rutas). Seguro que lo consigues, si tienes dudas puedes preguntarme. Saludos

  • Amigo, solo dejarte un saludo y agradecerte por este tutorial. De todo lo que vi en la web es lo más claro que leí. Anoche hice mi traspaso de servidor y de dominio. Y salio todo OK sin el más mínimo dolor de cabeza. Nobleza obliga a agradecer el aporte. Saludos.

    • Hola FG Viajero,

      Me alegro un montón que te haya sido de utilidad, es una operación que para el que no está habituado puede dar muchos dolores de cabeza. Con Duplicator se puede hacer también y es mucho más rápido y sencillo, espero poder escribir un post pronto al respecto. Un saludo!

  • Soledad

    Lo primero, felicitarte. Me parece muy detallada tu explicación, pero me faltan algunos detalles.
    Intenté hacer el traspaso pero me pasó algo extraño: al entrar a mi antiguo sitio, me direccionó al nuevo sitio en la URL. Qué habré hecho mal?

    Por otro lado, quisiera saber donde pongo lo que dices:
    UPDATE wp_options SET option_value = REPLACE ( option_value, ‘http://dominioantiguo.com’, ‘http://www.dominionuevo.com’ );

    UPDATE wp_posts SET guid = REPLACE ( guid, ‘http://www.dominioantiguo.com’, ‘http://www.dominionuevo.com’ );

    UPDATE wp_posts SET post_content = REPLACE ( post_content, ‘http://www.dominioantiguo.com’, ‘http://www.dominionuevo.com’ );

    UPDATE wp_postmeta SET meta_value = REPLACE ( meta_value, ‘http://www.dominioantiguo.com’, ‘http://www.dominionuevo.com’ );
    Puede que ese haya sido mi error.
    Tuve que recargar el sitio nuevo con mi backup y borrar todo en mi sitio nuevo.
    Plis ayuda!!

    • Hola Soledad,

      Pueden haber varias causas: revisa tu wp-config.php que coja la base de datos nueva, puede ser que no hayas puesto las rutas correctas con el WP Migrate.

      Eso que indico debes ponerlo en el SQL de la base de datos que luego importas a la nueva que hayas creado, es para asegurarte que las rutas pasan del viejo dominio al nuevo.

      Otro plugin con el que puedes hacerlo es con el Duplicator. Es más senzillo que todo esto y en poco rato lo tienes! En este caso, en tu web antigua, 1. quitas los links permanentes, 2. desactivas plugins excepto duplicator, 3. vas a duplicator y creas un archivo zip y el archivo installer.php, 4. pasas los ficheros de tu viejo hosting a tu nuevo hosting, 5. creas base de datos nueva limpia, 6. ahora pones http://dominionuevo.com/installer.php en el navegador y 7. por último completas la instalación con los datos de la nueva base de datos, como si fuera una instalación nueva de WP. Te funcionó? Espero que te sirva!

      • Hola Alejandro, que buen post has escrito, muchas gracias. Me queda una duda, en el paso 4 de este comentario dices “4. pasas los ficheros de tu viejo hosting a tu nuevo hosting”, esto desde dónde debería realizarlo, desde el cpanel de la nueva web, o a través del FTP. Muchas gracias!

  • Cuando dices “descargamos todos los archivos de nuestra web”, te refieres a los que están en la carpeta public_html? Al descargar, aparecen otras carpetas (Public_ftp; mail; logs..etc) y otros archivos como: widgets.php; users.php; users-new.php; upload.php…etc.
    Gracias

    • En el comentario anterior te he dado una solución más sencilla a tu dolor de muelas ;-). Sobre esta cuestión, sí, has de pasar los datos de public_html, que son los ficheros de tu web. Las otras carpetas son ficheros de tu hosting, sobre el mail, información sobre incidencias, etc. Céntrate sólo en public_html. Pero lo dicho, creo que para ti será más fácil la solución que te he dado arriba. Prueba y me cuentas. Saludos!

  • Hola Alejandro,
    muchas gracias por publicar un tutorial tan completo y bien explicado.

    He seguido tus pasos (con la variante de mover los archivos por ftp) para migrar una página wordpress de dominio y servidor, tengo un dominio en el que no tenía nada y he realizado allí la nueva página en wordpress de febhi (de manchegoarte.es a febhi.org).
    Ahora que la tengo más o menos lista ha llegado el momento de sustituir la vieja de febhi.org.
    El problema es que solo consigo que se vea texto, por lo que entiendo que coge la base de datos (la moví con el plugin que indicas en el turorial) pero no el wordpress, parece que no se ha instalado.

    ¿cómo puedo solucionarlo?
    ¿tengo que instalar WP en el servidor nuevo? ¿esto borrara lo que subí por FTP?
    ¿que me recomiendas?

    Muchisimas gracias por tu interés y ayuda.
    Un abrazo

    • Hola Pedro,

      Intentaré ayudarte con los datos que me das, a ver si lo he entendido bien. Deberías poner la web antigua en una carpeta nueva, si deseas conservarla por si acaso, dentro del public_html o www, la carpeta que tengas creada en tu host. Ahora en deberías revisar si están todos los ficheros en tu carpeta del host, y si has pasado también el archivo config antiguo, porque de ser así, puede que no te funcione. Inténtalo sin, de manera que haga como si fuera una instalación nueva, con tu base de datos nueva.

      Otra forma es con Duplicator, en tu comentario debajo explico los pasos, es incluso más sencillo.

      Tu no tienes que instalar el WordPress de nuevo ya que teóricamente ya están migrados los archivos, simplemente debes configurarlo al nuevo servidor. Si tu instalas el WordPress de nuevo encima, no pierdes nada, es como si hicieras una instalación manual de WordPress, sale un simple aviso de actualización de base de datos. Sin miedo, sobretodo si tienes una copia de seguridad.

      Me dices algo si lo has conseguido, vale? Gracias por pasarte por aquí. Saludos!

      • Hola Alejandro,
        muchas gracias por contestar tan rápido.
        Viendo que a la manera clásica no me está funcionando estoy probando con el plugin duplicator. Informaré tan pronto acabe el proceso.
        de momento me da algún error de inicio pero me ha generado los dos archivos…
        Crucemos los dedos.

        Muchas gracias por la ayuda,
        Un abrazo

  • Hola Alejandro,

    de momento sigo intentandolo…
    porn lo que se ve los duendes de internet no me son favorables y me sigue dando error.
    En este caso, minetras se ejecuta el installer de Duplicator me aparece:
    server code: 500
    status: Internal Server Error
    response:
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Web Server at @domain_name@

    No se muy bien que hacer pero empiezo a estar deseperado.

    Muchas gracias por el apoyo y la dedicación.

    Un fuerte abrazo

  • hola buenas,

    primero que todo muchas gracias por tu ayuda.

    te comento que yo tengo un problema, mi dominio (antiguo) ya no está operativo, sin embargo, lo tenía alojado en otro hosting aparte por lo que tengo acceso a la bbdd y a los archivos en el servidor.

    la cuestión es que necesito mudar estos datos a un nuevo dominio, lo he intentado de todas las formas y no lo consigo, sigo paso a paso lo que dices pero me es imposible, logro copiar todos los archivos al nuevo ftp, la base de datos también, reemplazar la URL, y tambien incluso crear el .htaccess pero ni aun así me funciona, me aparece la pantalla en blanco y no se que hacer,

    podrías ayudarme???

    muchas gracias de nuevo y de antemano!!
    Saludos!