
🔍 Пошук і заміна в phpMyAdmin: як замінити текст і URL у базі даних WordPress
💡 Швидкий огляд:
- що таке пошук і заміна в phpMyAdmin і коли це потрібно;
- покроковий SQL-запит для заміни тексту в усій базі WordPress;
- як масово замінити старі URL на нові через phpMyAdmin;
- огляд двох плагінів-альтернатив, Better Search Replace і Search & Replace.
Що таке пошук і заміна в phpMyAdmin і навіщо це потрібно
Уявіть: ви змінили домен, перейменували бренд або оновили структуру постійних посилань. Десь у надрах бази даних WordPress лишилися сотні старих згадок, у постах, метаполях, налаштуваннях тем. Відкривати кожен запис і правити руками? На сайті з пʼяти сторінок, можливо. На двохстах це вже втрачений день.
phpMyAdmin — це вебінтерфейс для керування MySQL, який іде в комплекті з cPanel практично будь-якого хостингу. За його допомогою ви виконуєте SQL-запит, який за один прохід знаходить і замінює вказаний рядок у всіх записах бази даних. Жодних плагінів, жодного зайвого коду, тільки ви, браузер і правильний запит.
Однак у методу є нюанс: помилка в синтаксисі може зачепити не ті дані. Саме тому ми розберемо запити по кісточках, а наприкінці покажемо пару плагінів, які прибирають ручний ризик і дають попередній перегляд до заміни.
Як знайти і замінити текст через phpMyAdmin
Найпоширеніший сценарій: замінити слово або фразу в усіх постах одразу. Наприклад, стара назва компанії на нову, застарілий термін або зламаний email. Для цього потрібен один UPDATE-запит у phpMyAdmin.
Крок 1: увійдіть у phpMyAdmin через cPanel
Відкрийте cPanel вашого хостингу, знайдіть розділ «Бази даних» і натисніть на іконку phpMyAdmin. Увійдіть, зазвичай логін і пароль ті самі, що й для cPanel.
Крок 2: виберіть базу даних сайту
Після входу зліва зʼявиться список баз даних. Натисніть на ту, яка стосується вашого сайту WordPress. Якщо не памʼятаєте назву, подивіться у файлі wp-config.php: рядок define('DB_NAME', 'имя_базы').
Крок 3: перейдіть на вкладку SQL
У верхній панелі інструментів натисніть кнопку SQL, відкриється вікно для введення запиту.

Крок 4: введіть SQL-запит для заміни тексту
Базовий синтаксис виглядає так:
1 UPDATE table_name SET field_name = 2 REPLACE(field_name, 'что_ищем', 'на_что_меняем');
Для заміни тексту в усіх постах WordPress запит матиме такий вигляд:
1 UPDATE wp_posts SET post_content = 2 REPLACE(post_content, 'старый текст', 'новый текст');
Розбір по частинах: UPDATE wp_posts, працюємо з таблицею постів; SET post_content, змінюємо вміст поля post_content; REPLACE(post_content, 'A', 'B'), функція шукає підрядок A і замінює його на B. Важливо: префікс таблиць може бути не wp_, перевірте в wp-config.php значення $table_prefix.
⚠️ Перед виконанням обовʼязково зробіть бекап бази даних. У cPanel для цього є розділ Backup, або використовуйте плагін на кшталт UpdraftPlus. SQL-запит незворотний, кнопки «скасувати» немає.
Крок 5: виконайте запит
Натисніть кнопку «Go» (або «Вперед») у правому нижньому куті. phpMyAdmin виконає запит і покаже повідомлення з кількістю зачеплених рядків, наприклад, «Уражено рядків: 47». Це означає, що 47 записів містили шуканий текст і були оновлені.

Готово. Пройдіться сайтом і перевірте кілька сторінок, старий текст має бути замінений.
Як замінити URL у базі даних WordPress через phpMyAdmin
Заміна URL складніша за заміну тексту, тому що адреси зберігаються не в одній таблиці, а розкидані по кількох. Ось де шукати:

- Пости й сторінки: поле
post_contentу таблиціwp_posts - Метаполя (довільні поля):
meta_valueуwp_postmeta - Налаштування тем і плагінів:
option_valueуwp_options - Коментарі:
comment_contentуwp_comments - Меню (старий менеджер посилань):
link_urlіlink_imageуwp_links - Метадані користувачів:
meta_valueуwp_usermeta
Щоб охопити все одразу, виконайте такий набір запитів (копіюйте по одному і тисніть Go після кожного):
1 UPDATE wp_options SET option_value = 2 REPLACE(option_value, 'http://old-domain.com', 'https://new-domain.com') 3 WHERE option_name = 'home' OR option_name = 'siteurl'; 4 5 UPDATE wp_posts SET post_content = 6 REPLACE(post_content, 'http://old-domain.com', 'https://new-domain.com'); 7 8 UPDATE wp_postmeta SET meta_value = 9 REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com'); 10 11 UPDATE wp_comments SET comment_content = 12 REPLACE(comment_content, 'http://old-domain.com', 'https://new-domain.com'); 13 14 UPDATE wp_links SET link_url = 15 REPLACE(link_url, 'http://old-domain.com', 'https://new-domain.com'); 16 17 UPDATE wp_usermeta SET meta_value = 18 REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');
⚠️ Ще раз: перед запуском, повний бекап. Якщо сайт використовує серіалізовані дані (більшість тем і плагінів, так), проста текстова заміна може зламати структуру. У такому разі краще використовувати плагіни з наступного розділу, вони вміють коректно обробляти серіалізацію.
Плагіни для пошуку і заміни у WordPress
Ручний метод через phpMyAdmin швидкий, але небезпечний для новачків. Плагіни вирішують дві головні проблеми: дають попередній перегляд до заміни (dry run) і коректно працюють із серіалізованими даними. Розглянемо два перевірені варіанти.
Better Search Replace

Better Search Replace, найпопулярніший безкоштовний плагін для цього завдання: понад мільйон активних встановлень. Розроблений на базі відкритого скрипту interconnect/it Search Replace DB і використовує нативні функції WordPress, а не сирі SQL-запити.
Як працювати з плагіном:
- Встановіть і активуйте його з розділу «Плагіни → Додати новий».
- Перейдіть у «Інструменти → Better Search Replace».
- У полі «Search for» введіть шуканий текст або URL.
- У полі «Replace with», те, на що замінюємо.
- У блоці «Select tables» виберіть потрібні таблиці (або всі).
- Увімкніть «Run as dry run», це тестовий прогін без реальної заміни. Плагін покаже, скільки збігів знайдено і в яких таблицях.

Після перевірки вимкніть «Dry run» і запустіть заміну повторно, тепер уже з реальним записом змін.
Плюс: коректно обробляє серіалізовані дані, URL не «поїде» після заміни. Мінус: не робить автоматичний бекап перед заміною (зробіть його самі, тим самим UpdraftPlus).
Ціна: безкоштовно.
🔗 Better Search Replace на WordPress.org
Search & Replace

Search & Replace від команди WP Media, альтернатива з вбудованим бекапом. Перед заміною плагін уміє створювати дамп бази даних і зберігати його. Якщо щось пішло не так, відновлюєте з бекапу за два кліки.
Додаткові можливості:
- заміна домену/URL в один клік (окрема вкладка «Replace Domain / URL»);
- підтримка CSV для пакетної заміни (формат: «що шукаємо; на що міняємо»);
- зміна префікса таблиць;
- підтримка мультисайту.
Плагін має 100 000+ активних встановлень і рейтинг 4.3. Офіційно він не тестувався з останніми версіями WordPress, але відгуки користувачів підтверджують стабільну роботу на WP 6.8 з PHP 8.2.
Мінус: інтерфейс менш інтуїтивний, ніж у Better Search Replace, поріг входу трохи вищий.
Ціна: безкоштовно.
🔗 Search & Replace на WordPress.org
Що вибрати: плагін чи phpMyAdmin?
Короткий орієнтир: змінюєте 1-2 слова в тексті постів і впевнені в синтаксисі SQL, phpMyAdmin швидший. Змінюєте домен, працюєте із серіалізованими даними або не хочете чіпати базу руками, ставте Better Search Replace і робіть dry run. Потрібен вбудований бекап і пакетна заміна, Search & Replace.
⁉️🤔 Часті питання
Чи можна скасувати заміну після виконання SQL-запиту?
Ні, SQL-запит у phpMyAdmin незворотний. Саме тому перед будь-якою заміною обовʼязковий повний бекап бази даних. Зробіть його через cPanel (розділ Backup → Download MySQL Database) або плагіном UpdraftPlus. З бекапом ви завжди відкотите базу до стану «до».
Що таке серіалізовані дані і чому проста заміна URL їх ламає?
Серіалізація — це спосіб пакування складних структур (масивів, обʼєктів) у рядок для зберігання в базі. WordPress використовує її для налаштувань тем, даних плагінів і віджетів. Рядок
s:26:"http://old-domain.com"означає «рядок довжиною 26 символів». Якщо ви заміните домен на коротший або довший, довжина вs:26перестане відповідати реальності, і WordPress не зможе прочитати дані. Плагіни (Better Search Replace, Search & Replace) перераховують довжину автоматично. Пряма SQL-заміна, ні.
Обовʼязково чи використовувати phpMyAdmin або можна через WP-CLI?
WP-CLI, чудова альтернатива, якщо у вас є доступ по SSH. Команда
wp search-replace 'старый-домен' 'новый-домен'робить те саме, але з автоматичною обробкою серіалізації. Це навіть безпечніше за phpMyAdmin, WP-CLI працює через WordPress API, а не напряму з MySQL. Однак не всі хостинги дають SSH-доступ на дешевих тарифах, phpMyAdmin доступний практично завжди.
Чи можна замінити тільки в певних постах, а не в усій базі?
Так, додайте в SQL-запит умову
WHERE. Наприклад, щоб замінити текст тільки в постах певної категорії: спочатку знайдіть ID категорії, потім:
1 UPDATE wp_posts SET post_content = 2 REPLACE(post_content, 'старое', 'новое') 3 WHERE ID IN ( 4 SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = 12 5 );
Але значно простіше зробити повну заміну з dry run у Better Search Replace, плагін покаже таблицю і кількість збігів, а ви вручну знімете галочки з непотрібних таблиць.
Що робити, якщо сайт перестав відкриватися після заміни URL?
Перше, не панікувати. Друге, відновити базу з бекапу (ви ж зробили бекап?). Третє, ймовірна причина: биті серіалізовані дані. Використовуйте плагін Better Search Replace, він спеціально спроєктований для заміни доменів і коректно обробляє серіалізацію. Після відновлення бази запустіть заміну через нього.
Який метод пошуку і заміни вибрати: підсумковий розклад
Вибір залежить від трьох факторів: що змінюєте, наскільки великий сайт і ваш рівень комфорту з SQL.
- Текст у кількох постах → phpMyAdmin з
UPDATE wp_posts. Швидко, але без попереднього перегляду. - Повна зміна домену або перехід на HTTPS → Better Search Replace. Dry run покаже всі зачеплені рядки до реальної заміни, а вбудована обробка серіалізації вбереже від битих даних. Це золотий стандарт для міграцій.
- Потрібен вбудований бекап → Search & Replace. Створює дамп бази перед заміною і вміє його відновлювати.
Головне правило не змінюється: бекап, бекап і ще раз бекап, перед будь-яким торканням бази даних. Одна команда UPDATE без резервної копії може покласти сайт, а з копією це просто робочий інструмент, який економить години рутини.
1



