WordPress тормозит в админке — как ускорить | Мастерская — статьи по WordPress и серверам | de-bor.ru

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

WordPress тормозит в админке — как ускорить

Скорость и оптимизация · 2026-07-09 · 6 мин чтения

Если WordPress тормозит в админке, в 80% случаев виноваты не «медленный хостинг», а четыре вещи: Heartbeat API, тяжёлые плагины, дефицит памяти и раздутая таблица wp_options. Фронтенд может летать, а /wp-admin/ грузится по 10-15 секунд. Чинится без плагинов — правками в wp-config.php и functions.php.

Почему админка тормозит

Симптом узнаваемый: сайт для посетителей открывается быстро, а вход в /wp-admin/, список плагинов или редактор записей висят по 5-30 секунд. В логах часто видны частые запросы к admin-ajax.php. Прежде чем ставить плагины кеширования админки (обычно полумера), проверьте четыре причины ниже — от самой частой к редкой.

1. Heartbeat API

WordPress постоянно стучится сам в себя через admin-ajax.php: проверяет чужие блокировки записи, обновляет счётчики, держит сессию. По умолчанию каждые 15-60 секунд. На дешёвом shared-хостинге каждый такой запрос заново поднимает PHP и лезет в MySQL — админка «дышит», но процессор занят чужими вызовами.

Особенно болезненно на Beget и Timeweb на базовых тарифах: там PHP-FPM с ограничением процессов, и Heartbeat легко съедает весь пул. На Reg.ru (ISPmanager) картина чуть лучше, но на слабом VPS — то же самое.

2. Тяжёлые плагины в админке

Elementor, WooCommerce, Yoast SEO, Rank Math — все они вешают хуки на загрузку каждой страницы админки. Elementor проверяет лицензию и подтягивает виджеты даже там, где вы не редактируете страницу. WooCommerce на 1000+ товаров делает служебные запросы в БД при каждом входе в админку.

Бонусом — плагины статистики и аналитики, которые лезут во внешние API прямо из дашборда. Один такой плагин превращает загрузку консоли в ожидание ответа от стороннего сервера.

3. Мало памяти PHP

Если WP_MEMORY_LIMIT стоит 256M или меньше, а у вас WooCommerce + Elementor + пара SEO-плагинов — админка работает у самого края. Один тяжёлый список (например, импорт товаров) добивает: белый экран или «Fatal error: Allowed memory size exhausted». Подробно про этот сценарий я разбирал в отдельной статье про memory exhausted.

В админке памяти нужно больше, чем на фронтенде: грузится редактор блоков, список плагинов, медиатека. Без отдельного WP_MAX_MEMORY_LIMIT админка использует тот же лимит, что и посетители.

4. Раздутый wp_options и виджеты дашборда

Плагины любят писать в wp_options и ставить флаг autoload = yes. WordPress на каждом запросе тянет все autoload-записи в память. Когда их становится 1000+ и общий вес — пара мегабайт, каждый вход в админку начинается с тяжёлого SELECT.

Вторая подкожная проблема — виджеты главной консоли. «Новости WordPress», «Обзор событий» и виджеты плагинов делают внешние HTTP-запросы (RSS, API) при открытии /wp-admin/index.php. Если внешний сервер тупит — тупит ваш дашборд.

Как исправить пошагово

Шаг 1. Поднять лимит памяти

В wp-config.php перед строкой /* That's all, stop editing! */ добавьте:

define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Первое — для фронтенда, второе — для админки. Для WooCommerce с 1000+ товаров ставьте 512M минимум, для Elementor + WooCommerce — 768M.

На Beget это дублируется в панели: «Управление сайтами» → ваш сайт → «PHP» — там лимит должен быть не меньше. На Timeweb — раздел «PHP» → memory_limit. На Reg.ru (ISPmanager) — «Сайты» → ваш сайт → «PHP» → memory_limit. Если тариф режет память ниже нужного, правки в wp-config.php не помогут — поднимайте тариф.

Не ставьте memory_limit = -1 — это снимает ограничение полностью, и один зависший скрипт может уронить весь сервер. Ставьте конкретное значение.

Шаг 2. Ограничить Heartbeat

Без плагина — в functions.php дочерней темы. Замедляем Heartbeat до 120 секунд и убираем его на странице редактирования записи:

add_filter('heartbeat_settings', function($settings) {
    $settings['interval'] = 120;
    return $settings;
});

// На странице редактирования Heartbeat часто не нужен
add_action('admin_enqueue_scripts', function() {
    $screen = get_current_screen();
    if ($screen && $screen->base === 'post') {
        wp_deregister_script('heartbeat');
    }
});

Если работаете один и чужие блокировки не нужны — можно выключить Heartbeat совсем: wp_deregister_script('heartbeat') без условий. Тогда автосохранение тоже перестанет работать, но для одиночного редактора это нормальный компромисс.

Шаг 3. Отключить лишние виджеты дашборда

В functions.php:

add_action('wp_dashboard_setup', function() {
    remove_meta_box('dashboard_primary', 'dashboard', 'side');       // Новости WordPress
    remove_meta_box('dashboard_secondary', 'dashboard', 'side');     // Обзор событий
    remove_meta_box('dashboard_quick_press', 'dashboard', 'side');   // Быстрая публикация
    remove_meta_box('dashboard_recent_drafts', 'dashboard', 'normal');
});

Виджеты плагинов убираются аналогично — их ID ищите через Query Monitor (см. шаг 4) на вкладке Hooks. После этого /wp-admin/index.php перестаёт делать внешние запросы и грузится моментально.

Шаг 4. Найти тормозящий плагин через Query Monitor

Поставьте бесплатный Query Monitor — единственный плагин диагностики, который ставлю временно, потом удаляю. Он показывает:

  • какие хуки и плагины грузятся на каждой странице админки;
  • время каждого SQL-запроса;
  • внешние HTTP-запросы;
  • потребление памяти.

Альтернатива без плагина — через WP-CLI:

# Список активных плагинов
wp plugin list --status=active --fields=name,status,version

# Проверить autoload в wp_options
wp db query "SELECT COUNT(*), SUM(LENGTH(option_value)) FROM wp_options WHERE autoload='yes';"

Если SUM(LENGTH(option_value)) больше 2-3 МБ — это уже проблема. Чистить только выборочно: удаляйте autoload-опции удалённых плагинов, не трогайте всё подряд.

Более подробно про общий подход к скорости — в статье «Как ускорить WordPress без плагинов»: PHP 8.x, серверное кеширование, WebP. Это про фронтенд, но часть шагов (PHP 8, чистка БД) разгружает и админку.

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

Как проверить за 2 минуты. Откройте /wp-admin/ в режиме инкогнито, очистив кеш браузера. В Chrome DevTools (F12) → Network → следите за admin-ajax.php: после правки Heartbeat запросов должно быть мало и с интервалом около 120 секунд, а не каждую секунду. Время загрузки /wp-admin/plugins.php должно упасть с 10-15 до 1-3 секунд.

Сравните до и после через Query Monitor: вкладка «Timing» покажет общее время генерации страницы. Если было 8 секунд, стало 1.5 — цель достигнута.

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

Хостинг режет ресурсы ниже потребностей. На Beget «Блог» или Timeweb «Shared+» WooCommerce с 5000 товаров всегда будет тормозить в админке — памяти и процессов просто не хватает. Тут правки кода бесполезны, нужно переходить на VPS или более высокий тариф.

Заражённый сайт. Если в wp-content/uploads или темах лежат странные PHP-файлы, а в логах доступа видны запросы к непонятным URL — админка тормозит из-за фоновых вредоносных процессов. Сначала чистка после взлома, потом ускорение.

База данных огромна. Если wp_postmeta больше 500 МБ, десятки тысяч ревизий и спам-комментариев — правки wp-config.php не помогут. Нужна чистка: удаление ревизий, оптимизация таблиц. На больших магазинах это делают по расписанию.

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

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

Поможет ли плагин кеширования админки?
Чаще нет. Большинство плагинов кеширования работают только с фронтендом. Специфические плагины для админки обычно маскируют симптомы, а не чинят причину. Сначала уберите Heartbeat и поднимите память — обычно этого хватает без установки чего-либо.
На Beget поднял memory_limit в wp-config.php, но админка всё равно тормозит.
Проверьте лимит в панели Beget: «Управление сайтами» → сайт → «PHP». Если там стоит 256M, значение в wp-config.php ограничено сверху панелью. Поднимайте в панели, и только потом дублируйте в конфиге.
Elementor тормозит в редакторе — это та же проблема?
Частично. Elementor тяжёлый сам по себе: ему нужен memory_limit от 512M и желательно PHP 8.2+. Но если тормозит только редактор конкретной страницы, а остальная админка летает — виноват размер шаблона (300+ виджетов на одной странице). Разбивайте страницу на переиспользуемые шаблоны.
Можно ли полностью отключить Heartbeat?
Да, через wp_deregister_script('heartbeat') в functions.php. Но перестанет работать автосохранение записей и чужие блокировки при совместной редактуре. Если редактируете один — смело отключайте. Если несколько редакторов — оставляйте, но с интервалом 120-300 секунд.
Как найти, какой плагин грузит wp_options?
WP-CLI: wp db query "SELECT option_name, LENGTH(option_value) AS size FROM wp_options WHERE autoload='yes' ORDER BY size DESC LIMIT 20;". В топе обычно опции плагинов статистики, кеширования и бэкапов. Удалите плагины, которые не используете, через wp plugin delete <slug> — это уберёт и их autoload-опции.

Админка всё равно тормозит?

Проведу аудит, найду что именно грузит wp-admin и починю за 1 день. Без установки лишних плагинов.

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

Техническая оптимизация

Техническая оптимизация

Скорость, кэш, Core Web Vitals.

7.200

Подробнее
Сопровождение и поддержка сайта

Сопровождение и поддержка сайта

Мониторинг скорости и оптимизация.

от 5.400 ₽/мес

Подробнее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Яна Веркулич

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

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

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

Яна Веркулич

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

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

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

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

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

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

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

Владимир

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

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

Владимир

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробнее