Этот материал для владельцев сайтов на WordPress - пошаговый план переноса на новый хостинг без потери файлов и базы данных.

Перенос сайта обычно нужен в трёх случаях: закончились ресурсы текущего тарифа у хостинг-компании, вы переезжаете с виртуального хостинга на VPS или просто меняете провайдера на более надёжного. Процесс занимает от получаса до нескольких часов в зависимости от размера сайта, и при аккуратном подходе сайт не теряет ни одной страницы и ни одной записи из базы.

Главное в переносе - не перепутать порядок действий: сначала резервная копия, потом новый хостинг, и только после проверки на тестовом адресе - переключение домена. Эта статья - про перенос сайтов на WordPress через FTP, phpMyAdmin и плагин Duplicator; для Bitrix или самописных движков последовательность действий будет другой.

Коротко:

  • Перенос WordPress состоит из двух частей: файлы сайта (через FTP) и база данных (через phpMyAdmin или плагин)
  • Перед переносом обязательно снимите полный бэкап и сохраните его в двух местах - локально и в облаке
  • Плагин Duplicator автоматизирует перенос файлов и базы в одном архиве и подходит новичкам без доступа по SSH
  • После переноса нужно поменять записи в wp-config.php и дождаться обновления DNS, прежде чем отключать старый хостинг
  • Выбор между виртуальным хостингом, VPS и выделенным сервером зависит от нагрузки и бюджета проекта

Что подготовить перед переносом: доступы, бэкап, выбор нового хостинга

Перед тем как переносить сайт, соберите все доступы в одном месте: логин и пароль от FTP или SSH, доступ в панель управления старого и нового хостинга, данные от базы данных и пароль администратора WordPress. Если доступы выдавал подрядчик, запросите их заранее - в моей практике это чаще всего тормозит перенос на день-два.

Выбор нового хостинга зависит от нагрузки проекта. Для небольшого сайта-визитки или блога хватает виртуального хостинга, где ресурсы серверов делятся между десятками аккаунтов. Для интернет-магазина с каталогом на тысячи товаров и посещаемостью от пары тысяч пользователей в сутки стоит смотреть на VPS - виртуальный выделенный сервер, где ресурсы выделены конкретно под ваш проект, а не делятся с соседями.

Тип хостинга Ресурсы Цена Сложность переноса
Виртуальный хостинг Общие с другими сайтами, лимиты CPU и памяти Низкая Низкая - через панель или FTP
VPS Выделенные под проект, корневой доступ по SSH Средняя Средняя - нужна настройка сервера с нуля
Выделенный сервер Полностью ваш физический сервер Высокая Высокая - требует администратора

Какой хостинг выбрать для WordPress интернет-магазина? Если каталог небольшой и трафик умеренный - достаточно качественного виртуального тарифа с поддержкой PHP 8 и SSD-дисками. Если же магазин растёт, заказы идут постоянно и сайт не должен тормозить в пиковые часы - переходите на VPS с корневым доступом, там вы сами контролируете распределение ресурсов под WooCommerce.

Из российских провайдеров для переноса сайта я регулярно рекомендую Timeweb - у них есть и виртуальные тарифы, и VPS, что удобно, если сайт со временем перерастёт начальный план. При выборе нового хостинга смотрите не только на цену тарифа, но и на то, какая панель управления используется, есть ли доступ по FTP и SSH, и как быстро техподдержка отвечает на тикеты - это пригодится именно в день переноса.

Создание резервной копии сайта: файлы и база данных

Резервная копия состоит из файлов сайта и базы данных - переносить нужно оба компонента, иначе сайт либо не запустится, либо откроется без контента. Файлы - это ядро WordPress, тема, плагины и папка uploads с картинками. База данных - это тексты страниц, записи, настройки и пользователи.

Проще всего сделать бэкап через панель управления хостинга: там обычно есть кнопка резервного копирования, которая архивирует всё содержимое аккаунта одним файлом. Если такой функции нет, используйте плагин, например UpdraftPlus или BackWPup - он создаст архив и позволит сохранить его прямо в облачное хранилище.

Второй вариант - вручную. Подключитесь по FTP и скачайте всю папку сайта на компьютер, сохраняя структуру каталогов. Для базы данных зайдите в phpMyAdmin, выберите нужную базу и сделайте экспорт - дамп базы данных требует кодировки UTF-8 без BOM, иначе после импорта на новом хостинге русские буквы превратятся в нечитаемые символы.

Типичная картина у малого бизнеса: владелец сайта хранит единственную копию локально на рабочем ноутбуке и теряет её при сбое диска. Поэтому храните архив в двух местах - на компьютере и в облаке, будь то Яндекс Диск, Google Drive или встроенное хранилище хостинга. Так вы не потеряете сайт, если один из носителей выйдет из строя.

Перед выгрузкой проверьте содержимое архива: в нём должны быть папки wp-content, wp-admin, wp-includes и файл wp-config.php, а также отдельный файл с дампом базы данных. Если какой-то из этих элементов отсутствует - бэкап неполный, и переносить его на новый хостинг рано.

Перенос файлов сайта на новый хостинг

Если в архиве на месте все папки и дамп базы данных - можно переходить к загрузке на новый сервер. Для передачи файлов сайта на хостинг обычно используется FTP-клиент FileZilla - бесплатная программа, которая работает и на Windows, и на Mac.

Скачайте FileZilla на компьютер и установите соединение с новым хостингом: потребуются хост, логин и пароль для подключения по FTP, которые даёт панель управления. После успешного соединения вы увидите два окна - слева файлы на вашем компьютере, справа файловый менеджер сервера.

Загрузите содержимое бэкапа в корневую папку сайта на новом хостинге - обычно это папка public_html или www. Перетащите файлы из левого окна в правое: клиент начнёт копировать данные, и скопировать весь сайт получится за несколько минут, если заранее проверить, что на новом хостинге достаточно места на диске под все файлы.

Если на сайте много медиафайлов - изображений, видео в папке wp-content/uploads - загрузка может занять несколько часов в зависимости от скорости соединения. Для крупных каталогов лучше заранее запускать FTP на ночь или использовать функцию докачки при обрыве связи.

После завершения загрузки проверьте права доступа к файлам и папкам: обычно это 644 для файлов и 755 для каталогов. Эти значения обеспечивают корректную работу - сайт читает и выполняет файлы и папки, а посторонние не могут редактировать их напрямую через веб. Если права выставлены неверно, сайт может выдавать ошибку 500 или не показывать изображения.

Перенос базы данных через phpMyAdmin

Веб-интерфейс phpMyAdmin используется для экспорта и импорта базы данных MySQL - его даёт панель управления хостингом, и работать с ним можно без единой команды в консоли.

Как перенести базу данных WordPress через phpMyAdmin: сначала на новом хостинге создайте пустую базу данных (database) и отдельного пользователя MySQL с полными правами на неё - это делается в разделе управления базами данных панели. Запишите имя БД, имя пользователя и пароль - они понадобятся дальше.

На старом хостинге откройте phpMyAdmin, выберите вашу базу слева и нажмите «Экспорт». Формат по умолчанию - SQL, его и оставляем. Получится дамп - файл со всеми таблицами и данными сайта в виде набора SQL-запросов.

Дальше зайдите в phpMyAdmin на новом хостинге, выберите созданную пустую базу и импортируйте дамп через вкладку «Импорт»: выберите файл и запустите выполнение запроса. Если дамп большой, а хостинг ограничивает размер загрузки - дамп можно разбить на части или залить через FTP и импортировать из файла на сервере.

Таблица wp_options содержит значения siteurl и home - это записанный в базе адрес сайта. Если домен при переносе меняется, одной замены файлов недостаточно: WordPress хранит адрес не только в wp_options, но и в сериализованных данных других таблиц, и обычный SQL-запрос replace может их повредить. Для безопасной замены URL в такой структуре я использую отдельный инструмент - подробно разберу его в блоке про смену домена ниже.

Параметр wp-config.php Старый хостинг Новый хостинг
DB_NAME значение из старой панели имя новой базы
DB_USER старый пользователь БД новый пользователь БД
DB_PASSWORD старый пароль новый пароль
DB_HOST обычно localhost узнать у нового хостинга

Настройка wp-config.php и запуск сайта на новом сервере

Файл wp-config.php хранит учётные данные подключения к базе данных - именно через него WordPress узнаёт, к какой базе и под каким пользователем обращаться при каждой загрузке страницы.

Откройте конфигурационный файл через файловый менеджер хостинга или FTP-клиент и измените в нём четыре параметра на новые значения из таблицы выше: DB_NAME, DB_USER, DB_PASSWORD и DB_HOST. Введите данные без опечаток - лишний пробел или неверный символ не даст базе подключиться корректно.

Ошибку Error establishing database connection чаще всего вызывают неверные данные в wp-config.php - неправильный пароль пользователя или хост базы, указанный не так, как требует новый сервер. Проверьте каждое значение ещё раз, сверяя с панелью управления новым хостингом.

Не переключайте DNS на новый сервер, пока не убедились, что сайт корректно открывается по IP или через файл hosts - иначе любая ошибка в настройках базы станет видна всем посетителям сразу, а не только вам на тестовом доступе.

Из практики студии «Мельница»

Файл hosts позволяет протестировать сайт на новом сервере до смены DNS - то есть посмотреть, как сайт работает на новом хостинге, не переключая домен для всех посетителей. Для этого в файл hosts на вашем компьютере добавляется строка с IP нового сервера и именем домена, и браузер начинает открывать сайт именно с новой площадки.

Убедитесь, что сайт открылся корректно: проверьте главную страницу, несколько внутренних, админку WordPress и форму обратной связи, если она есть. Это и есть ответ на вопрос, как проверить сайт на новом хостинге до смены DNS: если всё отображается нормально и пароль от админки сработал, сайт готов к переключению DNS на боевой режим.

Перенос с помощью плагина Duplicator

После ручной настройки wp-config.php логично спросить - а нельзя ли проще. Плагин Duplicator автоматизирует создание архива сайта и установщика, избавляя от ручного экспорта по FTP и работы с phpMyAdmin из блоков выше. Это отдельный плагин для WordPress, который устанавливают через стандартный интерфейс админки.

Прямой ответ на вопрос, как перенести WordPress с помощью плагина Duplicator: установите плагин на старом сайте, создайте архив (Package) из файлов и базы данных, скачайте его вместе с файлом installer.php, загрузите оба файла на новый хостинг через FTP и запустите installer.php в браузере - он автоматически развернёт сайт и настроит соединение с базой.

Пошагово это выглядит так:

  1. Перейдите в раздел «Плагины» → «Добавить новый», найдите Duplicator, установите и активируйте его.
  2. Откройте вкладку Packages и нажмите кнопку «Create New».
  3. Выберите параметры архивации (по умолчанию подходят стандартные настройки) и запустите сканирование - плагин проверит сайт на проблемы перед сборкой.
  4. Скачайте архив (installer.zip) и файл installer.php на компьютер.
  5. Загрузите оба файла в корень нового хостинга по FTP.
  6. Откройте в браузере адрес вида вашдомен.ру/installer.php и пройдите шаг за шагом установку: укажите параметры новой базы данных, которую заранее создали в панели хостинга.

На экране установки Duplicator сам предложит заменить старый домен на новый и обновит ссылки в базе - фактически это автоматический аналог ручной замены URL из блока про перенос базы данных. После завершения процесса плагин удаляет установочные файлы из соображений безопасности, и это стоит проверить вручную, если автоматика сработала не до конца.

Главное ограничение - бесплатная версия Duplicator поддерживает сайты объёмом до 500 МБ. Для небольшого блога или сайта-визитки этого достаточно, а вот интернет-магазин с каталогом изображений на несколько гигабайт в бесплатный лимит не впишется - там придётся либо чистить медиабиблиотеку, либо переносить вручную, либо покупать платную версию.

Критерий Ручной перенос (FTP + phpMyAdmin) Перенос через Duplicator
Время на перенос 1-3 часа в зависимости от объёма 20-40 минут
Нужны навыки SQL и работы с FTP-клиентом Да, на базовом уровне Нет, интерфейс пошаговый
Ограничение по размеру сайта Практически нет До 500 МБ в бесплатной версии
Кому подходит Крупные сайты, нестандартные конфигурации Небольшие блоги, сайты-визитки, новичкам

Смена домена, DNS и SSL: как избежать простоя сайта

Файлы перенесены, сайт открывается на новом хостинге по IP или через hosts - остался финальный и самый нервный этап: переключение DNS и выпуск сертификата безопасности. Сколько времени занимает перенос сайта на другой хостинг целиком - обычно от получаса технической работы до нескольких дней ожидания, и именно DNS-записи вносят основную неопределённость.

DNS-записи распространяются от нескольких минут до 72 часов в зависимости от настроек регистратора домена и провайдеров интернета, которые кэшируют данные на своей стороне. Часть посетителей увидит новый сайт почти сразу, другие - только через сутки, пока их провайдер не обновит кэш. Это нормально, и паниковать по этому поводу не стоит.

Снижение TTL (time to live - время жизни записи) до 300 секунд за сутки-двое до переноса уменьшает время переключения DNS. Сделать это можно в панели управления доменом, у регистратора или в DNS-зоне текущего хостинга: найдите параметр TTL у A-записи и доменной зоны, выберите значение 300 и подождите, пока старое значение истечёт по расписанию. Домен при этом менять или перерегистрировать не нужно - меняется только IP-адрес в записях, сам адрес сайта для посетителей остаётся прежним.

Дальше порядок действий такой:

  1. Убедитесь, что сайт полностью работает на новом хостинге (см. проверку из предыдущего блока).
  2. Зайдите в панель управления доменом и смените A-запись (и запись для www) на IP-адрес нового сервера.
  3. Не выключайте старый хостинг сразу - оставьте его активным ещё на неделю, пока DNS не разойдётся по всем провайдерам.
  4. Выпустите SSL-сертификат на новом хостинге до переключения DNS или сразу после него.

SSL-сертификат Let's Encrypt большинство хостинг-провайдеров выдают бесплатно, и чтобы его получить, можно воспользоваться автоматическим выпуском прямо из панели управления - процесс занимает несколько минут. Чтобы настроить SSL после переноса сайта: откройте раздел «SSL-сертификаты» в панели нового хостинга, выберите домен и нажмите кнопку выпуска сертификата - система сама подтвердит владение доменом и подключит шифрование, если домен уже указывает на этот сервер.

Если нужно заодно перенести WordPress на новый домен (не просто на новый хостинг, а полностью сменить адрес сайта), процедура усложняется: кроме смены A-записи придётся прогнать замену URL по базе данных отдельным инструментом и настроить редирект со старого домена на новый через .htaccess, чтобы не потерять позиции в поиске и переходы по старым ссылкам.

Кэширование DNS в браузере и в операционной системе приводит к обращениям к старому серверу после переключения даже тогда, когда DNS уже обновился у провайдера. Если после смены записей сайт у вас лично всё ещё выглядит как старый - очистите кэш DNS командой ipconfig /flushdns на Windows или откройте сайт в режиме инкогнито, прежде чем подозревать ошибку в настройках.

Типичные ошибки после переноса и финальная проверка

Даже при аккуратном переносе по всем шагам выше часть сайтов после смены хостинга работает не идеально с первого раза. Почему сайт не открывается после переноса на новый хостинг - в большинстве случаев причина в одной из трёх вещей: DNS ещё не распространился, SSL-сертификат не выпущен или не подключен, либо файл .htaccess не перенёсся вместе с остальными файлами.

Файл .htaccess определяет правила доступа и переадресации на сервере Apache, и из-за настроек отображения скрытых файлов его легко пропустить при копировании по FTP. Если после переноса сайт выдаёт ошибку 403 или 404 на внутренних страницах при рабочей главной странице - первым делом проверьте, скопировался ли .htaccess, и при необходимости пересоздайте стандартный файл через настройки постоянных ссылок в WordPress.

Что делать, если после переноса не работают ссылки на старый домен внутри статей и меню: используйте плагин Update URLs или отдельный инструмент Search Replace DB, который упоминался в блоке про перенос базы данных. Search Replace DB сохраняет целостность сериализованных массивов при замене URL - это критично, потому что обычный текстовый поиск-замена в фразах настроек плагинов и виджетов ломает структуру данных и может вывести сайт из строя целиком.

Плагин Update URLs безопасно заменяет ссылки на старый домен в базе данных прямо из интерфейса WordPress, без доступа к phpMyAdmin - удобный вариант, если SQL-запросы кажутся рискованными. Выполните замену, проверьте несколько статей с внутренними ссылками и изображениями, убедитесь, что картинки стали загружаться с нового домена. Если на сайте настроена контекстная реклама с UTM-метками или счётчиками конверсий, заодно проверьте, что скрипты аналитики и рекламных кабинетов по-прежнему срабатывают на новом адресе.

Отдельная головная боль - форма обратной связи и уведомления перестали приходить на почту. Новый IP-адрес сервера может быть помечен как спам почтовыми провайдерами, если до вас на этом IP уже отправляли рассылки, нарушающие правила. Проверьте папку «Спам» в своём почтовом ящике, а для надёжности настройте отправку через SMTP стороннего сервиса вместо встроенной функции сервера.

Для интернет-магазина отдельно проверьте приём оплаты: webhook-адреса (ссылки для автоматических уведомлений от платёжной системы) требуют обновления после миграции интернет-магазина, если в настройках эквайринга или агрегатора оплаты зафиксирован конкретный IP или домен сервера. Сделайте тестовый заказ на небольшую сумму и убедитесь, что уведомление об оплате долетает до сайта и статус заказа меняется автоматически.

После того как технически всё работает, стоит проверить SEO-последствия переноса. Google Search Console и Яндекс.Вебмастер выявляют ошибки индексирования после переноса - зайдите в оба сервиса, проверьте раздел с ошибками сканирования и отправьте карту сайта на переобход, если адрес сервера или протокол (http на https) изменился.

Финальный чек-лист перед тем, как сайт можно считать успешно перенесённым:

  • Главная страница, внутренние страницы и админка открываются без ошибок на https.
  • Форма обратной связи и письма с уведомлениями о заказах доходят до почты.
  • Ссылки на изображения и внутренние страницы ведут на новый домен, а не на старый.
  • SSL-сертификат активен, в адресной строке нет предупреждений о безопасности.
  • Search Console и Яндекс.Вебмастер не показывают новых ошибок индексирования за последние дни.

Чтобы перенести WordPress на новый хостинг без потери данных: делайте полный бэкап файлов и базы перед началом работ, проверяйте сайт на новом сервере до переключения DNS и не отключайте старый хостинг минимум неделю - тогда любую ошибку можно откатить без потери контента. На одном из переносов для клиентской визитки таким способом получилось полностью переключить сайт на новый хостинг за один рабочий день, с простоем меньше 10 минут и без единой потерянной заявки с формы.

Сколько стоит перенос сайта на другой хостинг, если делать его самостоятельно - фактически бесплатно, кроме стоимости самого хостинга и домена. Если разбираться самому не хочется и хочется делегировать задачу специалисту - на Kwork перенос простого сайта на WordPress на новый хостинг обычно делают за 1000-2000 рублей, а более сложные случаи с интернет-магазином и сменой домена оцениваются индивидуально после просмотра проекта.

Данная статья основана на личном опыте автора и актуальна на момент публикации. Интерфейсы сервисов и алгоритмы поисковых систем регулярно меняются - рекомендую проверять актуальность инструкций на официальных ресурсах. Если у вас остались вопросы - задайте их в комментариях.

Список литературы

  1. WordPress Developer Resources - Migrating WordPress // developer.wordpress.org
  2. Google Search Central - Site moves with URL changes // developers.google.com
  3. Яндекс для вебмастеров - Переезд сайта на новое доменное имя // yandex.ru
Поделитесь Вашим мнением
Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Еще записи из этой же рубрики

Что будем искать? Например,Хостинг

Минуту внимания
Мы используем файлы cookies, чтобы обеспечивать правильную работу нашего веб-сайта, а также работу функций социальных сетей и анализа сетевого трафика.