Migrar sitio web de WordPress manualmente

Migrar un sitio web de WordPress de un servidor a otro puede ser fácil o complicado, pero aquí explicaremos cómo migrar un sitio manualmente sin utilizar plugins.

Paso 1: Respaldo

Antes de migrar o borrar archivos del servidor, hay que realizar un respaldo, verificando que este cada uno de los archivos que componen el sitio web, incluyendo un volcado de la base de datos.

Paso 2: Restauración de archivos y base de datos

Ya con el respaldo de los archivos en mano, lo subimos al servidor destino en la carpeta elegida para tal propósito, por ejemplo: /var/www/misitio/

NOTA: Verificar que se encuentren todos los archivos.

Ahora restauraremos el volcado de la base de datos. Una buena herramienta para realizar ésta labor es Dbeaver, pero se puede usar cualquier cliente que permita restaurar un volcado.

Debe existir una base de datos vacía, y un usuario con los permisos adecuados para escribir en ella a fin de poder restaurar nuestro volcado de la base.

Paso 3: Configuración de archivo wp-config.php de WordPress

Hecho lo anterior, abrimos el archivo wp-config.php que esta dentro de la carpeta del sitio web, y modificamos la conexión a la base de datos ingresando el nombre de la nueva base de datos,el usuario, la nueva contraseña y nuevo host.

Paso 4: Modificando la base de datos

Con una herramienta como Search Replace DB modificaremos la base acorde a los parámetros de nuestro nuevo servidor, como puede ser la ruta de donde se alojan los archivos y el nombre de dominio (si aplican).

Search Replace DB es una herramienta fácil de usar, que nos permite realizar acciones de búsqueda/reemplazo en toda la base de datos, que no dañan cadenas u objetos PHP serializados. No sólo es útil para sitios en WordPress, sino cualquier reemplazo que se desee hacer en una mase de datos MySQL.

Ya descargada la herramienta se descomprime y la agregamos dentro de la carpeta raíz del sitio web. Es importante asignar un nombre arbitrario a la carpeta que lo contenga para evitar acciones maliciosas de terceros.

En el navegador web accedemos a: http://misitio.com/[la-carpeta-donde-alojamos-la-herramienta].

En el campo de texto replace (1) colocamos el texto original a cambiar, y en with (2) el texto nuevo.

Los elementos a reemplazar pueden ser:

  • La ruta en el servidor antiguo, por la ruta en el servidor nuevo. Es decir: /ruta/vieja/misitio por /ruta/nueva/misitio. No confundir con la URL, debe ser la ruta en las carpetas del servidor.
  • El nombre del dominio, si es que cambió. Es decir, de dominioviejo.com a dominionuevo.com.

El apartado database (3) verificamos la información de la conexión de la base de datos. En caso de ser incorrecta llenar los campos manualmente.

Al finalizar no se debe olvidar el borrar la herramienta por cuestiones de seguridad.

Paso 5: Ajustar .htaccess y wp-config.php

Es posible que en el archivo .htaccess existan referencias al nombre de dominio antiguo. De ser el caso, deben ser corregidas.

Algo similar sucede con el archivo wp-config.php. Algunos plugins escriben parámetros que hacen referencia al dominio o ruta interna del servidor. Corregir apropiadamente de darse el caso.

Algunos plugins (por ejemplo WordFence), añaden archivos que pueden hacer referencia al dominio o rutas en el servidor sobre el cual se aloja la página. Estas referencias también deben ser actualizadas.

Paso 6: Comprobar la migración del sitio web

Este paso consiste en acceder el sitio web alojado en el nuevo servidor y cerciorase que funciona correctamente.

Los errores más comunes que pueden surgir en éste punto suelen estar relacionados con el hecho de que el servidor nuevo no posea los mismos módulos activos de PHP que el servidor original. Por ejemplo, el módulo mod_rewrite. Se deben activar según corresponda con las herramientas que ofrezca el servicio de hosting.

Si no se muestran errores, ¡felicidades! Has migrado tu sitio de WordPress exitosamente.

Si deseas transformar tu instalación de WordPress en multisitio, y deseas forzar los subdirectorios, ésta guía te puede ser útil.