Как исправить медленную первую загрузку WordPress на локальном сервере?

1 февр. 2018 г., 02:36:34
Просмотры: 17.1K
Голосов: 11

Краткое описание

Первая загрузка страницы WordPress на локальном сервере занимает около 5-7 секунд, тогда как последующие загрузки страниц происходят за 300-500 мс. В 10 раз медленнее при первом обращении. Кеш браузера отключен в инструментах разработчика. Как это исправить?

Подробная информация

Я заметил, что при первом обращении к странице WordPress (например, после очистки всего в Chrome) загрузка занимает около 5-7 секунд, что неприемлемо для локального сервера. Однако после этой первой загрузки последующие обращения к странице занимают всего около 0.3-0.5 секунды или 300-500 мс (все еще долго для локального сервера, но на порядок быстрее первой загрузки). Чтобы исключить проблему с кешем, я отключил его в инструментах разработчика браузера, поэтому все запросы страниц, независимо от первого или последующих обращений, получают файлы напрямую с сервера.

Проведенные тесты

Сначала я подумал, что это проблема сервера, и перенес сайт на localhost, чтобы проверить, сохранится ли проблема. И она действительно сохранилась.

Я также предположил, что это может быть проблема с DNS, поэтому проверил httpd.conf и файлы hosts Windows - там только один IP-адрес 127.0.0.1. Я также обновил хост в config.php WordPress и в базе данных на 127.0.0.1. Тем не менее, первая загрузка по-прежнему медленная. Если бы это была проблема DNS, то страница либо не загружалась бы, либо загружалась бы с одинаковой скоростью. Однако замедление затрагивает только первую загрузку.

Перезагрузка сервера, полное выключение и включение не влияют на скорость загрузки страниц. Проблема только в том, является ли это первым обращением клиента или нет.

Я наткнулся на пост о очень медленной первой загрузке в nginx & php-fpm, где пользователь изначально винил свой сервер, но оказалось, что проблема была в его CMS. Исходя из моего опыта, WordPress может быть причиной медленной первой загрузки страницы. Однако я не знаю, какую именно часть WordPress нужно исправить, чтобы решить эту проблему. Может кто-то помочь исправить медленную первую загрузку WordPress на локальном сервере?

Сервер

WAMP (localhost), 32 ядра Xeon 2.7Ghz, 24Gb RAM, HDD SATAIII, включен OpCache через Zend Engine

WordPress

Без плагинов, версия 4.9

Клиент

Chrome и Firefox с отключенным кешем в Инструментах разработчика, cUrl

8
Комментарии

Вы проверяли кеш запросов MySQL? У вас очень большая таблица wp_options?

janh janh
1 февр. 2018 г. 05:37:42

Нет, она не большая, всего 4 записи, но думаю, что кеш запросов был отключен по умолчанию https://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/

Jones G Jones G
1 февр. 2018 г. 11:42:45

wp_options, а не wp_posts, должен значительно выигрывать от кеша запросов, но на таком маленьком сайте маловероятно, что WordPress накопил там много данных. Можете воспроизвести проблему, перезапустив php-fpm/nginx/mysql?

janh janh
1 февр. 2018 г. 11:48:00

Перезагрузка/выключение сервера не вызывали проблему, я также очистил opcache перед перезагрузкой/выключением сервера. Заметил, что страница загружается всего за 0.3 секунды, так что, думаю, мой сервер всегда готов отдавать файлы даже после полной перезагрузки/выключения и последующего включения.

Jones G Jones G
1 февр. 2018 г. 12:02:57

Можешь воспроизвести проблему с помощью curl? Показывает ли access-лог Apache какие-либо дополнительные запросы?

janh janh
1 февр. 2018 г. 12:10:48

Привет, ладно, я перезапустил и клиент, и сервер. Проблема возникает только при новом обращении клиента к сайту. Проверил access-лог Apache — там пусто. Могу попробовать использовать curl, но не знаю, как применить его для этой проблемы? Можешь подсказать команды curl?

Jones G Jones G
1 февр. 2018 г. 12:24:01

Давайте продолжим это обсуждение в чате.

janh janh
1 февр. 2018 г. 12:24:24

Кажется, я нашел виновника. Каждый раз, когда это происходит, я замечаю, что запускается wp-cron. Я временно отключил его и продолжаю тестирование.

Jones G Jones G
10 февр. 2018 г. 02:59:51
Показать остальные 3 комментариев
Все ответы на вопрос 1
1

Скорость загрузки и работы сайта на WordPress зависит от множества факторов.

  1. MySQL запросы
  2. Оптимизация изображений
  3. CSS файлы (чем больше файлов, тем дольше загрузка и время отклика страницы)
  4. JavaScript файлы (чем больше JS файлов, тем больше время загрузки страницы)
  5. Отложенный парсинг JavaScript
  6. Минимизация JavaScript
  7. Минимизация CSS
  8. Включение gzip сжатия
  9. Использование кэширования браузера
  10. Уменьшение размера запросов И многое другое.

Протестируйте свой сайт с помощью https://gtmetrix.com и начните исправлять проблемы, которые обнаружит сервис. Для этого вам потребуется вывести локальный сервер в сеть с доступом по IP.

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

25 авг. 2018 г. 16:30:29
Комментарии

Привет, спасибо за информацию. Судя по проведённому тестированию, проблема заключается в PHP WordPress. Я пересобрал сайт на том же сервере, но использовал собственные PHP-коды. Теперь он загружается всего за 34-170 мс для полнофункционального сайта против 300-500 мс для WordPress на локальном сервере.

Jones G Jones G
28 сент. 2018 г. 18:45:04