Тормозит админка wordpress как исправить ошибки
Перейти к содержимому

Тормозит админка wordpress как исправить ошибки

  • автор:

Почему так тупит админка WordPress?

Чистая установка вп на довольно мощный VPS на дефолтной теме на абсолютно пустом сайте дает такую картину: любой материал, который редактируется в админке (страница, обычный пост или же кастом — без разницы), при сохранении тупит 2-3 секунды независимо от настроек ВП (даже на локальном сервере).
С каждым новым установленным плагином тупняк увеличивается на 1-2 сек.
Поставил чистый плагин Woocommerce — вообще беда. 6-8 секунд пересохраняется товар (даже если текст не менять — просто добавить пробел в заголовок). А с нужными мне плагинами для магазина всё это дело превращается в 12-15 секунд сохранения. Товаров очень много, такие задержки просто непростительны.
Пробовал и оптимизировать тему (даже дефолтную подчищал), и кеширующие плагины — толку нет.
В файрбаге всегда показывает долгую реакцию на admin-ajax.php. Эффекта от установки сайта на локальный сервер тоже нет. От разных версий вп тоже толку ноль.
На фронтенде со всей графикой с помощью сжатия и кеш-плагинов добиваюсь 2-3 сек загрузки. Жестокий тупняк — только в админке.

  • Вопрос задан более трёх лет назад
  • 6212 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 4

HeadOnFire

Игорь Воротнёв @HeadOnFire
PHP, Laravel & WordPress Evangelist

1. Перейти на Nginx, последняя версия ветки mainline
2. Перейти на последнюю версию PHP5-FPM с OPcache
3. Перейти на MariaDB 10
4. Установить Memcached, модуль php5-memcached (c буквой d в конце, НЕ php5-memcache)
5. Для профита от п.4 установить плагин Memcached Redux

Можно в обратном порядке — Memcached, MariaDB, свежий PHP c OPcache, потом уже Nginx. Кроме того, неплохо бы протюнить настройки MySQL (или MariaDB) — особенно кеши. Но для этого надо проработать в штатном режиме хотя бы недели две, чтобы накопилась статистика. Лучше месяц.

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

Ответ написан более трёх лет назад
Нравится 2 3 комментария
Mr Crabbz @Punkie Автор вопроса

Пробовал перейти на nginx — испытываю проблемы с пермалинками. На всех страницах, кроме главной получаю ошибку 404. Не подскажете решение?

HeadOnFire

Игорь Воротнёв @HeadOnFire
@Punkie Легко подскажу 🙂 Все, что нужно:
location / < try_files $uri $uri/ /index.php?$args; >
Здесь подробно: wiki.nginx.org/WordPress
Mr Crabbz @Punkie Автор вопроса
Большое спасибо! Попробую.
Senior Ruby on Rails developer

Помните, что Вордпресс постоянно сохраняет черновики публикации. Зачастую такие лаги связаны именно с этим действием.

Ответ написан более трёх лет назад
Нравится 1 1 комментарий

HeadOnFire

Игорь Воротнёв @HeadOnFire

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

Жесть!? Как ускорить админку, Сильно Тормозит админка wordpress?

у меня очень жестко тормозила админка на wordprese — при этом сайт летал очень быстро вообще без задержек. Плагинов на сайте немного 13 штук из них тяжелых только 2 yoast и job-manager. Остальные все легкие и никак не влияют почти на сайт.

Но админка так сильно тормозила, крутилась сто лет пока получит отклик от сервера. Ни nginx ни php7 не помогает

В google ничего не нашел кроме совета удалить плагины, мне все они нужны.

И вот сейчас попробовал такую штуку

последние строчки связанные с обновлениями add_action.

И теперь она работает так мощно что не видно отклика. Такое я еще не видел. Отлично она работает теперь точно так же как и сайт на фронтенде. Я вижу разницу в скорости примерно раз в 5. Может это поможет кому-то . Ведь для контентного сайта нужно быстро работать в админке и добавлять инфу

Подскажите что ещё можно вырезать из wp-includes и wp-admin. ?

  • Вопрос задан более трёх лет назад
  • 5328 просмотров

8 комментариев

Оценить 8 комментариев

Тормозит адмика в WordPress

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

Плагины которые могут помочь

В интернете везде советуют поставить эти плагины и посмотреть в них что мешает сайту нормально работать. Я так и поступил.

Health Check & Troubleshooting

PHP Compatibility Checker

Но ничего существенного там не было. Только ошибка :

Ваш сайт не смог подключиться к WordPress.org по 198.143.164.251, и вернул ошибку: cURL error 28

В первую очередь установил cURL на север где лежит сайт, но это не помогло. Перепробовал кучу советов из интернета, но ничего не помогало и в конце концов нашел в справке wordpress пожелание использовать google dns. Ради интереса меняю провайдерские DNS на гугловские и о чудо — WP залетал! Самое интересно что на этом же сервере у меня было куча других сайтов (не вордпресс) и у них никаких проблем не было и со старыми DNS.

DNS которые помогли

Файл /etc/hosts

Если у вас сайт лежит на собственном сервере который частично закрыт фаерволом, то желательно ещё добавить запись в файлик /etc/hosts запись о нашем сайте например так:

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

Ваш сайт не может выполнять петлевые запросы

  • ← MIUI 9 Перестал подходить графический ключ и отпечаток пальца.
  • USB модем в linux →

Ускоряем админку WordPress — отключаем агрессивную проверки обновлений

Это, на мой взгляд, обязательная фитча для всех сайтов на WordPress, как принято говорить — маст хэв. Почему? Потому что проверка обновлений должна идти фоном и никак иначе, за очень редким исключением! Давайте разберемся что к чему.

Как полностью отключить авто-обновления для ядра, тем, плагинов, читайте в отдельной статье: Авто-обновления в WordPress.

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

  • На странице Консоль Обновления — раз в минуту.
  • На странице Плагины или Внешний вид > Темы — раз в час.
  • На любой странице в админке — раз в 12 часов (два раза в день).

Кроме того, эти проверки срабатывают во время события ‘admin_init’ , а значит при AJAX запросах. Несмотря на то что это происходит раз в пол дня, все же неприятно когда кто-то будет ловить AJAX запрос с задержкой в 3 секунды. Кроме того, такое поведение для AJAX запросов работает и во фронтэнде, а это уже совсем нехорошо.

Фронт и админка

Во фронте все проверки висят на кроне и от туда срабатывают в фоновом режиме. Когда пользователь заходит на сайт WP запускает крон (с определенной периодичностью), причем делает это без задержек (фоном). Если в крон-задаче наступило время проверки, то она происходит. Во фронте все хорошо и ничего не тормозит.

В админке происходит «агрессивная проверка» не фоном, а прям при генерации страницы. Сделано так для того, чтобы при заходе в админку мы сразу, в меню видели что есть обновления. Если была бы фоновая проверка, то чтобы увидеть наличие обновлений нам нужно было бы зайти на страницу еще раз. Если сравнивать этот минус с тормозами, я однозначно выбираю его!

Тормоза и объектное кэширование

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

Таким образом, стоит очистить объектный кэш и мы обязательно ловим 3-x секундную задержку на любой странице админки. В процессе разработки порой часто приходится очищать объектный кэш и каждый раз после очистки страница грузиться по 3-4 секунды

Решение (отключаем тормоза)

Чтобы избавится от тормозов, но при этом не отключать проверку обновлений совсем. Вставьте следующий код в файл темы functions.php , ну или куда вы там вставляете такие коды.

Этот код полностью отключает «агрессивную» проверку обновлений в админке. Но не трогает проверку обновлений по крону. Также, если нужно проверить наличие новых версий прямо сейчас, то заходим на страницу Консоль > Обновления — там «агрессивная» проверка не отключается и срабатывает каждую минуту.

Вот так все и должно работать, на мой взгляд, из коробки. Но WP что-то слишком «услужил» с обновлениями. Возможно это изменят в будущем, хотя я сомневаюсь. Ну а пока:

 Updates" page. * * @see https://wp-kama.ru/filecode/wp-includes/update.php * @author Kama (https://wp-kama.ru) * @version 1.1 */ if( is_admin() ) < // disable update checks when entering the admin panel. remove_action( 'admin_init', '_maybe_update_core' ); remove_action( 'admin_init', '_maybe_update_plugins' ); remove_action( 'admin_init', '_maybe_update_themes' ); // disable update checks when entering a special page in the admin panel. remove_action( 'load-plugins.php', 'wp_update_plugins' ); remove_action( 'load-themes.php', 'wp_update_themes' ); // leave forced checking when entering the updates page. //remove_action( 'load-update-core.php', 'wp_update_plugins' ); //remove_action( 'load-update-core.php', 'wp_update_themes' ); // leave forced checking when entering the "Update/Install Plugin" or "Update/Install Theme" page - it doesn't interfere. //remove_action( 'load-update.php', 'wp_update_plugins' ); //remove_action( 'load-update.php', 'wp_update_themes' ); // don't touch the cron event, it will be used to check for updates - everything is fine here! //remove_action( 'wp_version_check', 'wp_version_check' ); //remove_action( 'wp_update_plugins', 'wp_update_plugins' ); //remove_action( 'wp_update_themes', 'wp_update_themes' ); /** * disable the need to update the browser in the console - we always use top browsers! * this check happens once a week. * @see https://wp-kama.ru/function/wp_check_browser_version */ add_filter( 'pre_site_transient_browser_'. md5( $_SERVER['HTTP_USER_AGENT'] ), '__return_empty_array' ); >

Плагин

По коду из этой статьи был создан плагин: Disable Aggressive Updates.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *