Как очистить таблицы wp_options в WordPress от устаревших автозагрузок

Если сайт на WordPress начал заметно тяжелее открываться, а в базе разрослась таблица wp_options, часто проблема не в одном «тяжёлом» плагине, а в накопившихся автозагружаемых опциях. WordPress подгружает такие значения на каждый запрос, поэтому лишние записи с autoload = 'yes' напрямую бьют по скорости и памяти.

Задача здесь не в том, чтобы без разбора чистить всё подряд, а в том, чтобы найти устаревшие автозагрузки, понять, кому они принадлежат, и удалить только то, что действительно больше не используется. Это можно сделать безопасно, если идти по шагам: сначала посмотреть, что именно грузится, затем проверить источник опций, после этого удалить мусор и убедиться, что сайт работает как раньше.

Что именно нужно искать в wp_options

В таблице wp_options хранятся настройки ядра, темы и плагинов. Часть этих записей помечена как автозагружаемая: WordPress поднимает их в память при каждом запросе, чтобы не делать отдельный запрос к базе для каждой опции. Это удобно для небольшого числа настроек, но вредно, когда в автозагрузку попадает большой объём данных или старые записи от удалённых плагинов.

Проблемными обычно становятся:

  • опции от плагинов, которые уже удалены, но их данные остались в базе;
  • кэшированные массивы и временные данные, которые почему-то записаны как autoload = 'yes';
  • дубли настроек после неудачных обновлений или миграций;
  • опции, которые больше не используются темой или плагином, но продолжают загружаться на каждом запросе.

Важно понимать: не каждая большая запись в wp_options лишняя. Некоторые плагины действительно хранят там нужные данные. Удалять нужно только то, в чьём назначении вы уверены.

Сначала найдите самые тяжёлые автозагружаемые опции

Самый практичный способ — посмотреть, какие записи занимают больше всего места и имеют автозагрузку. Если у вас есть доступ к phpMyAdmin или другому SQL-клиенту, можно начать с такого запроса:

SELECT option_name, LENGTH(option_value) AS size_bytes
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size_bytes DESC
LIMIT 50;

Если префикс таблиц у вас не wp_, замените его на свой. Запрос покажет самые крупные автозагружаемые значения. Обычно именно среди них проще всего найти мусор: старые кэши, массивы настроек удалённых расширений, лишние transient-подобные записи, если они были сохранены неправильно.

Полезно также посмотреть общий объём автозагрузки:

SELECT SUM(LENGTH(option_value)) AS autoload_size_bytes
FROM wp_options
WHERE autoload = 'yes';

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

Определите, что можно удалить, а что трогать нельзя

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

Ориентируйтесь на такие признаки:

  • Безопаснее удалять записи, которые явно принадлежат удалённому плагину или старой теме.
  • Нужно проверить вручную опции с общими названиями, которые могут использоваться несколькими компонентами.
  • Лучше не трогать системные настройки WordPress, параметры активной темы, данные кэша активных плагинов и всё, что влияет на авторизацию, URL сайта, структуру постоянных ссылок и поведение админки.

Если вы не уверены в назначении записи, сначала найдите её по имени в файлах плагина или темы. Иногда достаточно поиска по каталогу wp-content/plugins или wp-content/themes, чтобы понять, используется ли опция вообще.

Как безопасно удалить устаревшие autoload-значения

Самый надёжный порядок действий такой: сначала резервная копия базы, потом удаление, потом проверка. Без бэкапа чистить wp_options не стоит, потому что ошибка в одном запросе может сломать сайт или админку.

Если вы работаете через SQL, удаляйте только те записи, в которых уверены. Пример для конкретной опции:

DELETE FROM wp_options
WHERE option_name = 'old_plugin_setting';

Если нужно убрать несколько точно идентифицированных записей, можно использовать список:

DELETE FROM wp_options
WHERE option_name IN (
  'old_plugin_setting_1',
  'old_plugin_setting_2',
  'old_plugin_setting_3'
);

Не советую массово удалять всё подряд по шаблону имени, если вы не проверили, что именно входит в выборку. В WordPress и плагинах нередко встречаются похожие названия, и одна лишняя запись может оказаться нужной.

Если у вас есть WP-CLI, можно действовать аккуратнее через него. Например, сначала посмотреть значение, а потом удалить конкретную опцию:

wp option get old_plugin_setting
wp option delete old_plugin_setting

WP-CLI удобен тем, что вы работаете с конкретной опцией, а не вручную редактируете SQL. Но он доступен не на каждом хостинге, и это зависит от окружения.

Когда лучше не удалять, а перевести опцию из autoload в обычную

Иногда запись нужна, но не должна грузиться на каждом запросе. В таком случае удаление не подходит: правильнее изменить флаг автозагрузки на no. Это полезно для больших настроек, которые используются редко, например в админке, но не нужны на фронтенде постоянно.

Для одной опции это можно сделать SQL-запросом:

UPDATE wp_options
SET autoload = 'no'
WHERE option_name = 'heavy_but_needed_option';

Такой подход безопаснее, чем удаление, если вы точно знаете, что значение должно остаться в базе. Но здесь тоже нужна осторожность: если плагин ожидает автозагрузку для критичных настроек, изменение поведения может привести к ошибкам. После такого изменения обязательно проверьте сайт и админку.

Как проверить, что очистка прошла без побочных эффектов

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

  • открывается ли главная страница и несколько внутренних страниц;
  • работает ли вход в админку;
  • не сломались ли формы, меню, виджеты и блоки темы;
  • не появились ли ошибки в журнале сервера или в debug.log, если он у вас включён;
  • не изменилось ли поведение активных плагинов, которые могли использовать удалённую опцию.

Если после очистки сайт стал быстрее, но в админке или на фронтенде появились странности, первым делом проверьте, не была ли удалена нужная настройка. В таких случаях резервная копия базы экономит много времени: можно вернуть состояние и повторить очистку уже точечно.

Как не превратить wp_options в свалку снова

Полностью исключить рост wp_options нельзя: плагины и темы всё равно добавляют свои настройки. Но можно не допускать накопления мусора. Практически это сводится к трём вещам.

  • Удаляйте плагин не только через админку, но и проверяйте, оставил ли он после себя опции в базе.
  • Не держите на сайте расширения, которые давно не используются, особенно если они активно пишут данные в wp_options.
  • Периодически проверяйте автозагрузку, если сайт активно развивается, часто меняются темы и набор плагинов.

Если вы ведёте несколько сайтов, имеет смысл раз в какое-то время смотреть именно на самые тяжёлые автозагружаемые записи. Это быстрее, чем разбирать всю таблицу вручную, и обычно даёт понятный результат без лишнего риска.

Для более удобной чистки и контроля за лишними данными в WordPress иногда используют инструменты оптимизации и удаления дублей, например Clearfy Pro, но даже с такими решениями полезно понимать, что именно вы удаляете и почему. Автоматизация помогает, а не заменяет проверку.

Если коротко: ищите крупные записи с autoload = 'yes', определяйте их источник, удаляйте только устаревшие и ненужные, а нужные, но тяжёлые — переводите в no. Такой подход безопаснее, чем массовая «чистка базы», и обычно даёт именно тот эффект, ради которого вообще лезут в wp_options: меньше лишней нагрузки и более быстрый сайт.

Как включить lazy load для iframe и видео в WordPress
24.10.2026
Как удалить и перенаправить страницы вложений в WordPress
10.10.2026
Как создать собственный виджет WordPress с примером кода
13.09.2026
Как очистить таблицы wp_options в WordPress от устаревших автозагрузок
28.10.2026
Как удалить лишние CSS и JS из WordPress на отдельных страницах
17.10.2026

Развитие бизнеса вокруг WordPress: современные решения и подробные руководства.