dimabagow

WordPress на новий домен

Перенесення WordPress на новий домен

Іноді виникає необхідність змінити домен сайту, не змінюючи при цьому сам сайт. Контент залишається колишнім, структура посилань не змінюється, але адреса стає іншою. На перший погляд завдання виглядає простим, однак якщо зробити щось неправильно, можна втратити частину трафіку, позиції в пошуковиках або отримати масу проблем з індексацією.

Умовно процес можна розділити на дві частини:

Перед началом

Перше, що необхідно зробити:

Ніколи не працюйте без бекапу. Економія кількох хвилин може закінчитися відновленням сайту з кешів пошукових систем.

Спосіб №1. Через адмінку WordPress

Найпростіший варіант.

Відкрийте:

Налаштування → Загальні

Змініть параметри:

Після збереження WordPress автоматично перенаправить вас на новий домен.

Цей спосіб підходить тільки якщо новий домен вже налаштований і повністю працездатний.

Спосіб №2. Правка дампу бази даних

Іноді простіше змінити адреси прямо в SQL-дампі.

Алгоритм простий:

  1. Експортувати базу даних.
  2. Відкрити дамп у редакторі.
  3. Замінити всі входження старого домену на новий.
  4. Імпортувати змінений дамп назад.

Наприклад:

http://old-domain.com

http://new-domain.com

Але слід пам’ятати, що сучасні версії WordPress та багато плагінів використовують серіалізовані дані. Проста заміна рядків може пошкодити частину налаштувань. Тому сьогодні краще використовувати спеціальні інструменти наразок WP-CLI або плагіни міграції.

Спосіб №3. Зміна бази через SQL

Можна виконати кілька SQL-запитів безпосередньо:

sql
UPDATE wp_options
SET option_value = REPLACE(option_value,
‘http://old-domain.com’,
‘http://new-domain.com’)
WHERE option_name=’home’
OR option_name=’siteurl’;

UPDATE wp_posts
SET guid = REPLACE(guid,
‘http://old-domain.com’,
‘http://new-domain.com’);

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

Якщо використовується нестандартний префікс таблиць, замість `wp_` необхідно вказати свій.

Налаштування 301 редиректу

Після перенесення сайту вкрай важливо налаштувати постійний редирект.

Відвідувач, який відкрив:

http://old-domain.com/page.html

повинен автоматично потрапити на:

http://new-domain.com/page.html

Для цього в `.htaccess` старого домену достатньо прописати:

apache
RewriteEngine On
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]

Якщо використовується HTTPS, одразу перенаправляйте на HTTPS-версію нового домену.

Саме 301 редирект повідомляє пошуковим системам, що сайт переїхав назавжди, а не тимчасово.

Кілька зауважень із сучасності

Цей текст я писав ще в ті часи, коли всіх цікавили показники PR та тІЦ. Зараз ні Google PageRank, ні Яндекс тІЦ вже фактично не існують.

Сьогодні після переїзду слід звернути увагу на інші речі:

Також бажано деякий час зберігати старий домен активним. Іноді пошукові системи та зовнішні сайти продовжують звертатися до нього ще багатьох місяців.

Підсумок

Саме перенесення WordPress на новий домен є досить простою операцією. Основні проблеми зазвичай виникають вже після переїзду: биті посилання, проблеми індексації, забуті редиректи, змішаний HTTP/HTTPS контент та кеш різних сервісів.

Тому правило тут тільки одне: спочатку робимо резервні копії, потім перевіряємо новий домен на тестовому оточенні, і лише після цього виконуємо остаточний переїзд.