Смена префикса таблиц wp_ в WordPress — как исправить | Мастерская — статьи по WordPress и серверам | de-bor.ru

Частный web-мастер Денис Борисов
WordPress-сайтов

Смена префикса таблиц wp_ в WordPress — как исправить

Безопасность и восстановление · 2026-08-01 · 6 мин чтения
Смена префикса таблиц WordPress — способ снизить риск SQL-инъекций: большинство атак нацелено на стандартное имя wp_. Полная смена занимает 20–30 минут: переименовать таблицы через SQL, поправить wp-config.php, обновить ссылки в usermeta. Ниже — пошаговая инструкция для хостингов Beget, Timeweb и Reg.ru.

Зачем менять префикс таблиц

WordPress по умолчанию создаёт таблицы с префиксом wp_. Это знают все: злоумышленники и автоматические сканеры в первую очередь проверяют wp_users, wp_options и wp_usermeta. Если сайт уязвим к SQL-инъекции, смена префикса усложняет атаку: запрос с жёстко зашитым wp_ просто перестанет работать.

Это не панацея. Префикс не закрывает уязвимости в плагинах и темах, не защищает от брутфорса и не мешает опытному атакующему. Но это дешёвый и безболезненный уровень защиты — за 20 минут вы убираете целый класс автоматических атак.

Если сайт уже взломали, сначала зачистите его — инструкция в статье «WordPress взломали — что делать пошагово». Менять префикс на заражённом сайте нет смысла.

Подготовка: бэкап и доступ

До любых манипуляций с базой сделайте бэкап. На Beget это раздел «Базы данных» → нужная БД → «Резервная копия». На Timeweb — «Базы данных» → «Бэкап». На Reg.ru — аналогичный пункт в панели хостинга.

# Или через SSH, если доступен
mysqldump -u USER -p DBNAME > ~/backup-wp.sql

Вам понадобятся:

  • Логин и пароль от БД (лежат в wp-config.php)
  • Доступ к файлам сайта (FTP или файловый менеджер)
  • Путь к панели управления БД (phpMyAdmin на Beget и Reg.ru, собственный инструмент на Timeweb)

Новый префикс выбирайте короткий и неочевидный: wp_bx47_. Не используйте wp_ с суффиксом вроде wp_new_ — сканеры проверяют и такие варианты.

Как исправить — пошаговая инструкция

Шаг 1. Переименуйте таблицы через SQL

Откройте phpMyAdmin (или аналог), выберите базу и выполните запрос, который переименует все таблицы с префиксом wp_:

RENAME TABLE wp_commentmeta TO bx47_commentmeta, wp_comments TO bx47_comments, wp_links TO bx47_links, wp_options TO bx47_options, wp_postmeta TO bx47_postmeta, wp_posts TO bx47_posts, wp_term_relationships TO bx47_term_relationships, wp_term_taxonomy TO bx47_term_taxonomy, wp_termmeta TO bx47_termmeta, wp_terms TO bx47_terms, wp_usermeta TO bx47_usermeta, wp_users TO bx47_users;

Список таблиц стандартного WordPress выше. Если у вас стоят плагины, добавляющие свои таблицы (WooCommerce — wp_woocommerce_*, All in One SEO — wp_aioseo_*), переименуйте и их по тому же образцу.

Осторожно Выполняйте один RENAME TABLE целиком, а не по отдельности. Если запрос прервётся на середине, часть таблиц останется со старым префиксом — сайт сломается. Перед запуском скопируйте полный список таблиц из phpMyAdmin.

Альтернатива для тех, кто не хочет писать запросы руками, — SQL-скрипт:

SET @old = 'wp_';
SET @new = 'bx47_';
SELECT CONCAT('RENAME TABLE ', GROUP_CONCAT(CONCAT(@old, table_name, ' TO ', @new, table_name)), ';')
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name LIKE CONCAT(@old, '%');

Этот запрос сгенерирует готовый RENAME TABLE — скопируйте вывод и выполните его отдельной командой.

Шаг 2. Поправьте wp-config.php

В корне сайта откройте wp-config.php и замените строку:

// было
$table_prefix = 'wp_';
// стало
$table_prefix = 'bx47_';

Сохраните файл. Этот шаг обязателен: WordPress строит запросы на основе этой константы, и без неё он будет искать таблицы bx47_* вхолостую.

Шаг 3. Обновите сериализованные данные в usermeta

В таблице wp_usermeta хранятся настройки пользователей, включая сериализованные массивы со ссылками на wp_capabilities. Просто переименовать таблицу недостаточно — эти значения нужно обновить, иначе у пользователей «слетят» роли.

UPDATE wp_usermeta SET meta_key = REPLACE(meta_key, 'wp_', 'bx47_') WHERE meta_key LIKE '%wp_%';

После выполнения проверьте, что у всех пользователей на месте bx47_capabilities, bx47_user_level и bx47_user-settings.

Про плагины Некоторые плагины хранят префикс в своих опциях (например, кэширующие). После смены префикса почистите кэш плагина и кэш хостинга — на Beget для этого есть кнопка в панели, на Timeweb — раздел «Очистить кэш».

Шаг 4. Проверьте доступ и обновите кэш

Зайдите в админку. Если видите ошибку «Error establishing a database connection» — проверьте, что в wp-config.php нет лишних пробелов и префикс записан без кавычек.

# Для проверки списка таблиц в MySQL
SHOW TABLES;

Если сайт работает под Cloudflare, сбросьте кэш и там — старые страницы могут отдаваться из кэша. О том, почему Cloudflare часто показывает устаревший контент, мы писали в статье «Cloudflare ломает админку WordPress — как исправить».

Проверка результата

Прогнать сайт по простым сценариям — этого достаточно, чтобы убедиться, что ничего не сломалось:

Чек-лист проверки
  • Главная и любая внутренняя страница открываются
  • Авторизация в админке работает, права пользователей на месте
  • Формы отправляются (Contact Form 7 и другие)
  • Комментарии публикуются
  • Резервные копии (UpdraftPlus и т.п.) создаются заново

Особое внимание — правам пользователей. Если после смены префикса кто-то потерял роль администратора, верните права через phpMyAdmin: откройте таблицу bx47_usermeta, найдите bx47_capabilities у нужного пользователя и вставьте a:1:{s:13:"administrator";b:1;} в поле meta_value.

Когда способ не сработает

Сайт на мультисайте. В WordPress Multisite кроме общего префикса есть префиксы блогов (wp_2_, wp_3_). Смена префикса вручную почти наверняка сломает сеть — используйте плагин вроде iThemes Security, который умеет менять префикс на мультисайтах корректно, или оставьте как есть.

На заражённом сайте. Смена префикса не удалит уже внедрённый код и бэкдоры. Сначала зачистите сайт, потом думайте о смене префикса.

Ошибка в сериализованных данных. Если в usermeta хранятся сериализованные строки с длинами, «голый» REPLACE может сломать данные. Аккуратно работайте с wp_capabilities: лучше обновить одно поле через phpMyAdmin, чем массово заменить префикс во всех полях.

Плагины, хранящие префикс в коде. Некоторые плагины и темы хардкодят wp_ в запросах. После смены префикса такие места отвалятся с ошибками SQL. Проверьте журнал ошибок PHP после смены — на Beget он в разделе «Логи», на Timeweb — в «Журнале ошибок».

Частые вопросы

Можно ли сменить префикс без phpMyAdmin?
Да, через WP-CLI: wp config set table_prefix bx47_ --path=/home/user/site и скрипт переименования таблиц. Но WP-CLI есть не на всех хостингах — на Beget и Timeweb его можно запросить через поддержку. Без WP-CLI проще всего работать через phpMyAdmin.
Смена префикса сломает SEO?
Нет. Префикс таблиц никак не влияет на URL, индексацию и перелинковку. Единственное — после операции переобновите sitemap.xml и отправьте его в Яндекс.Вебмастер, чтобы сайт быстрее перепроверился.
Нужно ли менять префикс после перехода на HTTPS или переезда на новый хостинг?
Нет, префикс не связан с доменом и протоколом. Смените его один раз на стабильном сайте. Если планируете переезд — меняйте префикс до переезда, чтобы переносить уже готовую базу.
Что делать, если после смены префикса сайт выдаёт ошибку подключения к базе?
Проверьте wp-config.php: префикс должен совпадать с реальными именами таблиц, без лишних пробелов и кавычек. Проверьте, все ли таблицы переименованы. Если сайт лежит, восстановите бэкап БД — операция занимает 10 минут и возвращает всё как было.
Менять ли префикс на новых сайтах?
Да, но проще не менять, а сразу создавать сайт с нестандартным префиксом. При установке WordPress укажите свой префикс в поле «Префикс таблиц». Это 10 секунд на этапе установки вместо 20 минут на живом сайте.

Не уверены, что справитесь сами?

Сменим префикс таблиц, проверим целостность базы и закроем другие дыры безопасности — за 1 день.

Написать в Написать в

Разрабатываю WordPress-сайты

Лендинги, многостраничные сайты, интернет-магазины на WooCommerce — всё на WordPress с удобной панелью управления.

Сайт под ключ: регистрация домена и хостинга, установка WordPress, настройка шаблона и модулей.

Поддерживаю WordPress-сайты

Обновление плагинов и тем, резервное копирование, мониторинг работоспособности — сайт работает без сбоев.

Оперативное исправление ошибок, создание новых разделов, доработка функционала и наполнение контентом.

Продвигаю WordPress-сайты

SEO-оптимизация, настройка Яндекс Метрики и Вебмастера, подключение Google Search Console.

Оптимизация позволяет «поднять» сайт в поисковых выдачах, увеличить целевой трафик и привлечь новых клиентов.

Чистка от вирусов WordPress

Если сайт взломали, появился подозрительный код или спам-рассылка — найду и удалю вредоносный код, закрою уязвимости и настрою защиту от повторного заражения.

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

Диагностика сайта

Проверю ваш сайт по ключевым параметрам и подготовлю отчёт с рекомендациями:

  • Скорость загрузки и производительность;
  • Безопасность и уязвимости;
  • SEO-состояние и индексация;
  • Мобильная адаптация;
  • Технические ошибки и код.
Заказать диагностику
Михайлова Анастасия

Денис МАСТЕР своего дела. Вёл целый проект, работали с ним на протяжении 4х месяцев. Отзывчивый, понимающий с полуслова специалист. Стоимость услуг радует, а качество работы приводит в восторг.

Денис спасибо Вам от лица нашей строительной компании и от всего нашего персонала.

Михайлова Анастасия

Игорь Караваев

Обратился к Денису для восстановления сайта на WordPress после сбоя. Сделал, как и обещал, за сутки — сайт снова работает без ошибок. Профессионал своего дела, доходчиво объясняет, вежлив и тактичен. Однозначно рекомендую!

Игорь Караваев

Яна Веркулич

Денис, спасибо огромное за работу)) Очень тепло вспоминаю Вас и все что Вы сделали для моей работы и моего сайта.

Денис Профессионал с большой буквы, решает любые вопросы, отличный специалист))

Рекомендую к сотрудничеству, еще раз спасибо)

Яна Веркулич

Бюро Переводов

Денис оперативно и грамотно справляется со всеми поставленными задачами. Внес правки на англоязычную и русскоязычную версии сайта, учел все пожелания. Будем обращаться еще!

Бюро Переводов

Анастасия Виричева

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

Делал сайт для салона красоты, просто и функционально.

Анастасия Виричева

Владимир

Очень много времени мучались с сайтом на OpenCart. «Специалисты» не могли нормально разобраться в проблеме, возникавшей при выполнении элементарной задачи.

Денис сделал это в два счета, также расписал подробно, в чем была проблема и как она решена. На 200% доволен. Даже не хочется его рекомендовать, потому что будет постоянно занят))

Владимир

Ксения Петровская

Денис оперативно ответил и помог решить проблему, которую я даже описать нормально не могла)) Мы сами что-то накрутили с корпоративной почтой — письма то уходили, то нет, в общем всё сломали.

Денис всё починил, теперь у нас нормальная почта, домен работает, письма приходят и уходят. Цена как заявлена — оплатили по факту проверки. Спасибо большое!

Ксения Петровская

Александр Кривуля

Заказал у Дениса доработать сайт на WordPress. При этом трудно себе представлял, что сам хочу. Благодаря профессионализму Дениса и его умению всё грамотно и просто объяснять, предлагать разные варианты решений — цель была достигнута.

Умение общаться доходчиво и терпеливо с клиентами — огромный плюс. Я очень доволен. Однозначно рекомендую!

Александр Кривуля

Кондитер мания

Прекрасный специалист, ответил и устранил ошибку на сайте за пару часов, сохранила контакт, будем по необходимости обращаться. Рекомендую!

Кондитер мания

Бесплатная настройка хостинга и домена

Регистрация хостинга на 1 месяц и домена .ru/.рф на 1 год входит в стоимость разработки сайта.

Подробнее