Skip to content

Todo para WordPress, el desarrollo web — y mucho más

🪓 Cómo dividir archivos XML grandes al importar en WordPress

🪓 Cómo dividir archivos XML grandes al importar en WordPress

Exportó su sitio pero el archivo pesa 30 megabytes y no entra en el nuevo hosting. La importación estándar de WordPress se detiene en silencio a la mitad y parte del contenido simplemente desaparece. Un escenario familiar para cualquiera que migre desde un sitio antiguo con cientos de publicaciones.

La causa son los límites estrictos del hosting: upload_max_filesize (normalmente 2-8 MB), post_max_size y un tiempo de ejecución del script de 30 segundos. Un archivo WXR (WordPress eXtended RSS) con años de contenido supera fácilmente esos límites.

Aquí tiene cuatro métodos que funcionan para dividir un XML grande en partes e importar todo sin perder datos. Del más simple al más avanzado.

💡 Resumen rápido:

  • Aumente el límite de subida a través del soporte de hosting: es la vía más rápida si su proveedor coopera.
  • ¿Necesita una herramienta sin conexión para un sistema operativo específico? Pruebe WXR File Splitter (Windows) o WXR Split (Mac).
  • Opción multiplataforma sin instalación: el divisor de WXR en línea parte el archivo directamente en su navegador.
  • ¿Trabaja con la línea de comandos? WP-CLI wp import acepta múltiples archivos y no está limitado por las restricciones web.

Por qué falla la importación: tres límites que se interponen

La importación de WordPress choca no con una, sino con tres barreras simultáneamente.

  • upload_max_filesize: el tamaño máximo de un solo archivo subido. En hosting económico es de 2 MB; en hosting de gama media, de 8-32 MB.
  • post_max_size: el tamaño total de la solicitud POST. Debe ser mayor que upload_max_filesize; de lo contrario, el archivo no llegará al gestor.
  • max_execution_time: tiempo de ejecución del script. Si la importación dura más de 30-60 segundos, el proceso termina incluso si el archivo se subió correctamente.

Una exportación de un sitio antiguo con 500 publicaciones y miles de comentarios produce fácilmente un XML de 15-25 MB. Un archivo así no cabe dentro de los límites estándar.

Método 1: Pida a su proveedor de hosting que aumente los límites

La vía más simple es contactar con el soporte de hosting. La mayoría de los proveedores aumentan upload_max_filesize a 64-128 MB si se lo solicita, especialmente en planes superiores al básico.

Si usted mismo tiene acceso a la configuración del servidor, añada esto a wp-config.php:

1define('WP_MEMORY_LIMIT', '256M');

Y cree un archivo .user.ini en la raíz del sitio (para hosts que usan PHP-FPM):

1upload_max_filesize = 128M
2post_max_size = 128M
3max_execution_time = 300

En hosting compartido, .user.ini no siempre funciona; en ese caso, necesitará abrir un ticket de soporte.

Después de cambiar los límites, suba el archivo WXR original a través de Herramientas → Importar → WordPress. Si el archivo sigue sin pasar, proceda a dividirlo.

Método 2: WXR File Splitter para Windows

Para Windows existe una utilidad de escritorio clásica llamada WXR File Splitter. La interfaz es minimalista, pero cumple su función: abra el archivo WXR, especifique el número de partes o el tamaño máximo de cada una, haga clic en «Split Files» y obtendrá varios archivos XML en la misma carpeta.

Ventana del divisor de archivos WXR mostrando datos de archivo XML

La utilidad muestra el número de elementos en el archivo antes de dividir: publicaciones, páginas, comentarios. Esto le ayuda a calcular cuántas partes crear.

Nota: la herramienta es antigua y el sitio del desarrollador original ya no funciona. Si la utilidad no se ejecuta en Windows 10/11, pase directamente al método 4 (divisor en línea); es más fiable.

Método 3: WXR Split para Mac

Los usuarios de Mac tienen un equivalente llamado WXR Split. La lógica es la misma: cargue el XML, establezca el tamaño de las partes, obtenga un conjunto de archivos para importar secuencialmente.

Interfaz de WXR Split con selección de tamaño de archivo de salida

Al igual que con la versión de Windows, el sitio oficial de esta herramienta puede no estar disponible. No pierda tiempo buscando; el divisor web del siguiente paso funciona en cualquier sistema operativo.

Método 4: Divisor en línea wxrfilesplitter.com

La opción más práctica hoy es la herramienta web gratuita WXR File Splitter. Funciona en el navegador, no requiere instalación y no está vinculada a ningún sistema operativo.

Cómo dividir el archivo:

  • Abra wxrfilesplitter.com.
  • Suba su archivo WXR. El límite de tamaño es de 256 MB, más que suficiente para cualquier sitio.
  • Especifique el tamaño deseado de las partes; el desarrollador recomienda 2 MB para una importación estable.
  • Haga clic en Submit y descargue el archivo comprimido con los archivos XML divididos.

La herramienta no almacena archivos en el servidor; los datos temporales se eliminan cada hora. Después de dividir, importe cada archivo a través de Herramientas → Importar → WordPress uno por uno.

La principal ventaja: no necesita buscar una utilidad para su sistema operativo ni descifrar la línea de comandos. Todo ocurre en el navegador con un par de clics.

Método 5: Importación con WP-CLI (para quienes trabajan con la consola)

Si tiene acceso SSH al servidor y WP-CLI está instalado, puede importar sin dividir en absoluto, o dividiendo para mayor velocidad.

WP-CLI acepta múltiples archivos a la vez:

1wp import file1.xml file2.xml file3.xml --authors=create

El indicador --authors=create crea cuentas de autor si no existen en el nuevo sitio.

Este método tiene dos ventajas: primero, WP-CLI funciona a través de la línea de comandos y no está limitado por las restricciones web de PHP; segundo, puede pasar un directorio con las partes divididas con un solo comando.

Para activar un registro detallado durante la importación, añada esto a wp-config.php:

1define('IMPORT_DEBUG', true);

Entonces WP-CLI mostrará un informe detallado de cada elemento procesado, indicando qué se importó y qué se omitió.

⁉️🤔 Preguntas frecuentes

El archivo pesa 40 MB y ninguno de los métodos funciona. ¿Qué debo hacer?

Lo más probable es que el problema no sea el tamaño, sino el tiempo de espera. Incluso un archivo dividido en partes de 2 MB puede colgarse si el servidor no puede procesar cada parte en 30 segundos. Pida a su proveedor de hosting que aumente max_execution_time a 300. O use WP-CLI, que no depende de los tiempos de espera web.

¿Puedo simplemente dividir el XML en un editor de texto?

Técnicamente sí, pero en la práctica no. Un archivo WXR tiene una estructura compleja con espacios de nombres y etiquetas <item> repetidas, cada una con una publicación completa y sus metadatos. Un corte manual casi con toda seguridad romperá el XML y el importador de WordPress arrojará un error de análisis. Use herramientas especializadas.

¿Necesito dividir el archivo si me mudo a un VPS adecuado?

En un VPS usted controla los límites; aumente upload_max_filesize y post_max_size a 128 MB y el archivo se subirá completo. Pero tenga cuidado con los tiempos de espera: incluso en un servidor potente, importar 500 publicaciones con archivos multimedia puede llevar 2-3 minutos. Aumente max_execution_time o divida el archivo de todos modos como precaución.

¿Qué pasa si parte del contenido no se importó después de dividir?

Verifique que importó TODOS los archivos resultantes. Un error común: descargó el archivo comprimido de wxrfilesplitter.com, subió el primer archivo y se detuvo. Cada archivo contiene su propia porción de elementos; saltarse alguna parte significa perder esos registros. Importe secuencialmente, esperando a que cada uno termine.

¿Y qué hay de plugins de importación como WP All Import?

WP All Import puede leer archivos XML grandes e importarlos en fragmentos, pero está diseñado para importar datos en tipos de publicación personalizados y campos ACF, NO para importar un WXR estándar con publicaciones/páginas/comentarios tal cual. Para la tarea de «mover un sitio completo», use las herramientas descritas anteriormente.

Resumen: qué herramienta usar según su tarea

No existe una herramienta universal; la elección depende del acceso al servidor que tenga y del tamaño del archivo.

  • Si puede contactar con el soporte de hosting, empiece por aumentar los límites. Lleva 5 minutos y a menudo resuelve el problema sin necesidad de dividir.
  • Archivo de hasta 256 MB sin acceso a consola: el divisor web de WXR resolverá la tarea en su navegador con un par de clics.
  • ¿Tiene SSH y WP-CLI? wp import con un directorio de archivos divididos es el método más fiable y rápido.
  • Conserve las utilidades de escritorio clásicas (WXR File Splitter / WXR Split) como opción de respaldo; funcionan en sistemas antiguos, pero los sitios de los desarrolladores ya no están disponibles.

¿Dividió su XML e importó el sitio con éxito? Comparta en los comentarios qué método le funcionó y si encontró alguna pérdida de contenido durante la importación.