Vamos a ver cómo migrar las imágenes de WordPress cuando hemos realizado una migración de un blog que está alojado en WordPress.com y lo hemos movido a un hosting privado usando WordPress.org. En un anterior artículo ya vimos cuáles eran los pasos para migrar un blog WordPress de subdominio y en otro artículo qué cosas a tener en cuenta en la migración durante la migración para no perder posicionamiento web SEO.
En este artículo veremos cómo darle solución a un problema que la herramienta de exportación/importación no resuelve con las imágenes.
Tabla de contenidos
Situación de partida
Normalmente, en un blog wordpress alojado en WordPress.com guarda las imágenes en rutas de este tipo:
https://javierrguez.files.wordpress.com/2016/01/imagen.png
Pero en un blog alojado en un hosting privado con WordPress.org nos interesa eliminar las carpetas de fecha y año y guardarlas todas juntas, siendo la ruta definitiva parecida a esta:
https://www.javierrguez.com/wp-content/uploads/imagen.png
Este cambio de configuración se realiza desde el panel de administración de WordPress > Ajustes > Medios donde hay que desactivar la opción que aparece como Organizar mis archivos subidos en carpetas basadas en mes y año.
Exportar XML con las entradas
Desde nuestro blog alojado en WordPress.com nos vamos a Herramientas > Exportar. Ahí generamos un fichero XML con las entradas de nuestro blog. Nos llegará un email con el enlace para descargar el fichero. Ese fichero contendrá las urls de las imágenes en el formato de año-mes como hemos visto y que tendremos que editar antes de realizar la importación en nuestro blog WordPress.org.
Editar fichero XML
Para la edición del fichero XML usaremos Notepad++. Una vez abierto el fichero XML con nuestras entradas, deberemos reemplazar todas las urls de wordpress.com por las de nuestro dominio, eliminando las subcarpetas de fecha y en la ruta nueva. Para ello haremos uso de las expresiones regulares.
Abrimos nuestro XML con Notepad++ y en el formulario de Reemplazar ponemos:
Tenemos que marcar la opción de expresión regular para que la búsqueda funcione.
En este ejemplo que os pongo, todavía no tenía puesto el certificado digital en mi sitio. Por eso veis urls del tipo http y no https. En vuestro caso, yo os recomiendo que hagáis la migración ya a HTTPS para que Google Chrome no marque vuestro sitio como inseguro.
Si os fijáis es subrayado los grupos de expresiones regulares. He creado 3 grupos, el primero para el año, el segundo para el mes, y el tercero para el nombre del fichero sin la extensión. En el campo reemplazar con ponemos la url nueva con el grupo 3 denotado por $3. Ahora solo tenemos que reeemplazar todo lo que nos encontremos en el fichero. El proceso deberemos repetirlo para HTTP y HTTPS ya que en WordPress.com podemos tener las imágenes en el fichero XML en ambas formas.
Importar XML de entradas
Una vez modificado el fichero, ya podemos importarlo en nuestro blog desde Herramientas > Importar. Hay que tener en cuenta que tendremos que eliminar todas las Entradas antes de hacer la importación ya que sino nos dará error de que ya existen. Si vuestro servidor tiene un timeout muy pequeño, tendréis que repetir el proceso de importado varias veces hasta que os muestre un mensaje de que ha terminado completamente.
Puede que nos pida instalar un plugin si es la primera vez que hacemos uso de esta herramienta. Una vez instalado podremos utilizarlo como explico.
Verificar que todo es correcto
Para terminar, solo habrá que comprobar que todo está correctamente realizando búsquedas en nuestro sitio haciendo uso de la herramienta Omnisearch poniendo la cadena files.wordpress.com. Pero esta herramienta ya no está disponible en las últimas versiones de WordPress por lo que tendremos que hacerlo de otra manera. Os indico dos formas de hacerlo:
- Haciendo una auditoría de vuestro sitio. Ahí podréis detectar si tenéis enlaces antiguos de wordpress.com.
- Haciendo un export de la base de datos y buscando la cadena files.wordpress.com dentro del fichero SQL. Esta es la forma más rápida de encontrar urls de este tipo y de corregirlo rápidamente.
Y eso es todo. Espero que os haya sido útil y solo os pido que lo compartáis en vuestras redes sociales. Si queréis comentar vuestra experiencia en los comentarios, os espero!
Hola
He hecho una importación desde xampp a local y las imágenes están en los artículos pero no las localizo dentro de la carpeta uploads.
Que debo hacer, subirlas de nuevo?
No entiendo cuando dices de Xampp a local. Los dos están en local.
Hola, viendo el articulo queria contarte mi caso por si sabrias decirme como hacerlo.
Tengo una web en wordpress la cual tiene imagenes por años (por defecto) hasta el 2015, a partir de ahi desactivo la opcion de ordenar por años y meses y se aloja todo directamente en UPLOADS.
Ahora estoy haciendo una web nueva en una nueva instalacion la cual por defecto ya trae imagenes cargadas que no quiero perder y esta web tiene las imagenes ordenadas por años y meses (es una plantilla que he comprado). La cosa es que como la nueva web va a sustituir a la antigua necesito exportar las fotos de la antigua web e importarlas en la nueva, el problema es que lo he hecho pero las imagenes que tengo sueltas en el directorio UPLOADS (antigua) las reagrupa en las carpetas con fechas de la nueva y asi pierdo la direccion de las mismas en cada pagina y articulo que tambien paso de web.. ¿Se podria hacer algo?
Muchas gracias
Buenos días Juan. Yo creo que lo más fácil es que en la nueva web desactives el clasificar las imágenes por mes y año si es lo quieres. Que muevas todas las imágenes a la carpeta raíz. Y edites el export SQL de la Base de Datos usando las expresiones regulares para eliminar el mes y año de cada url. Y después vuelves a importar la base de datos. Todo esto puedes hacerlo en un entorno en local en tu pc para hacer pruebas. Y cuando lo tengas ya validado de que todo es correcto, te lo llevas al hosting (modificando nuevamente las urls con el dominio correcto) para hacer ya el cambio definitivo de la nueva web. Espero haberme explicado. Sino, cualquier duda me comentas de nuevo. Un saludo, Javier.
Gracias por explicar tan detalladamente qué es lo que hay que hacer en cada situación, puede servir de gran ayuda para negocios que se encuentren con el mismo problema y no sepan cómo corregirlo. En nuestro caso tuvimos que importar las entradas.