WordPress Importer: встроенный инструмент миграции, о котором молчат
WordPress Importer — один из тех редких плагинов, который поставляется с каждой установкой WordPress, но хронически недоиспользуется. Большинство владельцев сайтов бросаются искать сторонние сервисы миграции, в то время как нативный инструмент сидит прямо в меню Tools и ждёт. Он берёт на себя грязную работу по перемещению контента между установками WordPress, не требуя доступа к базе данных, серверным учётным данным или технической акробатики. Если ваш хостинг ограничивает импорт базы данных через phpMyAdmin — это ваш спасательный люк.
Плагин парсит WXR-файлы — WordPress eXtended RSS — XML-формат, который упаковывает весь ваш контент в единый портативный архив. Представьте универсальный контейнер: записи, страницы, произвольные типы записей, комментарии, категории, теги, произвольные поля и даже информацию об авторах сериализуют в один файл. Вы экспортируете его с Сайта А, импортируете на Сайт Б. Никаких SQL-дампов, никаких таймаутов phpMyAdmin, никаких кошмаров с перекодировкой. Формат WXR стабилен более десяти лет, так что проблемы прямой и обратной совместимости практически не встречаются.

Какие данные импортируются
Формат WXR на удивление всеобъемлющ. Когда вы запускаете экспорт из меню Tools, вот что именно упаковывается в XML-файл:
- Записи и страницы — все типы записей, включая стандартные записи, страницы и любые произвольные типы, зарегистрированные вашей темой или плагинами
- Комментарии — одобренные, ожидающие проверки и спам-комментарии с сохранением метаданных
- Категории и теги — полная иерархия таксономий, включая родительско-дочерние связи и описания терминов
- Произвольные поля — все метаданные записей, от SEO-полей до настроек макета
- Авторы — имена авторов, email и привязки к записям (хотя потребуется переназначить их при импорте)
- Элементы меню навигации — структура и иерархия меню
- Медиавложения — ссылки на файлы с возможностью загрузки и импорта фактических файлов
Что не импортируется: настройки темы, конфигурации плагинов, расположение виджетов, учётные записи пользователей с паролями и параметры уровня сайта, хранящиеся в таблице wp_options. Это важно — импортер переносит контент, а не конфигурацию. Настройки темы и плагинов придётся воспроизводить на целевом сайте вручную.
Установка и использование
Установка занимает тридцать секунд. Зайдите в Tools → Import в админ-панели WordPress. Найдите запись WordPress в списке импортёров и нажмите Install Now. WordPress загружает плагин из репозитория, активирует его и переносит вас на экран импорта. Никакого FTP, загрузки файлов, командной строки.
Процесс импорта состоит из трёх этапов:
- Выбор файла — загрузите WXR-файл. WordPress принимает файлы до лимита PHP
upload_max_filesize. Если ваш экспорт превышает лимит, файл придётся разбить (подробнее об этом ниже). - Назначение авторов — сопоставьте каждого автора из экспорта с существующим пользователем на целевом сайте или создайте новых пользователей на лету. Можно также назначить весь импортированный контент одному существующему пользователю — удобно при объединении сайтов.
- Импорт вложений — отметьте галочку Download and import file attachments. Импортёр загружает каждое изображение с исходного сервера и сохраняет в вашу медиабиблиотеку. Без этой галочки импортированные записи будут ссылаться на изображения на старом домене — и эти ссылки сломаются, как только старый сайт отключится.
Формат файла WXR изнутри
WXR-файл — это обычный XML с определённым пространством имён WordPress. Начинается со стандартных метаданных канала RSS, затем оборачивает каждый элемент контента в тег <item> с расширенными полями, специфичными для WordPress. Вот как концептуально выглядит запись одной публикации:
| XML-элемент | Назначение |
|---|---|
<title> |
Заголовок записи или страницы |
<content:encoded> |
Полное содержимое записи с HTML |
<wp:post_type> |
Тип контента — post, page или произвольный |
<wp:status> |
Статус публикации — publish, draft, pending |
<wp:postmeta> |
Пары ключ-значение произвольных полей |
<category domain="category"> |
Назначенные категории |
<category domain="post_tag"> |
Назначенные теги |
<dc:creator> |
Имя пользователя автора |
<wp:comment> |
Вложенные данные комментариев с автором, email, датой |
Формат WXR хорошо документирован и открыт. Сторонние инструменты могут генерировать валидные WXR-файлы — так что если вы мигрируете с платформы не на WordPress, разработчик может написать конвертер, который выдаст WXR и скормит его напрямую WordPress Importer. Это стандартный подход для миграции с Blogger, Tumblr и Joomla уже много лет.
Сравнение с другими инструментами миграции
WordPress Importer — не единственный игрок на поле. Вот как он выглядит на фоне трёх самых распространённых альтернатив:
| Характеристика | WordPress Importer | All-in-One WP Migration | Duplicator | Ручной SQL |
|---|---|---|---|---|
| Стоимость | Бесплатно | Бесплатно (премиум для больших сайтов) | Бесплатно + Pro от $69 | Бесплатно |
| Технические навыки | Низкие | Очень низкие | Средние | Высокие |
| Импорт плагинов | Нет | Да | Да | Да |
| Импорт настроек темы | Нет | Да | Да | Да (через таблицу options) |
| Ограничение размера | Лимит загрузки PHP | 512 МБ (беспл.), безлимит (премиум) | Зависит от сервера | Нет (прямой доступ к БД) |
| Обработка сериализованных данных | Встроенная | Встроенная | Встроенная | Ручная — нужен инструмент поиска-замены |
| Выборочный импорт | Частичный (сопоставление авторов) | Частичный (исключение файлов) | Только весь сайт | Полный контроль |
| Перезапись URL | Не требуется (только контент) | Автоматическая | Автоматическая | Ручные SQL-запросы или WP-CLI |
Выбор зависит от того, что именно вы мигрируете. Если нужно перенести только контент — скажем, с промежуточного сайта, где вы пишете черновики, на продакшен — Importer даёт самое чистое решение. Он оставляет оба сайта независимо настроенными и переносит только контент. All-in-One WP Migration отлично справляется с полным клонированием сайта: темы, плагины, настройки — всё. Duplicator — выбор разработчиков, которым нужно упаковать и развернуть полный снимок сайта. Ручной SQL — ядерный вариант, когда все остальные инструменты не справились, но будьте готовы самостоятельно обрабатывать сериализованные данные и заменять URL.
Импорт больших сайтов
Самая частая жалоба на WordPress Importer — ограничения размера файла. Стандартная конфигурация PHP ограничивает загрузку значениями от 2 до 64 МБ в зависимости от хостинга. Сайт с тысячей записей и комментариев легко генерирует WXR-файл объёмом более 100 МБ. Вот как это обойти:
- Разбейте WXR-файл — используйте утилиту командной строки
wp-splitили специальный плагин вроде Advanced Export, чтобы разделить экспорт на части по типу записей или диапазону дат. Импортируйте каждую часть отдельно. - Временно увеличьте лимиты PHP — добавьте
php_value upload_max_filesize 256Mиphp_value post_max_size 256Mв файл.htaccess. Удалите эти строки после импорта. - Используйте WP-CLI — импортёр командной строки обходит ограничения HTTP-загрузки полностью. Выполните
wp import yourfile.xml --authors=create, и он обработает файл прямо на сервере. - Экспорт по диапазонам дат — при экспорте используйте фильтр дат для создания нескольких меньших экспортов. Экспортируйте 2023-2024 как один файл, 2025-2026 как другой.
Ещё одно соображение по производительности: импортёр может работать медленно с тысячами вложений. Каждая загрузка изображения потребляет HTTP-запросы и серверное время. Для сайтов с обширными медиабиблиотеками рассмотрите загрузку директории /uploads/ через FTP до импорта WXR-файла. Импортёр пропустит уже существующие файлы, резко ускорив процесс.
Типичные проблемы и их решение
Таймаут при импорте
Самая частая жалоба. Среды виртуального хостинга убивают долго выполняющиеся PHP-процессы. Решение: разбейте WXR-файл на меньшие части по 100-200 записей в каждой. Или используйте WP-CLI, который обрабатывает таймауты элегантнее.
Сбой загрузки медиафайлов
Если исходный сервер медленный, отключён или блокирует запросы с вашего сервера, загрузка вложений тихо проваливается. Импортёр логирует это, но не предупреждает. После импорта проверьте медиабиблиотеку на отсутствующие изображения. Плагин вроде Broken Link Checker выявит записи, всё ещё ссылающиеся на внешние изображения.
Путаница с назначением авторов
Экран сопоставления авторов показывает имена пользователей, а не отображаемые имена. Если у вас есть авторы с похожими именами на разных сайтах, перепроверьте каждое сопоставление. Назначить записи не тому автору — боль, которую трудно исправить потом: придётся массово редактировать каждую запись или писать запрос к базе данных.
Дублирование контента
Повторный импорт того же WXR-файла создаёт дубликаты. Импортёр не дедуплицирует по умолчанию. Если вы прервали предыдущий импорт и нужно начать заново, сначала удалите частично импортированные записи. Используйте массовые действия в списке записей для очистки.
Проблемы с кодировкой
Редко, но неприятно. Если ваш сайт использует кодировку базы данных не UTF-8, WXR-файлы могут выдавать искажённые символы. Всегда убеждайтесь, что и исходная, и целевая базы данных используют UTF-8 (utf8mb4). Большинство современных хостеров по умолчанию так и делают, но старые установки иногда отстают.
Чеклист после миграции
Когда импортёр завершит работу, не закрывайте вкладку и не считайте дело сделанным. Пройдитесь по этому списку, чтобы убедиться, что всё встало на свои места:
- Проверьте постоянные ссылки — откройте несколько импортированных записей и страниц. Совпадают ли URL с ожидаемой структурой?
- Проверьте категории и теги — откройте экран категорий. Сохранились ли родительско-дочерние связи? Выглядят ли количества записей правдоподобно?
- Проверьте произвольные поля — если вы используете ACF, Meta Box или подобные плагины, откройте запись и убедитесь, что данные произвольных полей отображаются в редакторе.
- Проверьте отображение комментариев — найдите запись, у которой были комментарии на исходном сайте. Отображаются ли они с правильными именами авторов и датами?
- Проверьте медиабиблиотеку — откройте экран Media и пролистайте. Каждое импортированное изображение должно иметь миниатюру. Отсутствие миниатюр означает, что загрузка провалилась.
- Обновите внутренние ссылки — если ваши записи содержат внутренние ссылки на старый домен, их нужно обновить. Используйте плагин поиска-замены вроде Better Search Replace для массового исправления.
- Сбросьте постоянные ссылки — зайдите в Settings → Permalinks и нажмите Save Changes. Это перегенерирует правила перезаписи и гарантирует корректную обработку импортированных URL.
- Отправьте карты сайта — если используете SEO-плагин, перегенерируйте XML-карты сайта и повторно отправьте их в Google Search Console. Импортированный контент нужно переиндексировать.
Когда не стоит использовать WordPress Importer
Несмотря на свою полезность, импортёр не всегда правильный инструмент. Пропустите его в следующих сценариях:
- Полная миграция сайта на новый домен — используйте All-in-One WP Migration или Duplicator. Импортёр не переносит настройки темы и плагинов, так что вы потратите часы на повторную настройку.
- Миграция с платформы не на WordPress без WXR-экспорта — хотя можно написать конвертер в WXR, специализированные плагины миграции для Drupal, Joomla или Shopify обрабатывают логику сопоставления и крайние случаи гораздо лучше.
- Миграция магазинов WooCommerce — WooCommerce хранит данные товаров в произвольных типах записей и обширных метаданных. Импортёр может обработать типы записей, но история заказов, учётные записи клиентов и настройки платёжных шлюзов не включаются. Используйте специальный инструмент миграции WooCommerce.
- Постоянная синхронизация контента — импортёр это разовая пакетная операция. Для непрерывной синхронизации между стейджингом и продакшеном смотрите в сторону WP Migrate DB Pro или процесса деплоя с контролем версий.
Подводные камни и нюансы
За годы работы с WordPress Importer я вывел несколько нюансов, которые не очевидны из документации. Первое: импортёр не очищает кэш после завершения. Если на целевом сайте работает кэширующий плагин (WP Rocket, W3 Total Cache, LiteSpeed Cache) — сбросьте кэш вручную после импорта. Иначе страницы архивов категорий могут показывать устаревшие количества записей, а поиск по сайту — не находить свежие материалы.
Второе: ревизии записей не входят в WXR-файл. Если на исходном сайте была включена история правок, всё это останется там. На целевом сайте каждая импортированная запись будет иметь ровно одну актуальную версию. Для контент-менеджеров, привыкших к возможности отката изменений, это может стать неприятным сюрпризом.
Третье: порядок импорта имеет значение. Если вы импортируете записи несколькими партиями, партия с категориями и тегами должна идти первой. Иначе записи из последующих партий не смогут привязаться к несуществующим таксономиям, и вы получите осиротевшие записи без категорий.
Четвёртое: импортёр не умеет обрабатывать посты с одинаковыми GUID. GUID — это уникальный идентификатор записи в RSS, и WordPress Importer использует его для дедупликации. Если два WXR-файла содержат записи с одинаковыми GUID (что случается при клонировании сайтов), импортёр пропустит дубликаты без предупреждения. Проверьте это поведение на тестовом импорте, прежде чем запускать на продакшене. Лучше один раз убедиться, чем потом разгребать последствия неполного переноса данных.
Работа с кодировками и сериализованными данными
Отдельная головная боль — кодировки. WXR-файл всегда в UTF-8, но внутри него могут быть данные, которые на исходном сайте хранились в windows-1251 или другой однобайтовой кодировке. Результат: кракозябры вместо кириллицы в импортированных произвольных полях. Лечится ручным перекодированием WXR-файла перед импортом или предварительной конвертацией базы данных исходного сайта в UTF-8.
Сериализованные данные — ещё один тонкий момент. Многие плагины хранят настройки в сериализованном PHP-формате внутри произвольных полей. Например, слайдер Revolution Slider сохраняет конфигурацию слайдов как сериализованный массив. WXR-файл содержит эти данные как есть, но если на целевом сайте установлена другая версия того же плагина, десериализация может упасть с ошибкой. Симптом: импортированный контент отображается, но слайдер молчит или показывает белый экран. Решение: установите ровно ту же версию плагина на целевом сайте, затем импортируйте, затем обновите плагин.
Ещё один практический совет для тех, кто часто мигрирует контент: сохраняйте WXR-файлы с осмысленными именами. export-2026-05-26-posts-only.xml понятнее, чем wordpress.2026-05-26.xml, когда через полгода вам придётся разбираться, что в каком файле.
Часто задаваемые вопросы
Перезаписывает ли WordPress Importer существующий контент?
Нет. Импортёр создаёт новые записи и страницы. Он не обновляет уже существующий контент. Если импортировать запись с тем же URL-именем, что у существующей, WordPress добавит числовой суффикс к слагу, чтобы избежать конфликта. Это сделано намеренно — импортёр не разрушает существующие данные.
Можно ли импортировать с WordPress.com на свой хостинг?
Да. WordPress.com предоставляет стандартный WXR-экспорт в разделе Tools → Export. Скачайте его и импортируйте прямо в вашу автономную установку WordPress с помощью Importer. Процесс идентичен миграции с одного автономного сайта на другой.
Что произойдёт, если импорт прервётся?
Импортёр не очищает частичные результаты. Записи, импортированные до прерывания, остаются, а повторный запуск без очистки создаст дубликаты. Самый безопасный подход после прерывания: удалите частично импортированный контент и начните заново с новым WXR-файлом.
Можно ли импортировать только определённые типы записей?
Напрямую через интерфейс — нет. Импортёр обрабатывает всё, что есть в WXR-файле. Для выборочного импорта нужно либо отредактировать WXR-файл перед загрузкой (удалить элементы <item> ненужных типов), либо использовать плагин вроде Advanced Export, который позволяет выбрать, что экспортировать.
Обрабатывает ли импортёр миниатюры записей?
Да, при условии, что вы отметили опцию Download and import file attachments. Импортёр загружает миниатюру с исходного сервера и назначает её импортированной записи. Если исходный сервер недоступен, миниатюра будет отсутствовать.
Сохранятся ли мои SEO-метаданные при импорте?
Да. SEO-плагины вроде Yoast и Rank Math хранят свои данные как произвольные поля. Поскольку формат WXR включает все метаданные записей, ваши SEO-заголовки, описания, фокусные ключевые слова и метаданные для соцсетей переносятся без потерь — при условии, что на целевом сайте установлен тот же SEO-плагин.
Как увеличить лимит загрузки PHP для больших WXR-файлов?
Отредактируйте файл php.ini или добавьте директивы в .htaccess: php_value upload_max_filesize 256M и php_value post_max_size 256M. Если на виртуальном хостинге нет доступа к этим файлам, попросите хостера временно увеличить лимиты. Альтернатива — WP-CLI, который полностью обходит HTTP-лимиты.
Можно ли импортировать защищённые паролем записи?
Да. Формат WXR включает флаг защиты паролем и сам пароль. Импортёр воссоздаёт защищённые паролем записи с тем же паролем, и они ведут себя идентично на целевом сайте.
Поддерживает ли импортёр мультисайтовые сети?
Да, но с оговоркой. Импортёр работает на отдельных сайтах внутри мультисайтовой сети. Импортируйте на конкретном подсайте, куда нужен контент. Массовый импорт на несколько подсайтов не поддерживается — запускаете по одному разу на каждый подсайт.
Что произойдёт с шорткодами плагинов, не установленных на целевом сайте?
Они останутся в тексте записи как есть — например, [my_plugin_shortcode] отобразится в чистом виде. Импортёр не обрабатывает и не удаляет шорткоды. Когда вы установите и активируете соответствующий плагин, шорткоды должны отображаться корректно.
Нажмите для реакции


