Как перенести сайт wordpress на другой домен

Как перенести сайт wordpress на другой домен

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

Первым шагом является создание полной резервной копии сайта. Используйте phpMyAdmin или WP-плагины, такие как UpdraftPlus или Duplicator, для экспорта базы данных и файлов темы, плагинов и медиа. После этого настройте хостинг на новом домене и загрузите туда файлы сайта. Базу данных импортируйте через панель управления хостингом или вручную.

Затем потребуется заменить все упоминания старого домена в базе данных на новый. Простой поиск и замена приведёт к ошибкам, особенно в сериализованных строках. Используйте специализированные инструменты, например Better Search Replace или WP-CLI с командой search-replace, чтобы корректно обновить все значения.

После замены адресов необходимо внести изменения в файле wp-config.php, указав новый URL через константы WP_HOME и WP_SITEURL. Также проверьте настройки постоянных ссылок в админке WordPress и сбросьте их, чтобы .htaccess был сгенерирован заново.

Финальный этап – настройка редиректов на старом домене. В файле .htaccess добавьте 301-редиректы со старых URL на новые, чтобы сохранить SEO-позиции и передать авторитет домена. Не забудьте обновить сайт в Google Search Console, добавив новый домен и сообщив о переносе с помощью инструмента «Изменение адреса».

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

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

Для создания полной резервной копии сайта WordPress необходимо скопировать все файлы из корневой директории, включая скрытые файлы (.htaccess), папки wp-content, wp-includes, wp-admin, а также файл wp-config.php. Используйте SFTP-клиент (например, FileZilla) и убедитесь, что в настройках отображения включены скрытые файлы. Скачайте содержимое локально в отдельную директорию.

После копирования файлов создайте дамп базы данных. Подключитесь к phpMyAdmin, выберите базу данных вашего сайта и нажмите «Экспорт». Выберите формат SQL, метод – «Быстрый», кодировку – UTF-8. Сохраните файл .sql на диск. При отсутствии доступа к phpMyAdmin используйте команду mysqldump:

mysqldump -u имя_пользователя -p имя_базы_данных > backup.sql

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

Для надежности создайте два архива: один с файлами сайта, второй с дампом базы. Используйте формат .zip или .tar.gz. Назовите архивы с указанием даты и домена. Храните резервные копии локально и в облаке (например, Google Drive или Dropbox) до завершения переноса и полной проверки работоспособности сайта на новом домене.

Обновление URL-адресов в базе данных перед переносом

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

  • Создайте резервную копию базы данных. Используйте mysqldump или экспорт через phpMyAdmin.
  • Скачайте и установите утилиту WP-CLI или скрипт Search Replace DB от interconnect/it.

Пример команды WP-CLI:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables

При использовании WP-CLI рекомендуется добавить флаг --dry-run для теста:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables --dry-run

Если доступа к WP-CLI нет, используйте скрипт Search Replace DB:

  1. Загрузите скрипт в корень сайта.
  2. Откройте его в браузере и введите старый и новый домены.
  3. Запустите замену, затем немедленно удалите скрипт с сервера.

Также проверьте сериализованные данные. WP-CLI и Search Replace DB корректно обрабатывают сериализацию, в отличие от ручной замены через SQL-запросы.

После завершения замен очистите кэш (если используется плагин кеширования) и проверьте корректность работы сайта на новом домене.

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

Для переноса WordPress-сайта необходимо скопировать все файлы из корневой директории старого хостинга. Это включает файлы ядра WordPress, темы, плагины и папку /wp-content/, где хранятся все пользовательские данные. Используйте FTP-клиент (например, FileZilla) или файловый менеджер хостинга для скачивания.

На новом сервере заранее создайте каталог для размещения сайта. Убедитесь, что структура директорий соответствует исходной. Перенос осуществляется путем загрузки всех файлов в корень нового хостинга. Используйте режим бинарной передачи файлов в FTP-клиенте, чтобы избежать повреждения данных.

Если сайт использует кастомный .htaccess или специфические конфигурации (например, php.ini или user.ini), перенесите эти файлы без изменений. Проверьте, чтобы на новом сервере были установлены необходимые PHP-расширения и подходящая версия PHP (рекомендуется не ниже 7.4 для актуальных версий WordPress).

После завершения копирования проверьте права доступа: файлы – 644, директории – 755. Это важно для безопасности и корректной работы сайта.

Импорт базы данных на новом домене

Откройте панель управления хостингом на новом сервере и перейдите в раздел phpMyAdmin. Создайте новую базу данных, указав уникальное имя, пользователя и надёжный пароль. Запомните эти параметры – они понадобятся для конфигурации файла wp-config.php.

Выберите созданную базу данных и нажмите вкладку Импорт. Нажмите кнопку Выберите файл и загрузите ранее экспортированный SQL-файл. Убедитесь, что кодировка установлена как utf8mb4, а формат – SQL. Нажмите ОК и дождитесь завершения импорта.

Если домен изменился, в базе данных необходимо обновить старые URL. Перейдите на вкладку SQL и выполните следующий запрос:

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://старый-домен', 'http://новый-домен') WHERE option_name = 'siteurl' OR option_name = 'home';

Повторите замену в таблицах wp_posts и wp_postmeta, если ссылки присутствуют в контенте:

UPDATE wp_posts SET guid = REPLACE(guid, 'http://старый-домен', 'http://новый-домен');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://старый-домен', 'http://новый-домен');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://старый-домен', 'http://новый-домен');

Если префикс таблиц отличается от wp_, замените его в запросах на актуальный. После выполнения убедитесь, что данные обновлены, и переходите к настройке wp-config.php.

Настройка wp-config.php для нового домена

После переноса файлов сайта и базы данных необходимо адаптировать файл wp-config.php к новой среде. Этот файл расположен в корне установки WordPress и отвечает за соединение с базой данных и ключевые параметры работы сайта.

  • Откройте wp-config.php в текстовом редакторе.
  • Проверьте параметры подключения к базе данных:
define('DB_NAME', 'имя_новой_базы');
define('DB_USER', 'пользователь_БД');
define('DB_PASSWORD', 'пароль_БД');
define('DB_HOST', 'localhost');
  • Если база размещена на другом сервере, укажите IP-адрес или домен хоста вместо localhost.
  • Для жёсткой привязки к новому домену можно задать адреса сайта напрямую:
define('WP_HOME', 'https://новый-домен.ru');
define('WP_SITEURL', 'https://новый-домен.ru');
  • Эти строки помогут избежать циклических редиректов при некорректных значениях URL в базе данных.
  • Очистите кэш, если используется плагин кэширования. Удалите или временно переименуйте папку wp-content/cache, если сайт не открывается.
  • При использовании CDN или прокси-сервера (например, Cloudflare), убедитесь, что в wp-config.php активирована корректная передача IP-адресов пользователя:
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
  • После всех изменений сохраните файл и перезагрузите сайт в браузере, используя новый домен.

Замена старых ссылок на новые с помощью SQL-запросов

Замена старых ссылок на новые с помощью SQL-запросов

После переноса WordPress-сайта на новый домен необходимо заменить все упоминания старого домена в базе данных. Это включает ссылки в контенте, настройках, виджетах и мета-данных.

Перед изменениями обязательно создайте полную резервную копию базы данных. Подключитесь к phpMyAdmin или используйте любой SQL-клиент для выполнения запросов. Ниже приведены конкретные запросы для замены старого домена old-domain.com на новый new-domain.com.

Контент записей и страниц (таблица wp_posts):

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://old-domain.com', 'http://new-domain.com');

Мета-данные (таблица wp_postmeta):

UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://old-domain.com', 'http://new-domain.com');

Опции сайта (таблица wp_options):

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old-domain.com', 'http://new-domain.com') WHERE option_name IN ('home', 'siteurl');

Серилизуемые данные: При наличии сериализованных структур (например, в плагинах или виджетах), прямое использование REPLACE может привести к повреждению данных. В таких случаях используйте WP-CLI:

wp search-replace 'http://old-domain.com' 'http://new-domain.com' --all-tables

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

После замены очистите кэш плагинов и браузера, чтобы изменения отразились на фронтенде.

Настройка постоянных ссылок и очистка кэша

Настройка постоянных ссылок и очистка кэша

Если вы использовали пользовательскую структуру URL, убедитесь, что в ней не содержатся старые пути или нестандартные параметры, которые могли устареть после миграции. Пример корректной структуры: /%postname%/. После сохранения проверьте работоспособность всех типов контента, включая записи, страницы и пользовательские типы записей.

Очистите кэш на всех уровнях. Если используется плагин кеширования (например, W3 Total Cache, WP Super Cache, LiteSpeed Cache), выполните полную очистку через его настройки. Обязательно сбросьте кэш опкода (OPcache), если у вас есть доступ к серверу, особенно при изменении пути к файлам или домена.

Если сайт использует CDN (Cloudflare, KeyCDN и др.), выполните инвалидацию кэша или очистку через панель управления провайдера. Также проверьте, не кешируются ли старые редиректы. В случае использования NGINX-кэша – удалите содержимое каталога fastcgi_cache, если применимо.

Завершите настройку, протестировав доступность всех страниц в режиме инкогнито или через сторонние инструменты (например, HTTP Status Checker), чтобы убедиться в отсутствии некорректных редиректов и 404-ошибок.

Настройка перенаправлений 301 со старого домена

Настройка перенаправлений 301 со старого домена

Чтобы сохранить позиции в поисковых системах и перенаправить весь трафик на новый домен, необходимо настроить 301 редиректы на уровне сервера. Это постоянные перенаправления, которые сигнализируют поисковым роботам о переносе страниц.

Если сайт работал на Apache, откройте файл .htaccess в корне старого сайта и добавьте:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^старый-домен\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.старый-домен\.ru$
RewriteRule ^(.*)$ https://новый-домен.ru/$1 [R=301,L]

Для серверов на Nginx добавьте в конфигурацию блока server старого домена:

server {
listen 80;
server_name старый-домен.ru www.старый-домен.ru;
return 301 https://новый-домен.ru$request_uri;
}

Важно: проверьте наличие SSL-сертификата на старом домене, если редирект идет на HTTPS. Без сертификата перенаправление может не сработать корректно.

После настройки проверьте редиректы с помощью инструментов:

Также обновите все внутренние ссылки и канонические URL в базе данных WordPress с помощью WP-CLI или плагина Better Search Replace, чтобы исключить зависимость от редиректов на уровне страницы.

Вопрос-ответ:

Как правильно перенести сайт WordPress на новый домен, чтобы не потерять позиции в поиске?

Для сохранения позиций важно не только технически корректно перенести сайт, но и уведомить поисковые системы об изменении. Перенос начинается с копирования всех файлов сайта и базы данных на хостинг с новым доменом. Затем на старом домене нужно настроить постоянные (301) редиректы на соответствующие страницы нового домена. После этого стоит обновить адрес сайта в настройках WordPress, а также в файле `wp-config.php`, если нужно. В завершение — добавить новый домен в Google Search Console и использовать инструмент смены адреса. Это поможет ускорить переиндексацию и сохранить трафик.

Что произойдет со старыми ссылками после смены домена?

Если настроены правильные 301-редиректы, пользователи и поисковые роботы будут автоматически перенаправлены со старых URL на новые. Это помогает избежать ошибок 404 и сохранить внешние ссылки, которые указывают на старый домен. Без редиректов старые ссылки просто перестанут работать, что негативно скажется на посещаемости и репутации сайта.

Нужно ли вручную менять ссылки в статьях и медиафайлах после переноса сайта?

Да, это желательно сделать. WordPress сохраняет абсолютные пути к изображениям, страницам и другим материалам. Если их не обновить, сайт может частично ссылаться на старый домен, что замедляет загрузку и сбивает с толку посетителей. Для массовой замены ссылок можно воспользоваться плагином, например, Better Search Replace. Он позволяет безопасно обновить все упоминания старого адреса в базе данных.

Может ли смена домена повлиять на скорость загрузки сайта?

Сама по себе смена домена напрямую не влияет на скорость загрузки. Однако при переносе можно столкнуться с другими факторами: медленным хостингом, неправильной настройкой SSL, отсутствием кеширования или лишними редиректами. Поэтому важно после переноса протестировать производительность сайта с помощью сервисов вроде PageSpeed Insights или GTmetrix и при необходимости внести технические правки.

Ссылка на основную публикацию