118 просмотров

Перенос WordPress сайта на новый домен: полное руководство

Содержание

Когда нужен перенос WordPress на новый домен

Перенос WordPress сайта на новый домен может потребоваться в различных ситуациях:

  • Переезд с локального сервера на продакшн
  • Смена доменного имени компании
  • Создание тестовой копии на субдомене
  • Объединение нескольких сайтов
  • Миграция на новый хостинг

Подготовка к переносу

1. Резервное копирование

Перед любыми изменениями создайте полный бэкап:

  • База данных: экспорт через phpMyAdmin или WP-CLI
  • Файлы: все файлы WordPress, темы, плагины, загрузки
  • Конфигурация: файл wp-config.php

Создание бэкапа через phpMyAdmin:

  1. Выберите базу данных
  2. Вкладка «Экспорт»
  3. Метод: «Быстрый» или «Настраиваемый»
  4. Формат: SQL
  5. Нажмите «Вперед»

Создание бэкапа через 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:

  1. Создайте новую базу данных
  2. Выберите базу данных
  3. Вкладка «Импорт»
  4. Выберите файл .sql
  5. Нажмите «Вперед»

Через командную строку:

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');

Как выполнить:

  1. Откройте phpMyAdmin
  2. Выберите базу данных вашего WordPress сайта
  3. Перейдите на вкладку «SQL»
  4. Вставьте все три запроса (заменив домены на свои)
  5. Нажмите «Вперед»

Дополнительные 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:

  1. Установите Duplicator на старом сайте
  2. Создайте пакет (Package)
  3. Скачайте installer.php и архив
  4. Загрузите на новый сервер
  5. Запустите installer.php в браузере
  6. Следуйте инструкциям мастера

All-in-One WP Migration

Простой плагин для экспорта/импорта:

  1. Установите на старом сайте
  2. Экспорт → Export to File
  3. Установите на новом сайте
  4. Импорт → 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 сайт на новый домен без потери данных и функциональности.

Автор статьи Evaris

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