Диагностика скорости WordPress
У мастерской появился поиск, публичное API и собственное расширение. Теперь оценим скорость так, чтобы не потерять важные функции. Диагностика начинается с разделения стоимости: сервер получает данные и строит HTML, сеть передаёт ресурсы, браузер формирует видимую страницу. Результат урока — план сравнения на известных страницах и таблица наблюдений. Здесь нет вымышленных миллисекунд и обещания, что установленный кеш автоматически сделает сайт быстрым.
Разные виды страниц нагружают систему по-разному. Короткие «Контакты», текст study с иллюстрацией, поиск и REST-список не следует сводить к одному среднему числу. У публичного списка нет всей оболочки, у поиска важна выборка, у страницы с картинкой — стоимость её загрузки. Руководство WordPress по оптимизации рассматривает сервер, ресурсы и кеширование как связанные, но самостоятельные области. На нашем стенде сначала объясним методику, затем читатель выполнит наблюдения самостоятельно.
Известное начало измерения
Зафиксируйте снимок после урока 20: основная тема, Tools, отсутствие необязательной Policy, шесть записей, четыре курса и три страницы. Запишите точные версии PHP, базы и WordPress, настройки сети браузера и режим входа. Анонимная страница может обслуживаться иначе, чем редакторская. Если сравнивать первый вариант без входа, а второй под администратором, улучшение или ухудшение будет нельзя уверенно связать с изменённой темой.
Выберем четыре сценария: открытие study, открытие image-shift, поиск по слову «мастерская» и GET первой страницы курсов. Для каждого отдельно запишем холодный и повторный запрос, если выбранное окружение действительно позволяет контролировать кеш. «Холодный» требует объяснения, какой именно слой сброшен: браузер, кеш HTML или объектный кеш. Удаление браузерного кеша не очищает серверный. Не используйте одно слово для всех разных состояний, если затем собираетесь сравнивать числа.
В редакционных материалах находится таблица с полями URL, режим, время начала ответа, размер HTML, количество ресурсов, крупнейшее изображение, серверные зависимости и observed. Все observed первоначально имеют not_run. Значения читатель вносит после реального просмотра инструмента сети. Они не заполняются заранее «примерными хорошими числами», потому что такая таблица быстро превращается в ложное доказательство улучшения. Ожидаемый результат урока — воспроизводимая запись, а не норматив для любой машины.
Время сервера и время браузера
Задержка до начала ответа может указывать на работу PHP, запросы к базе, удалённую зависимость или сетевую задержку. По одному значению нельзя выбрать виновный плагин. Сначала сравните несколько запросов и выясните, где расположена среда. Локальный сервер исключает часть внешней сети, но не воспроизводит процессор хостинга и конкурирующую нагрузку. Поэтому быстрый ноутбук не подтверждает будущую скорость публичного сайта под одновременными посетителями.
После HTML браузер запрашивает стили, скрипты и изображения. Наш theme.json использует системный шрифт, поэтому отдельный файл фирменной гарнитуры не должен быть обязательной зависимостью этой темы. Однако WordPress и блоки могут подключать собственные ресурсы. Проверьте фактический список, не заявляя «ноль JavaScript» по отсутствию собственного app.js. Адаптивная навигация и другие механизмы темы могут использовать штатные скрипты, которые нужны для поведения.
У страницы study отдельно проверьте схему маршрута. Если читатель подготовил огромный PNG, именно он может определять большую часть передачи. Исправление картинки отличается от кеширования SQL. Проверьте выбранный ресурс, отображаемый размер и существующие производные копии. Не уменьшайте качество текста схемы до нечитаемого ради небольшого числа килобайт. Цель — разумный ресурс, который сохраняет учебную информацию и заранее известную пропорцию.
Стоимость запросов и расширений
Собственный pw_label читает название текущего курса и не выполняет внешнего HTTP. Это небольшой явный механизм, но фактическое число запросов зависит от кеша и подготовки объектов WordPress. Не обещаем точное количество SQL по одному callback. Для диагностики нужен инструмент профилирования выбранной среды или дополнительное наблюдение запросов в закрытом стенде. Сбор таких данных сам добавляет стоимость и не должен бесконтрольно попадать в публичный ответ вместе с подробностями базы.
Поиск выбирает post и pw_course с размером два. Маленький ответ не доказывает дешёвую выборку: сервер может обработать больше строк до ограничения результата. При росте содержания интересуют условия поиска, индексы и повторяющиеся тяжёлые запросы. Добавление отдельного поискового расширения требует сравнения качества результата и стоимости на тех же данных. «Быстрее, потому что нашло меньше» может означать потерю важных материалов, а не улучшение алгоритма.
Чтобы оценить плагин, изменяйте один фактор за раз. Например, сравните исходный снимок Tools с вариантом без фильтра Policy, если он был включён для самостоятельного опыта. В нашей стандартной последовательности Policy уже отсутствует. Деактивация Tools целиком уберёт курсы и связанные функции, поэтому сравнение страницы, которая теперь возвращает другой результат, нельзя считать чистой оценкой скорости. Корректность содержимого должна сохраняться в сравниваемых вариантах.
Что можно кешировать
Публичный HTML неизменяемой записи хорошо отличается от редакторского предварительного просмотра и персонального ответа. Кеш не должен отдавать одному посетителю содержимое другого. В нашей серии нет аккаунтов студентов, но cookies редактора уже создают разные контексты доступа. Прежде чем включать кеширующее расширение, определите исключения, ключи, срок жизни и способ обновления после правки текста. Простое «кеш включён» не описывает эти условия.
Объектный кеш, кеш результата выборки, браузерный кеш ресурсов и кеш страницы относятся к разным границам. Один слой не заменяет другой. При изменении pw_lessons старый API-ответ может сохраниться в промежуточном кеше, хотя база уже содержит новое число. Поэтому в диагностической таблице нужен сценарий изменения данных и ожидаемого обновления. Ускорение, которое долго показывает неправильное количество уроков, не соответствует задаче каталога.
Связь измерения с решением
Ожидаемая запись результата должна объяснять действие: «большая схема заменена подходящей копией», «удалён ресурс, не нужный странице», «выборка ограничена тем же публичным договором». После изменения повторите тот же сценарий и проверьте текст, меню, поиск и адреса. Не складывайте улучшения разных машин и режимов в одну красивую диаграмму. Один предметный вывод с известными условиями полезнее неподтверждённого процента общего ускорения.
В этой задаче измерения, профилировщики и кеширующие плагины не запускались. Исходники остаются учебными, таблица — незаполненной матрицей. Следующая глава рассмотрит обновления: новые версии способны менять поведение и стоимость, поэтому паспорт среды и эти сценарии становятся частью процесса совместимости и возврата, а не разовой попыткой получить хороший показатель.