
🔍 Поиск и замена в 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, самый популярный бесплатный плагин для этой задачи: больше миллиона активных установок. Разработан на базе open-source скрипта 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 > ); 6 > ```
1
plaintext
1 2 plaintext 3 4 Но гораздо проще сделать полную замену с dry run в Better Search Replace, плагин покажет таблицу и количество совпадений, а вы вручную снимите галочки с ненужных таблиц. 5 6 **Что делать, если сайт перестал открываться после замены URL?** 7 8 > Первое, не паниковать. Второе, восстановить базу из бэкапа (вы же сделали бэкап?). Третье, вероятная причина: битые сериализованные данные. Используйте плагин Better Search Replace, он специально спроектирован для замены доменов и корректно обрабатывает сериализацию. После восстановления базы запустите замену через него. 9 10 ## Какой метод поиска и замены выбрать: итоговый расклад 11 12 Выбор зависит от трёх факторов: что меняете, насколько большой сайт и ваш уровень комфорта с SQL. 13 14 - **Текст в нескольких постах** → phpMyAdmin с `UPDATE wp_posts`. Быстро, но без предпросмотра. 15 - **Полная смена домена или переход на HTTPS** → Better Search Replace. Dry run покажет все затрагиваемые строки до реальной замены, а встроенная обработка сериализации убережёт от битых данных. Это золотой стандарт для миграций. 16 - **Нужен встроенный бэкап** → Search & Replace. Создаёт дамп базы перед заменой и умеет его восстанавливать. 17 18 Главное правило не меняется: бэкап, бэкап и ещё раз бэкап, перед любым касанием базы данных. Одна команда `UPDATE` без резервной копии может положить сайт, а с копией, это просто рабочий инструмент, который экономит часы рутины.
plaintext
1



