
🪓 Як розділити великі XML-файли при імпорті в WordPress
Експортували сайт, а файл важить 30 мегабайт і не завантажується на новий хост? Стандартний імпорт WordPress мовчки обривається на півдорозі, і частина контенту просто втрачається. Знайома картина для тих, хто переїжджає зі старого сайту з сотнями дописів.
Причина, жорсткі ліміти хостингу: upload_max_filesize (зазвичай 2-8 МБ), post_max_size і таймаут скрипту в 30 секунд. WXR-файл (WordPress eXtended RSS) із багаторічним контентом легко перевищує ці межі.
Ось чотири робочих способи розділити великий XML на частини та імпортувати все без втрат. Від найпростішого до просунутого.
💡 Швидкий огляд:
- Підвищте ліміт завантаження через підтримку хостингу — це найшвидший шлях, якщо провайдер іде назустріч.
- Потрібен офлайн-інструмент під конкретну ОС, спробуйте десктопні WXR File Splitter (Windows) або WXR Split (Mac).
- Кросплатформний варіант без встановлення, онлайн-сплітер WXR розбиває файл прямо в браузері.
- Працюєте через командний рядок, WP-CLI
wp importприймає кілька файлів і не впирається у веб-ліміти.
Чому імпорт обривається: три ліміти, які заважають
WordPress під час імпорту впирається не в один, а одразу в три бар'єри.
upload_max_filesize, максимальний розмір одного завантаженого файлу. На дешевому хостингу це 2 МБ, на середньому, 8-32 МБ.post_max_size, загальний розмір POST-запиту. Має бути більшим за upload_max_filesize, інакше файл не дійде до обробника.max_execution_time, час виконання скрипту. Якщо імпорт триває довше 30-60 секунд, процес обривається, навіть якщо файл завантажився.
Експорт зі старого сайту, де 500 записів і тисячі коментарів, легко дає XML на 15-25 МБ. Такий файл у стандартний ліміт не вміщається.
Спосіб 1: Попросити хостера підвищити ліміти
Найпростіший шлях, написати в підтримку хостингу. Більшість провайдерів підвищують upload_max_filesize до 64-128 МБ за запитом, особливо на тарифах вище базового.
Якщо доступ до налаштувань сервера є у вас, додайте в wp-config.php:
1 define('WP_MEMORY_LIMIT', '256M');
І створіть файл .user.ini у корені сайту (для хостингів із PHP-FPM):
1 upload_max_filesize = 128M 2 post_max_size = 128M 3 max_execution_time = 300
На shared-хостингах .user.ini працює не завжди, тоді тільки через тікет у підтримку.
Після зміни лімітів завантажте вихідний WXR-файл через Інструменти → Імпорт → WordPress. Якщо файл усе ще не проходить, переходьте до розділення.
Спосіб 2: WXR File Splitter для Windows
Для Windows є класична десктопна утиліта WXR File Splitter. Інтерфейс у неї аскетичний, але задачу вирішує: відкриваєте WXR-файл, вказуєте кількість частин або максимальний розмір кожної, натискаєте «Split Files» і отримуєте кілька XML-файлів у тій самій папці.

Утиліта показує кількість елементів у файлі до розбивки: дописів, сторінок, коментарів. Це допомагає прикинути, на скільки частин ділити.
Зверніть увагу: інструмент старий, оригінальний сайт розробника більше не працює. Якщо утиліта не запускається на Windows 10/11, одразу переходьте до способу 4 (онлайн-сплітер), він надійніший.
Спосіб 3: WXR Split для Mac
Власникам Mac доступний аналог, WXR Split. Логіка та сама: завантажуєте XML, задаєте розмір частин, отримуєте набір файлів для послідовного імпорту.

Як і у випадку з Windows-версією, офіційний сайт інструменту може бути недоступний. Не витрачайте час на пошуки, веб-сплітер із наступного кроку працює на будь-якій ОС.
Спосіб 4: Онлайн-сплітер wxrfilesplitter.com
Найпрактичніший варіант на сьогодні, безплатний веб-інструмент WXR File Splitter. Працює в браузері, не потребує встановлення, не прив'язаний до операційної системи.
Як розділити файл:
- Відкрийте wxrfilesplitter.com.
- Завантажте WXR-файл, обмеження за розміром, 256 МБ, чого з запасом вистачає для будь-якого сайту.
- Вкажіть бажаний розмір частин, розробник рекомендує 2 МБ для стабільного імпорту.
- Натисніть Submit і скачайте архів із розділеними XML-файлами.
Інструмент не зберігає файли на сервері, тимчасові дані очищуються щогодини. Після розбивки імпортуйте кожен файл через стандартний Інструменти → Імпорт → WordPress один за одним.
Головний плюс: вам не потрібно шукати утиліту під свою ОС або розбиратися з командним рядком. Усе в браузері за пару кліків.
Спосіб 5: WP-CLI import (для тих, хто працює через консоль)
Якщо у вас є SSH-доступ до сервера і встановлений WP-CLI, імпорт можна зробити без жодного розділення або з розбивкою для швидкості.
WP-CLI приймає одразу кілька файлів:
1 wp import file1.xml file2.xml file3.xml --authors=create
Прапорець --authors=create створює облікові записи авторів, якщо їх немає на новому сайті.
Цей метод має дві переваги: по-перше, WP-CLI працює через командний рядок і не обмежений веб-лімітами PHP; по-друге, можна передати директорію з розділеними частинами однією командою.
Щоб увімкнути детальне логування під час імпорту, додайте в wp-config.php:
1 define('IMPORT_DEBUG', true);
Тоді WP-CLI виведе докладний звіт за кожним обробленим елементом, видно, що імпортувалося, а що пропущено.
⁉️🤔 Часті запитання
Файл 40 МБ, жоден спосіб не допомагає, що робити?
Скоріш за все, проблема не в розмірі, а в таймауті. Навіть розділений на частини по 2 МБ файл може зависнути, якщо сервер не справляється з обробкою кожної частини за 30 секунд. Попросіть хостера збільшити
max_execution_timeдо 300. Або використовуйте WP-CLI, він не залежить від веб-таймаутів.
Чи можна просто розбити XML у текстовому редакторі?
Технічно так, але практично ні. WXR-файл має складну структуру з просторами імен і повторюваними тегами
<item>, кожен із яких містить повний допис із метаданими. Ручна нарізка майже гарантовано зламає XML, імпортер WordPress видасть помилку парсингу. Користуйтеся спеціалізованими інструментами.
Чи обов'язково розбивати файл, якщо я переїжджаю на нормальний VPS?
На VPS ліміти налаштовуєте ви самі, підвищте
upload_max_filesizeіpost_max_sizeдо 128 МБ, і файл завантажиться цілком. Але з таймаутом обережніше: навіть на потужному сервері імпорт 500 записів із медіафайлами може зайняти 2-3 хвилини. Збільштеmax_execution_timeабо все ж розділіть файл для підстраховки.
Що робити, якщо частина контенту не імпортувалася після розбивки?
Перевірте, чи імпортували ви ВСІ отримані файли. Поширена помилка: скачали архів із wxrfilesplitter.com, завантажили перший файл і зупинилися. Кожен файл містить свою порцію елементів, пропуск будь-якої частини означає втрату цих записів. Імпортуйте послідовно, дочекавшись завершення кожного.
А що щодо плагінів імпорту, наприклад WP All Import?
WP All Import уміє читати великі XML та імпортувати їх частинами (chunking), але він заточений під імпорт даних у довільні типи записів і поля ACF, а НЕ під імпорт стандартного WXR з дописами/сторінками/коментарями як вони є. Для задачі «перевезти сайт цілком» беріть описані вище інструменти.
Підсумки: чим розбити XML під вашу задачу
Універсального інструменту немає, вибір залежить від того, який доступ у вас до сервера і наскільки великий файл.
- Якщо можете написати в підтримку хостингу, почніть із підвищення лімітів. Це 5 хвилин і часто вирішує проблему без жодної розбивки.
- Файл до 256 МБ, немає консольного доступу, веб-сплітер WXR вирішить задачу в браузері за пару кліків.
- Є SSH і WP-CLI,
wp importіз директорією розділених файлів, найнадійніший і найшвидший спосіб. - Олдскульні десктопні утиліти (WXR File Splitter / WXR Split) тримайте як запасний варіант, вони працюють на старих системах, але сайти розробників уже недоступні.
Розділили XML і успішно імпортували сайт? Розкажіть у коментарях, який спосіб спрацював у вас, і чи стикалися з тим, що частина контенту втрачалася під час імпорту.



