Если сайт уже собран и работает на локальном сервере, следующий шаг обычно один: перенести его на хостинг без поломки ссылок, изображений и входа в админку. На практике ошибки почти всегда связаны не с WordPress как таковым, а с тремя вещами: путями в базе данных, адресом сайта и настройками подключения к базе на новом сервере.
Ниже — рабочий порядок переноса, который подходит для обычного сайта на WordPress. Если у вас сложная инфраструктура, нестандартный хостинг или проект с большим объёмом данных, лучше сначала сделать копию и проверить перенос на тестовом домене или поддомене.
Что нужно перенести в первую очередь
У WordPress есть две части, без которых сайт не заработает:
- файлы сайта — ядро WordPress, тема, плагины, загрузки;
- база данных — записи, страницы, настройки, пользователи, меню, параметры темы и плагинов.
Если перенести только файлы, вы получите пустой сайт. Если перенести только базу, WordPress не найдёт медиафайлы и не сможет работать без файловой части. Поэтому перенос всегда делается как связка: файлы плюс база данных.
Подготовка локального сайта перед переносом
Сначала убедитесь, что локальная копия действительно рабочая. Проверьте, что сайт открывается без ошибок, админка доступна, а в медиатеке нет битых изображений. Это важно, потому что перенос не исправляет уже существующие проблемы — он только переносит их на хостинг.
Перед началом сделайте резервную копию локального сайта. Даже если перенос идёт впервые, копия нужна на случай, если вы ошибётесь с заменой домена или импортом базы. Минимум — архив файлов и дамп базы данных.
Если локальный сайт использует абсолютные ссылки на старый адрес, это нормально. После переноса их нужно будет заменить на адрес хостинга. Не пытайтесь править всё вручную в текстовом редакторе: в базе WordPress есть сериализованные данные, и простая массовая замена может их повредить.
Как перенести файлы WordPress на хостинг
Скопируйте содержимое папки сайта на локальном сервере в корень сайта на хостинге. Обычно это папка, где лежат каталоги wp-admin, wp-content, wp-includes и файл wp-config.php.
Если переносите сайт вручную, удобнее всего загрузить файлы через FTP/SFTP или файловый менеджер хостинга. Для небольших сайтов это нормально. Для крупных проектов быстрее и надёжнее использовать архив и распаковку на сервере, если хостинг это позволяет.
Особое внимание уделите папке wp-content/uploads. Именно там лежат изображения и другие загруженные файлы. Если её не перенести, сайт откроется, но медиафайлы будут отсутствовать.
Как перенести базу данных без поломки сайта
Из локальной среды нужно экспортировать базу данных и импортировать её в новую базу на хостинге. Это можно сделать через phpMyAdmin, Adminer или другой инструмент, который даёт ваш локальный сервер и хостинг.
Типовой порядок такой:
- экспортируете базу с локального сервера в файл
.sql; - создаёте новую базу данных на хостинге;
- импортируете туда дамп;
- подключаете WordPress к новой базе через
wp-config.php.
Если база большая, импорт может упереться в лимиты хостинга: размер файла, время выполнения PHP, ограничения на загрузку. В этом случае лучше использовать импорт через SSH или разбить дамп на части, если ваш инструмент это поддерживает. Но для большинства обычных сайтов хватает стандартного импорта через панель хостинга.
Что изменить в wp-config.php после переноса
После загрузки файлов на хостинг откройте wp-config.php и проверьте параметры подключения к базе данных:
define( 'DB_NAME', 'имя_базы' );
define( 'DB_USER', 'пользователь_базы' );
define( 'DB_PASSWORD', 'пароль_базы' );
define( 'DB_HOST', 'localhost' );Значение DB_HOST зависит от хостинга. На большинстве площадок это localhost, но иногда хостер указывает отдельный адрес сервера базы данных. Берите его из панели хостинга, а не угадывайте.
Если после переноса сайт выдаёт ошибку подключения к базе, сначала проверяйте именно эти четыре параметра. Чаще всего проблема не в WordPress, а в неверном имени базы, пользователе или пароле.
Замена локального домена на адрес хостинга
Самая частая ошибка после переноса — сайт открывается, но часть ссылок ведёт на локальный адрес вроде http://localhost/wordpress или http://site.test. Это происходит потому, что WordPress хранит адрес сайта в базе данных.
Нужно заменить старый локальный адрес на новый домен в таблице настроек и в содержимом записей, если там есть абсолютные ссылки. Делать это нужно аккуратно, потому что в базе могут быть сериализованные данные. Простая замена через текстовый редактор или SQL REPLACE() без понимания структуры может сломать настройки плагинов и темы.
Безопасный вариант — использовать инструмент, который умеет корректно менять URL в базе WordPress. На практике это можно сделать через WP-CLI, если он доступен на хостинге, или через специализированный плагин миграции. Если таких инструментов нет, можно заменить адрес вручную в базе только в тех таблицах и полях, где вы точно понимаете формат данных, но это уже рискованнее.
Если у вас есть доступ к WP-CLI, команда для замены домена выглядит так:
wp search-replace 'http://site.test' 'https://example.com' --skip-columns=guidЗдесь важно два момента. Во-первых, старый и новый адрес должны совпадать с реальными значениями на вашем сайте. Во-вторых, параметр --skip-columns=guid обычно используют, чтобы не переписывать GUID записей. Это стандартная практика при миграции WordPress.
Если WP-CLI недоступен, используйте плагин или инструмент хостинга, который умеет делать корректную замену URL в WordPress. Не стоит заменять адрес через обычный SQL-запрос по всей базе: он не учитывает сериализацию.
Проверка адресов сайта в настройках WordPress
После замены домена зайдите в админку и проверьте Настройки → Общие. Поля Адрес WordPress (URL) и Адрес сайта (URL) должны указывать на новый домен. Если админка ещё не открывается, эти значения можно временно задать в wp-config.php:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Это полезно как временная мера, если после переноса сайт не пускает в админку из-за неверного адреса. Но лучше потом вернуть управление URL в базу данных, чтобы не держать лишнюю жёсткую настройку в конфиге без необходимости.
Что проверить сразу после переноса
После загрузки файлов, импорта базы и замены домена не ограничивайтесь открытием главной страницы. Проверьте несколько типовых сценариев:
- открывается главная страница и внутренние страницы;
- работает вход в админку;
- открываются изображения из медиатеки;
- ссылки в меню ведут на новый домен;
- форма комментариев или обратной связи отправляется без ошибок;
- если есть кеш-плагин, он не отдаёт старые ссылки с локального адреса.
Отдельно проверьте постоянные ссылки. Если страницы открываются с ошибкой 404, зайдите в Настройки → Постоянные ссылки и просто сохраните их ещё раз без изменения структуры. Это обновляет правила перезаписи на сервере. На Apache для этого должен работать .htaccess, а на Nginx нужны корректные правила в конфигурации сервера. Если хостинг настроен неправильно, WordPress сам это не исправит.
Типичные проблемы после переноса и как их искать
Если сайт после переноса ведёт себя странно, сначала разделяйте проблему по слоям.
Сайт не открывается вообще. Обычно это ошибка подключения к базе, неверный wp-config.php, отсутствующие файлы или неправильный корень сайта на хостинге.
Открывается только главная страница, а внутренние дают 404. Чаще всего проблема в правилах постоянных ссылок или конфигурации веб-сервера.
Часть ссылок ведёт на локальный адрес. Значит, замена URL в базе выполнена не полностью или выполнена небезопасно.
Не грузятся картинки. Проверьте, перенесена ли папка uploads, совпадает ли путь к ней и не остались ли старые абсолютные ссылки в содержимом записей.
Админка открывается, но некоторые плагины работают не так, как на локальном сервере. Это может быть связано с версией PHP, расширениями сервера, лимитами памяти или различиями в настройках хостинга. Локальная среда и продакшен редко совпадают полностью.
Когда удобнее использовать плагин миграции
Ручной перенос полезен, если вы хотите понимать, как устроен WordPress, и контролировать каждый шаг. Но если сайт уже рабочий, а времени на ручную настройку мало, разумно использовать плагин миграции. Он помогает перенести файлы и базу в одном процессе и обычно сам корректно меняет URL.
Плагин особенно удобен, когда нужно перенести сайт без глубокого погружения в SQL и серверные настройки. Но у него есть ограничения: размер сайта, лимиты хостинга, платные функции, зависимость от конкретного инструмента. Для небольших и средних проектов это часто самый практичный путь, для сложных сайтов всё равно полезно понимать ручной сценарий.
Короткий порядок действий, если нужен рабочий перенос без лишних шагов
Если свести процесс к минимальному рабочему сценарию, он выглядит так:
- сделать резервную копию локального сайта;
- перенести файлы WordPress на хостинг;
- создать и импортировать базу данных;
- обновить данные подключения в
wp-config.php; - заменить локальный URL на домен хостинга безопасным способом;
- проверить главную страницу, внутренние ссылки, изображения и вход в админку;
- при необходимости пересохранить постоянные ссылки.
Если на каком-то этапе сайт ломается, не пытайтесь сразу исправлять всё подряд. Сначала определите, где именно проблема: в файлах, базе, домене или серверной конфигурации. Такой подход экономит время и не приводит к лишним правкам в рабочем проекте.