Переїзд сайту CMS WordPress: технічні особливості


Чому “ламаються” налаштування при перенесенні WordPress? Інколи після перенесення сайту на інший домен або хостинг користувачі помічають, що дизайн “злетів”, а поля в адмінпанелі стали порожніми.

Причина: WordPress зберігає багато налаштувань (віджетів, тем, плагінів) у вигляді серіалізованих даних. Це означає, що в базі даних записується не лише назва домену, а й кількість символів у ній. Якщо ви просто заміните old-site.com (12 символів) на new-site.com.ua (15 символів) через звичайний текстовий редактор, структура даних порушиться (“контрольна сума” не співпаде), і WordPress просто проігнорує цей рядок як пошкоджений.

Як перенести сайт коректно: два основні шляхи

1. Використання плагінів (Для новачків)

Це найнадійніший спосіб для тих, хто не хоче працювати з кодом. Плагіни на кшталт All-in-One WP Migration або Duplicator автоматично обробляють серіалізовані дані під час розгортання архіву на новому місці. Це не рекомендація до дії, а лише констатація факту, якщо не маєте потрібних знань – краще зверніться до спеціаліста.

2. Ручне перенесення (Професійний підхід)

Досвідчені спеціалісти роблять це швидше, але за суворим алгоритмом:

  1. Архівування: Створення архіву файлів та експорт бази даних (SQL) зі старого сервера.
  2. Завантаження: Перенесення файлів та імпорт бази даних на новий сервер “як є” (зі старими шляхами).
  3. Конфігурація: Редагування файлу wp-config.php для підключення до нової бази даних.
  4. Корекція бази даних (Критичний крок): Замість текстового редактора використовується скрипт Search-Replace-DB або консольна утиліта WP-CLI. Тільки вони здатні замінити домен, одночасно перерахувавши довжину рядків у серіалізованих масивах.

Важливо: Не рекомендуємо використовувати “Пошук та заміну” в звичайних текстових редакторах для SQL-файлів WordPress, якщо ви змінюєте довжину домену або шляху до сервера. Це найкоротший шлях до втрати налаштувань теми.

Перенесення сайту, коли контрольна сума не сходиться

Більшість налаштувань теми WordPress зберігаються в базі даних у вигляді серіалізованих масивів. У такому форматі кожне текстове значення супроводжується вказівкою його точної довжини (кількості символів).

Наприклад, доменне ім’я є частиною цих налаштувань. Якщо ви зміните адресу сайту на іншу, що має іншу кількість літер, структура масиву порушиться, і WordPress “втратить” налаштування теми. Звичайна заміна тексту (Copy-Paste) у базі даних тут не спрацює, оскільки потрібно одночасно оновлювати й лічильники символів.

Для коректного перенесення існують готові рішення, які автоматично перераховують довжину рядків під час заміни. Найпопулярнішим інструментом є скрипт Search-Replace-DB (актуальна версія v4.1.2), який дозволяє безпечно оновлювати базу даних без ризику пошкодити серіалізовані дані.

Інструкція з використання Search-Replace-DB для WordPress

Дане рішення дозволяє безпечно замінити старий домен на новий у всій базі даних, зберігаючи цілісність серіалізованих масивів.

Порядок дій:

  1. Резервне копіювання: Обов’язково створіть повний бекап бази даних перед початком робіт.
  2. Підготовка скрипту: Завантажте актуальну версію скрипту та розпакуйте його в окрему папку в кореневій директорії вашого сайту (наприклад, /tools-rename/).
  3. Доступ до панелі: Відкрийте скрипт у браузері за адресою: vash-sait.com/nazva-papky/.
  4. Налаштування підключення: Введіть дані для доступу до бази даних (якщо скрипт у папці сайту, він зазвичай підтягне їх з wp-config.php автоматично). Натисніть Test connection, щоб перевірити зв’язок.
  5. Пошук та заміна: * У полі “search for” вкажіть стару адресу.
    • У полі “replace with” — нову.
    • Параметр regex (регулярні вирази) залиште вимкненим.
    • Виберіть усі таблиці бази даних.
  6. Виконання: * Спочатку натисніть Dry Run (тестовий запуск), щоб побачити кількість майбутніх замін без внесення змін.
    • Якщо все вірно, натисніть Live Run.
  7. Завершення: Перевірте роботу сайту за новою адресою.
  8. ВАЖЛИВО: Після завершення роботи обов’язково натисніть кнопку Delete me у самому скрипті або видаліть папку зі скриптом із сервера вручну. Залишати цей інструмент на сайті категорично заборонено з міркувань безпеки.