Cómo migrar de WordPress a EmDash

Si ya has instalado EmDash y quieres ver cómo queda tu contenido de WordPress en el nuevo CMS de Cloudflare, aquí tienes cómo migrar tus entradas, páginas, medios, taxonomías y campos personalizados. El proceso es bastante rápido para un blog o una web de contenido normal, pero conviene saber qué se migra, qué no y dónde te vas a encontrar trabajo manual.

Qué se puede migrar y qué no

Antes de tocar nada, conviene tener claro qué es lo que EmDash puede traerse de WordPress y qué se queda en el camino.

Lo que sí migra:

  • Entradas y páginas, incluidos borradores y contenido privado (con el método WXR).
  • Tipos de contenido personalizados (CPTs).
  • Categorías, etiquetas y taxonomías personalizadas, con toda su jerarquía.
  • Medios (imágenes, vídeos, documentos) con metadatos como texto alternativo, pie de foto y dimensiones.
  • Datos de SEO de Yoast SEO y Rank Math como datos meta.
  • Autores y su atribución al contenido.
  • Ajustes (parcial, solo los que contempla EmDash)

Lo que no migra:

  • Plugins: La arquitectura es completamente diferente (PHP vs. TypeScript, acceso total vs. sandbox). No hay equivalencia directa posible.
  • Temas: Hay que reconstruirlos como proyectos de Astro. EmDash incluye Agent Skills para ayudar a portarlos con agentes de IA, pero no es automático.
  • Bloques de Gutenberg personalizados: Se pueden reconstruir con el Block Kit de EmDash, pero hay que hacerlo uno a uno.
  • Funcionalidad específica de plugins: formularios de contacto, pasarelas de pago, sistemas de reservas, constructores de páginas, membresías. Todo eso tendrías que rehacerlo en EmDash (si es que existe la posibilidad) o prescindir de ello.
  • Widgets y menús de navegación: La estructura de navegación se define de forma diferente en Astro.
  • Campos personalizados, incluidos los de ACF (Advanced Custom Fields), con información de tipo.

El contenido y los datos migran bien, la funcionalidad no. Si tu web es un blog o un sitio de contenido la migración es relativamente sencilla. Si tienes una tienda online con WooCommerce, un sistema de membresía con Restrict Content Pro o una web con varios plugins haciendo cosas distintas, la migración es otro cantar y seguramente no te compense ni de lejos.

Método 1: exportar WXR desde WordPress

El WXR (WordPress eXtended RSS) es el formato de exportación nativo de WordPress, un archivo XML que contiene todo el contenido de tu sitio. Es el método más completo y el más sencillo si tienes un sitio de tamaño pequeño o mediano.

Paso 1: exportar el contenido desde WordPress

Entra en tu panel de WordPress y ve a Herramientas → Exportar.

exportar wordpress

Selecciona Todo el contenido para exportar entradas, páginas, comentarios, campos personalizados, términos de navegación y Custom Post Types. Si solo quieres migrar una parte (por ejemplo, solo las entradas), puedes filtrar por tipo de contenido, categoría, autor o rango de fechas.

Pulsa Descargar el archivo de exportación. WordPress generará un archivo XML con extensión .xml que se descargará a tu ordenador.

Si prefieres hacerlo por WP-CLI (por ejemplo, para sitios grandes o si quieres automatizarlo), el comando es:

wp export --dir=/ruta/donde/guardar/

Esto genera uno o varios archivos WXR en la carpeta que indiques.

Paso 2: importar el WXR en EmDash

Abre el panel de administración de EmDash (normalmente http://localhost:4321/admin si es local, o la URL de tu despliegue en Cloudflare).

Ve a la sección de importación. EmDash tiene un importador integrado en el propio panel de administración.

emdash admin analizar sitio importar

Selecciona la opción de importar desde archivo WXR y sube el archivo XML que exportaste de WordPress.

EmDash analizará el archivo y te mostrará un resumen de lo que va a importar: número de entradas, páginas, tipos personalizados, taxonomías y archivos de medios.

emdash admin importador wordpress wxr subido

Confirma la importación. El proceso tarda entre unos segundos y varios minutos dependiendo del tamaño del sitio. EmDash descargará automáticamente los archivos de medios desde las URLs originales de tu WordPress y los almacenará en su propia librería de medios (sistema de archivos en local, R2 en Cloudflare).

emdash admin importacion realizlada con errores

Qué pasa con el contenido durante la importación

Hay varios detalles que conviene saber sobre cómo EmDash procesa el contenido de WordPress:

  • El HTML se convierte a Portable Text: WordPress almacena el contenido como HTML (o como bloques de Gutenberg serializados en HTML con comentarios). EmDash lo convierte a Portable Text, su formato nativo en JSON estructurado. El texto, los enlaces, las imágenes incrustadas y el formato básico (negritas, cursivas, encabezados, listas, citas) se mantienen. Los bloques de Gutenberg más complejos (columnas, grupos, bloques personalizados) pueden perder estructura o convertirse en HTML genérico.
  • Las taxonomías se convierten en colecciones: Las categorías y etiquetas de WordPress se importan como colecciones separadas en EmDash, manteniendo la jerarquía de las categorías (padres e hijas).
  • Los Custom Post Types se pueden asignar: Si tu WordPress tiene tipos de contenido personalizados (por ejemplo, «Proyectos», «Testimonios», «Productos»), EmDash puede crear colecciones equivalentes durante la importación. Lo ideal es crear las colecciones en EmDash antes de importar, definiendo los campos que necesitas, y luego mapear los tipos de WordPress a las colecciones de EmDash durante el proceso.
  • Los campos personalizados se importan con tipo: El exportador reconoce los grupos de campos y exporta los valores con información de tipo. Un campo de imagen se importa como campo de tipo media en EmDash, un campo de texto como texto, un repetidor como array. No es perfecto al 100% (los campos más complejos pueden necesitar ajustes), pero para campos estándar funciona bien.

Método 2: el plugin EmDash Exporter

El segundo método es instalar un plugin en tu WordPress que crea un endpoint seguro por el que EmDash puede importar el contenido directamente, sin necesidad de descargar y subir archivos. Es más rápido para sitios grandes porque transmite el contenido en streaming en vez de pasar por un archivo intermedio.

Paso 1: instalar el plugin en WordPress

Descarga el plugin EmDash Exporter desde GitHub. De momento no está en el directorio de plugins de WordPress.org, así que tienes que instalarlo manualmente.

Sube la carpeta emdash-exporter a /wp-content/plugins/ de tu WordPress (por FTP, por el gestor de archivos de tu hosting o por WP-CLI) y actívalo desde Plugins en el panel de WordPress.

wp emdash exporter activo

Paso 2: crear una contraseña de aplicación

El plugin usa las contraseñas de aplicación de WordPress para verificar las peticiones de EmDash. Ve a tu perfil de usuario en WordPress (Usuarios → Tu perfil), baja hasta la sección de Contraseñas de aplicación, escribe un nombre identificativo (por ejemplo, «EmDash») y pulsa Añadir nueva contraseña de aplicación.

application passwords emdash

WordPress te mostrará la contraseña generada. Cópiala ahora porque no la podrás ver de nuevo. La vas a necesitar en el siguiente paso.

Paso 3: conectar EmDash a tu WordPress

En el panel de EmDash, ve a la sección de importación y selecciona la opción de importar desde WordPress (API REST).

Introduce la URL de tu sitio WordPress y las credenciales: tu nombre de usuario de WordPress y la contraseña de aplicación que acabas de generar.

conectar importar wordpress con emdash exporter

EmDash sondeará tu sitio WordPress y te mostrará un resumen del contenido disponible, algo parecido a esto:

emdash importar exporter wp

Selecciona lo que quieres importar y lanza el proceso. El plugin transmite el contenido directamente desde WordPress a EmDash, incluyendo los medios. Para sitios con muchos archivos de medios, este método es bastante más rápido que el WXR porque no tienes que descargar un XML gigante a tu ordenador y luego volver a subirlo.

El plugin también admite importación incremental, así que puedes ejecutarlo varias veces durante una ventana de migración para sincronizar contenido nuevo sin duplicar lo que ya se importó.

Seguridad del proceso

El endpoint que crea el plugin solo es accesible con autenticación mediante la contraseña de aplicación. Nadie puede acceder a él sin las credenciales. Aun así, asegúrate de que tu WordPress tiene HTTPS habilitado antes de hacer la migración. Las contraseñas de aplicación viajan en las cabeceras de las peticiones HTTP, así que sin HTTPS estarías enviando las credenciales en texto plano.

Una vez terminada la migración, desactiva y borra el plugin de tu WordPress. No tiene sentido dejarlo instalado si ya no lo necesitas.

¿Y después de la migración que hago?

Importar el contenido es solo la primera parte. Si tu objetivo es que EmDash sustituya a tu WordPress en producción (algo que a día de hoy, con la versión 0.1.0, yo no recomendaría para un sitio real), hay varias cosas que necesitas resolver después.

Las URLs y el SEO

Si tu sitio WordPress tenía la estructura de permalinks /nombre-de-la-entrada/, necesitas asegurarte de que EmDash genera las mismas URLs. De lo contrario, todos tus enlaces posicionados en Google devolverán un 404 y perderás el tráfico orgánico.

EmDash tiene gestión de redirecciones integrada, así que puedes configurar redirecciones 301 desde las URLs antiguas a las nuevas si la estructura no coincide. Pero lo ideal es que las URLs sean idénticas para evitar problemas.

Revisa también que los metadatos de SEO (títulos, descripciones, URLs canónicas) se han importado correctamente si usabas Yoast SEO o Rank Math. El importador trae estos datos, pero conviene comprobar que están en el lugar correcto.

Los medios

Verifica que las imágenes se ven bien en el contenido importado. El proceso de importación intenta descargar los archivos y actualizar las URLs internas, pero si tenías imágenes con rutas absolutas metidas a mano en el HTML (fuera del sistema de medios de WordPress), esas podrían quedarse apuntando a tu WordPress antiguo. Revisa un par de entradas con muchas imágenes para asegurarte.

Los bloques de Gutenberg

Si tu contenido WordPress usaba bloques básicos de Gutenberg (párrafos, encabezados, imágenes, listas, citas, código), la conversión a Portable Text debería funcionar bien. Los bloques más complejos y específicos (columnas, grupos anidados, bloques de plugins como los de Kadence o Spectra) pueden perder formato o convertirse en HTML plano.

EmDash incluye un Block Kit Agent Skill que ayuda a reconstruir bloques personalizados como componentes nativos de EmDash. Si usas Claude Code u otro agente de IA compatible con Agent Skills, puedes apuntarlo al skill y pedirle que reconstruya tus bloques. No es magia, pero acelera bastante el proceso.

El tema

Tu tema de WordPress no migra, de esto te olvidas, pero no es diferente en WordPress. En EmDash los temas son proyectos de Astro con páginas, layouts y componentes. Si usabas un tema personalizado o un tema hijo con muchas modificaciones, toca reconstruirlo.

EmDash incluye un skill para portar temas de WordPress a EmDash con tablas de equivalencia entre los template tags de WordPress y las llamadas a la API de EmDash. Está pensado para dárselo a un agente de IA y que haga el trabajo pesado. Para temas sencillos puede funcionar, para temas complejos con mucha lógica en functions.php vas a necesitar reescribir bastante.

Las plantillas que trae EmDash pueden servirte como punto de partida si tu sitio encaja en alguno de esos formatos.

Los plugins es lo que duele

Aquí es donde la migración se pone cuesta arriba porque tus plugins de WordPress no migran y no tienen equivalente directo en EmDash. El ecosistema de plugins de EmDash está vacío, no hay directorio, no hay marketplace, no hay nada publicado salvo un par de experimentos que hizo la comunidad el día del lanzamiento.

Esto significa que toda la funcionalidad que dependía de plugins la pierdes, y en un WordPress típico, casi en cualquier web actual, los plugins son los que marcan la diferencia entre unas paginitas web o una web profesional. De todos modos vamos a repasar los casos más comunes y qué opciones tienes:

  • SEO (Yoast SEO, Rank Math, SEOPress): EmDash trae funcionalidad SEO básica integrada (títulos, descripciones y URLs canónicas). Pero no tienes análisis de contenido, sitemaps XML configurables, esquema de datos estructurados avanzado ni la monitorización que ofrecen estos plugins. Para un blog sencillo puede valer, para un sitio que depende del SEO técnico te vas a quedar corto, y eso siendo generoso.
  • Formularios de contacto (Contact Form 7, WPForms, Gravity Forms): No hay un sistema de formularios configurable como los que ofrecen estos plugins. Si tu negocio depende de formularios complejos con lógica condicional, integraciones con CRM o pagos, no tienes solución en EmDash ahora mismo.
  • Caché y rendimiento (WP Super Cache, W3 Total Cache, Zero Config Performance Optimization): No los necesitas, en teoría, y de momento. EmDash en Cloudflare es serverless y funciona en el edge, así que el rendimiento es nativo de la arquitectura (Astro, Cloudflare). No hay capas de caché que configurar porque no hay un servidor PHP generando páginas en cada petición. Este es uno de los puntos donde EmDash tiene ventaja razonable.
  • Seguridad (Wordfence, Vigilant, Solid Security): Tampoco los necesitas en el sentido tradicional. El modelo de sandboxing de plugins (si lo tienes en Cloudflare) y la identificación con passkeys eliminan las dos vías de ataque más comunes en WordPress, que suelen ser plugins vulnerables y contraseñas débiles. Eso sí, recuerda que el sandboxing solo funciona en Cloudflare de pago.
  • Tienda online (WooCommerce, Easy Digital Downloads): No hay equivalente. EmDash tiene soporte nativo para x402 (micropagos por HTTP), que sirve para cobrar por acceso a contenido de forma automatizada, pero no es un sistema de ecommerce. No hay carrito, no hay gestión de productos, no hay pasarelas de pago tradicionales, no hay gestión de pedidos ni de envíos. Si tu web vende productos o servicios EmDash no es una opción.
  • Maquetadores visuales (Elementor, Divi, Gutenberg). No existen en EmDash y no van a existir en el formato que conoces. Los temas en EmDash son código Astro (HTML, CSS, JavaScript/TypeScript). La edición permite modificar contenido de texto e imágenes pero no es un maquetador de arrastrar y soltar, no ya como Elementor, ni siquiera como Gutenberg. Si tu sitio fue creado entero con Elementor o Divi la migración implicaría reconstruir todo el diseño desde cero a pelo.
  • Membresías y restricción de contenido (MemberPress, Restrict Content Pro, Paid Memberships Pro): No hay sistema de membresías integrado. El soporte de x402 permite cobrar por contenido individual, pero no gestiona suscripciones, niveles de acceso ni cuentas de usuario con contenido exclusivo al estilo de una membresía tradicional. También te olvidas de esto hasta que alguien no cree plugins y esas cosas a las que tan acostumbrados nos tiene sea CMS tan malo malísimo que es WordPress.
  • Email marketing (Mailchimp, Mailerlite, etc.): No hay integración nativa con servicios de email marketing. Tendrías que implementar las conexiones tú mismo mediante un plugin personalizado de EmDash (usando el sistema de capacidades) o con los scripts de tu sistema de newsletter.
  • Analítica (Site Kit, VigIA): No hay plugin de analítica ni rastreo. Puedes añadir manualmente el código de seguimiento de Google Analytics, Plausible o cualquier otro servicio en la plantilla de tu tema de Astro. No es difícil, pero tampoco tienes un panel integrado con los datos.
  • Backups (UpdraftPlus, BackWPup, BlogVault): No hay sistema de backups integrado. En Cloudflare, la base de datos D1 tiene sus propios mecanismos de respaldo. En local con SQLite, la base de datos es un archivo que puedes copiar. Pero no hay nada comparable a la programación automática de backups con restauración en un clic que ofrecen estos plugins.

Vamos, que no hace falta casi que te lo diga, si tu WordPress usa más de tres o cuatro plugins para funcionar como necesitas, la migración a EmDash significa perder esa funcionalidad y esperar a que alguien la reconstruya (o hacerlo tú mismo).

Para un blog o un sitio de contenido donde los plugins principales eran SEO, caché y un formulario de contacto, la transición es más o menos viable. Para cualquier cosa más compleja el coste de la migración es muy alto y el resultado va a ser un sitio con menos funcionalidad que el que ya tenías.

¿Y si me arrepiento?, ¿se puede volver de EmDash a WordPress?

Antes de migrar conviene saber si tiene vuelta atrás. La respuesta corta es que sí, pero no es tan fácil como la ida. Curioso ¿verdad?. Recuerda, te querías ir de un sistema totalmente abierto a otro no tan abierto.

EmDash no tiene un botón de exportar WordPress. No existe un plugin exportador en sentido inverso ni un archivo WXR de salida. Lo que sí tiene es una API REST y una CLI que devuelve datos en JSON, así que el contenido es accesible de forma programática. La cuestión es cómo meterlo de vuelta en WordPress.

  • El contenido en texto_ Tus entradas y páginas están almacenadas como Portable Text (JSON). Para llevarlas de vuelta a WordPress necesitas convertir ese JSON a HTML, que es lo que WordPress espera. No hay una herramienta oficial para hacerlo, pero Portable Text es un formato documentado y existen librerías en JavaScript (como @portabletext/to-html) que hacen la conversión. Con un script puedes extraer el contenido de la API de EmDash, convertirlo a HTML y usar la API REST de WordPress o WP All Import para importarlo. No es un clic, pero es factible.
  • Los medios: Las imágenes y archivos están en el sistema de archivos local o en R2 de Cloudflare. Puedes descargarlos y subirlos a WordPress con cualquier método habitual (FTP, librería de medios, WP-CLI con wp media import). Lo que tendrás que actualizar después son las URLs internas del contenido para que apunten a la nueva ubicación en WordPress.
  • Las taxonomías: Categorías, etiquetas y taxonomías personalizadas se pueden recrear en WordPress manualmente o por importación. Si tienes pocas, a mano va más rápido. Si tienes muchas, un script que lea la API de EmDash y escriba en la API REST de WordPress te ahorra tiempo.
  • Los campos personalizados: Si creaste colecciones con campos tipados en EmDash (el equivalente a los Custom Post Types + ACF en WordPress), necesitas recrear la estructura en WordPress: registrar el tipo de contenido personalizado, configurar los grupos de campos en ACF y luego importar los datos. El mapeo no es automático.
  • El SEO: Si EmDash importó tus títulos y descripciones de Yoast o Rank Math, esos datos están en las colecciones de EmDash. Puedes extraerlos y reimportarlos en WordPress asociándolos a los meta fields que usa tu plugin de SEO. Pero ojo: si durante el tiempo que estuviste en EmDash cambiaste URLs o estructura, tendrás que gestionar las redirecciones para no perder posicionamiento.
  • Lo que no vuelve: Cualquier funcionalidad que construiste como plugin de EmDash (en TypeScript, con el modelo de capabilities) no se puede portar a WordPress. Tendrías que buscar el plugin de WordPress equivalente o reconstruir esa funcionalidad desde cero en PHP.

El escenario más realista para la vuelta es que si mantuviste tu WordPress original funcionando en paralelo mientras probabas EmDash (lo cual es lo recomendable con una beta), volver es simplemente seguir usando tu WordPress de siempre. El único contenido que tendrías que migrar de vuelta sería lo que hubieras publicado en EmDash durante el período de prueba, y eso normalmente es poco.

Moraleja: no borres tu WordPress hasta estar completamente seguro de que EmDash te funciona. Y con una versión beta ese momento está muy lejos siquiera de planteárselo.

¿Merece la pena migrar ahora?

Mi consejo de amigo es que no migres un sitio en producción a EmDash a día de hoy. La versión beta es para desarrolladores, no un producto listo para producción.

Pero si quieres probar cómo quedaría tu contenido, hacer una migración de prueba en local (con SQLite, sin coste) es rápido y no afecta a tu WordPress para nada. Exportas el WXR, lo importas en una instalación local de EmDash y en unos minutos tienes una idea bastante clara de lo que funciona y lo que no.

Otra posibilidad es animarte a instalarlo desde cero, y para eso también publiqué un tutorial con hasta 3 maneras de hacerlo, así que no puedes decir que no te lo pongo fácil, incluso te animo. Otra cosa es que sea fan, que te lo recomiende.

Si te interesa seguir el desarrollo de EmDash y compararlo con lo que ofrece WordPress, también te puede interesar el análisis completo que publiqué sobre EmDash, donde entro en detalle sobre la licencia MIT, el modelo de seguridad de plugins y si tiene sentido como alternativa real a WordPress.

Fernando Tellado -Ayuda WordPress

Deja un comentario