Как отключить autoload в WordPress для оптимизации базы данных

В WordPress существует механизм autoload, который автоматически загружает определённые параметры и опции из базы данных при каждом запросе. Это удобно для хранения часто используемых данных, но при чрезмерном использовании приводит к увеличению времени загрузки и замедлению сайта. В этой статье мы подробно разберём, как выявить и отключить ненужные autoload-записи, тем самым оптимизировав работу сайта.

Что такое autoload в WordPress и почему его стоит контролировать

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

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

  • Увеличению времени отклика SQL-запросов;
  • Большой нагрузке на память PHP;
  • Замедлению загрузки страниц;
  • Проблемам с производительностью на shared-хостингах.

Поэтому важно периодически проверять и корректировать autoload-записи.

Как проверить какие опции загружаются автоматически

Для анализа autoload-записей можно выполнить следующий SQL-запрос прямо в phpMyAdmin или через любой другой интерфейс работы с базой данных:

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

Этот запрос выдаст 20 самых "тяжёлых" опций с autoload, которые могут замедлять загрузку сайта.

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

Как отключить autoload для отдельных записей

Чтобы отключить autoload, нужно изменить значение поля autoload с 'yes' на 'no' для конкретной опции. Например, если вы нашли опцию example_plugin_options с большим размером, выполните:

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

После этого значение не будет загружаться автоматически, а плагин или тема смогут получить его по запросу, если это необходимо.

Пример функции для массового отключения autoload по списку опций

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

function wpdo_disable_autoload_options( array $option_names ) {
    global $wpdb;
    foreach ( $option_names as $option_name ) {
        $wpdb->update(
            $wpdb->options,
            [ 'autoload' => 'no' ],
            [ 'option_name' => $option_name ]
        );
    }
}

// Использование:
wpdo_disable_autoload_options( [ 'example_plugin_options', 'another_option' ] );

Эту функцию можно поместить в файл functions.php вашей темы или в свой плагин для разового запуска.

Как безопасно отключать autoload

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

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

Использование плагинов для управления autoload

Если вы не хотите работать напрямую с базой данных, можно использовать плагины для анализа и управления autoload:

  • Autoloaded Options — показывает список autoload-опций и их размер;
  • WP-Optimize — включает инструменты для оптимизации базы данных, включая очистку autoload;
  • Clearfy Pro — платный плагин для комплексной оптимизации и управления autoload с удобным интерфейсом.

Пример кастомной функции для получения опций с autoload = 'yes'

Иногда нужно программно получить все autoload-опции для анализа или отладки. Вот пример функции:

function wpdo_get_autoloaded_options() {
    global $wpdb;
    return $wpdb->get_results(
        "SELECT option_name, option_value FROM {$wpdb->options} WHERE autoload = 'yes'"
    );
}

// Выводим все autoload-опции
$options = wpdo_get_autoloaded_options();
foreach ( $options as $option ) {
    echo 'Опция: ' . esc_html( $option->option_name ) . '<br>';
}

Итоги и рекомендации

Контроль autoload в WordPress — важный аспект оптимизации, особенно для сайтов с большим количеством плагинов и опций. Регулярный аудит и отключение ненужных автозагрузок сокращает время отклика и снижает нагрузку на сервер.

Чтобы не допускать проблем в будущем, советую:

  • Использовать качественные плагины с оптимизированным кодом;
  • Регулярно проверять базу данных на "тяжёлые" опции с autoload;
  • Применять инструменты для оптимизации, такие как Clearfy Pro (ссылка);
  • Создавать резервные копии перед изменениями.
Как динамически удалить CSS-класс из меню WordPress по условию
03.04.2026
Как автоматически удалять старые черные списки комментариев в WordPress
28.03.2026
WooCommerce: отладка проблем с отправкой писем после оформления заказа
30.04.2026
WooCommerce: как использовать хуки для изменения функциональности оформления заказа
20.06.2026
Как использовать REST API для управления пользователями в WordPress
29.01.2026