По умолчанию каждый запрос к сайту, включая картинки и стили, может проходить через правила WordPress. Правильный конфиг nginx отдаёт статику напрямую и запускает PHP только там, где это нужно.
Минимальный набор:
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
location ~ \.(js|css|png|jpg|webp|svg|woff2)$ {
expires 30d;
access_log off;
}
Что это даёт: статика отдаётся с диска без PHP, логи не засоряются тысячами строк про картинки, браузер получает заголовки кэширования.
Что добавить следующим шагом: блокировку запросов к xmlrpc.php, если он не нужен, и запрет на исполнение PHP из папки загрузок. Это уже безопасность, но она тоже экономит ресурсы: боты перестают греть процессор бесполезными обращениями.
WordPress: скорость и кэш
@wp_speed_lab
nginx для WordPress: убираем лишние запросы к PHP
Этот пост опубликован в Telegram-канале WordPress: скорость и кэш. Подписаться можно по ссылке: @wp_speed_lab.