Когда нужен перенос WordPress на новый домен
Перенос WordPress сайта на новый домен может потребоваться в различных ситуациях:
- Переезд с локального сервера на продакшн
- Смена доменного имени компании
- Создание тестовой копии на субдомене
- Объединение нескольких сайтов
- Миграция на новый хостинг
Подготовка к переносу
1. Резервное копирование
Перед любыми изменениями создайте полный бэкап:
- База данных: экспорт через phpMyAdmin или WP-CLI
- Файлы: все файлы WordPress, темы, плагины, загрузки
- Конфигурация: файл wp-config.php
Создание бэкапа через phpMyAdmin:
- Выберите базу данных
- Вкладка «Экспорт»
- Метод: «Быстрый» или «Настраиваемый»
- Формат: SQL
- Нажмите «Вперед»
Создание бэкапа через WP-CLI:
# Экспорт базы данных
wp db export backup.sql
# Экспорт всех файлов
tar -czf wordpress-backup.tar.gz /path/to/wordpress/
2. Проверка версий
Убедитесь, что на новом сервере установлены совместимые версии:
- PHP 7.4+ (рекомендуется 8.0+)
- MySQL 5.7+ или MariaDB 10.3+
- Достаточно места на диске
- Соответствующие права доступа
Процесс переноса
Шаг 1: Загрузка файлов
Скопируйте все файлы WordPress на новый сервер:
- Через FTP/SFTP (FileZilla, WinSCP)
- Через SSH (scp, rsync)
- Через панель хостинга (файловый менеджер)
Через rsync (рекомендуется):
rsync -avz --exclude='wp-config.php' \
/path/to/old/site/ user@new-server:/path/to/new/site/
Шаг 2: Импорт базы данных
Импортируйте бэкап базы данных на новый сервер:
Через phpMyAdmin:
- Создайте новую базу данных
- Выберите базу данных
- Вкладка «Импорт»
- Выберите файл .sql
- Нажмите «Вперед»
Через командную строку:
mysql -u username -p database_name < backup.sql
Шаг 3: Настройка wp-config.php
Обновите файл wp-config.php с новыми данными:
<?php
// База данных
define('DB_NAME', 'new_database_name');
define('DB_USER', 'new_database_user');
define('DB_PASSWORD', 'new_database_password');
define('DB_HOST', 'localhost');
// Префикс таблиц
$table_prefix = 'wp_';
// Ключи безопасности (оставьте старые или сгенерируйте новые)
define('AUTH_KEY', 'your-unique-key-here');
define('SECURE_AUTH_KEY', 'your-unique-key-here');
// ... остальные ключи
// Настройки для продакшна
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
?>
SQL-запросы для замены URL
После импорта базы данных необходимо заменить все старые URL на новые. Важно: замените префикс таблиц `wp_` на ваш префикс, если он отличается, а также замените старый и новый домены в запросах.
Основные SQL-запросы (выполните все три)
Эти три запроса заменят URL в основных местах базы данных. Замените домены на свои:
-- 1. Замена site_url и home_url в настройках
UPDATE wp_options
SET option_value = REPLACE(option_value, 'http://localhost', 'https://evaris.ru')
WHERE option_name = 'home' OR option_name = 'siteurl';
-- 2. Замена URL в содержимом постов и страниц
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'http://localhost', 'https://evaris.ru');
-- 3. Замена URL в метаданных постов (произвольные поля)
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'http://localhost', 'https://evaris.ru');
Пример для реального переноса:
UPDATE wp_options
SET option_value = REPLACE(option_value, 'http://localhost', 'https://evaris.ru')
WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'http://localhost', 'https://evaris.ru');
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'http://localhost', 'https://evaris.ru');
Как выполнить:
- Откройте phpMyAdmin
- Выберите базу данных вашего WordPress сайта
- Перейдите на вкладку «SQL»
- Вставьте все три запроса (заменив домены на свои)
- Нажмите «Вперед»
Дополнительные SQL-запросы
1. Замена site_url и home_url (детально)
WordPress хранит базовые URL в таблице options. Без замены сайт будет перенаправлять на старый домен:
UPDATE wp_options
SET option_value = REPLACE(option_value, 'http://localhost', 'https://evaris.ru')
WHERE option_name = 'home' OR option_name = 'siteurl';
2. Замена URL в содержимом постов (детально)
Все абсолютные ссылки и изображения в постах нужно обновить:
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'http://localhost', 'https://evaris.ru');
3. Замена URL в метаданных постов (детально)
Произвольные поля (custom fields) могут содержать ссылки:
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'http://localhost', 'https://evaris.ru');
4. Замена URL в комментариях
Ссылки в комментариях и URL авторов:
UPDATE wp_comments
SET comment_content = REPLACE(comment_content, 'http://localhost', 'https://evaris.ru');
UPDATE wp_comments
SET comment_author_url = REPLACE(comment_author_url, 'http://localhost', 'https://evaris.ru');
5. Замена GUID (глобальные идентификаторы)
GUID используются в RSS. Для локальных сайтов меняем все, для публичных — только вложения:
-- Для локального переноса (меняем все)
UPDATE wp_posts
SET guid = REPLACE(guid, 'http://localhost', 'https://evaris.ru');
-- Для публичного сайта (только вложения)
UPDATE wp_posts
SET guid = REPLACE(guid, 'http://old-site.ru', 'https://evaris.ru')
WHERE post_type = 'attachment';
6. Замена URL в опциях виджетов
Виджеты могут содержать ссылки на старый домен:
UPDATE wp_options
SET option_value = REPLACE(option_value, 'http://localhost', 'https://evaris.ru')
WHERE option_name LIKE 'widget_%';
7. Замена URL в настройках тем
Тема может хранить URL в своих опциях:
UPDATE wp_options
SET option_value = REPLACE(option_value, 'http://localhost', 'https://evaris.ru')
WHERE option_name LIKE 'theme_mods_%' OR option_name LIKE '%_theme_options';
Использование плагинов для переноса
Duplicator
Популярный плагин для миграции WordPress:
- Установите Duplicator на старом сайте
- Создайте пакет (Package)
- Скачайте installer.php и архив
- Загрузите на новый сервер
- Запустите installer.php в браузере
- Следуйте инструкциям мастера
All-in-One WP Migration
Простой плагин для экспорта/импорта:
- Установите на старом сайте
- Экспорт → Export to File
- Установите на новом сайте
- Импорт → Import from File
WP-CLI Search-Replace
Для продвинутых пользователей — замена через командную строку:
# Безопасная замена (с проверкой)
wp search-replace 'http://localhost' 'https://evaris.ru' --dry-run
# Реальная замена
wp search-replace 'http://localhost' 'https://evaris.ru'
# Замена в определенных таблицах
wp search-replace 'http://localhost' 'https://evaris.ru' \
--skip-columns=guid --all-tables
Дополнительные настройки
Настройка .htaccess
Проверьте файл .htaccess на наличие старых URL:
# Редирект со старого домена (если нужно)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-site.ru [NC]
RewriteRule ^(.*)$ https://evaris.ru/$1 [R=301,L]
# Стандартные правила WordPress
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Обновление SSL-сертификата
Если переходите на HTTPS:
- Установите SSL-сертификат (Let's Encrypt, коммерческий)
- Настройте принудительный редирект на HTTPS
- Обновите все внутренние ссылки
Проверка прав доступа
Убедитесь в правильных правах на файлы:
# Рекурсивно для директорий
find /path/to/wordpress/ -type d -exec chmod 755 {} \;
# Рекурсивно для файлов
find /path/to/wordpress/ -type f -exec chmod 644 {} \;
# Особые файлы
chmod 600 wp-config.php
chmod 644 .htaccess
Проверка после переноса
Чеклист проверки
- ✓ Главная страница открывается
- ✓ Внутренние страницы работают
- ✓ Изображения загружаются
- ✓ Формы работают
- ✓ Админ-панель доступна
- ✓ Плагины активированы и работают
- ✓ Темы отображаются корректно
- ✓ Меню навигации работает
- ✓ Поиск функционирует
- ✓ RSS-лента доступна
Проверка через инструменты
- Google Search Console: добавьте новый домен
- Google Analytics: обновите URL в настройках
- Проверка ссылок: используйте инструменты типа Broken Link Checker
- Проверка скорости: PageSpeed Insights, GTmetrix
Частые проблемы и решения
Проблема: Белый экран (White Screen of Death)
Причины:
- Ошибки в wp-config.php
- Несовместимость PHP версии
- Проблемы с правами доступа
- Ошибки в плагинах или теме
Решение:
// Включите отладку в wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
// Проверьте логи ошибок
tail -f /path/to/wordpress/wp-content/debug.log
Проблема: Изображения не загружаются
Причины: URL изображений не обновлены
Решение:
-- Замена в метаданных вложений
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'http://localhost', 'https://evaris.ru')
WHERE meta_key = '_wp_attached_file';
-- Или используйте плагин Better Search Replace
Проблема: Плагины не работают
Решение:
- Деактивируйте все плагины
- Активируйте по одному, проверяя работу
- Обновите плагины до последних версий
- Проверьте совместимость с версией WordPress
Проблема: Стили не применяются
Решение:
- Очистите кэш браузера (Ctrl+F5)
- Очистите кэш плагинов (WP Rocket, W3 Total Cache)
- Проверьте права доступа к файлам темы
- Пересохраните настройки темы
SEO после переноса
Настройка редиректов
Если старый домен еще активен, настройте 301 редиректы:
# В .htaccess старого домена
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-site.ru [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old-site.ru [NC]
RewriteRule ^(.*)$ https://evaris.ru/$1 [R=301,L]
Обновление sitemap.xml
Создайте новый sitemap с новыми URL и отправьте в Google Search Console.
Уведомление поисковых систем
- Добавьте новый домен в Google Search Console
- Отправьте новый sitemap
- Настройте редиректы со старого домена
- Обновите внешние ссылки (где возможно)
Автоматизация переноса
Скрипт для автоматической замены
Создайте PHP-скрипт для автоматической замены всех URL:
<?php
// Только для локального использования! Удалите после выполнения!
require_once('wp-load.php');
global $wpdb;
$old_url = 'http://localhost';
$new_url = 'https://evaris.ru';
$tables = [
$wpdb->prefix . 'options',
$wpdb->prefix . 'posts',
$wpdb->prefix . 'postmeta',
$wpdb->prefix . 'comments',
$wpdb->prefix . 'commentmeta'
];
foreach ($tables as $table) {
$wpdb->query("UPDATE {$table} SET option_value = REPLACE(option_value, '$old_url', '$new_url')");
echo "Обновлена таблица: {$table}\n";
}
echo "Готово! Удалите этот файл!";
?>
Заключение
Перенос WordPress сайта на новый домен — задача ответственная, но выполнимая. Главное — тщательная подготовка, правильное выполнение всех шагов и проверка результата.
Помните:
- Всегда создавайте бэкап перед началом
- Тестируйте на staging-окружении перед продакшном
- Проверяйте все ссылки и функциональность
- Настраивайте редиректы для SEO
- Обновляйте внешние сервисы (аналитика, консоли поисковиков)
Следуя этому руководству, вы сможете успешно перенести WordPress сайт на новый домен без потери данных и функциональности.