Перейти к содержимому

12. Оптимизация и Кэширование

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

stack
label "Browser Cache (Static files)"
label "Page Cache (HTML output)"
label "Object Cache (Database results)"
label "OpCode Cache (PHP byte code)"

Сохраняет динамическую страницу в статический HTML файл. При следующем посещении сервер отдает файл вместо выполнения PHP кода. Инструменты: WP Rocket, W3 Total Cache, WP Super Cache.

WordPress предоставляет API для кэширования результатов тяжелых операций (например, сложных запросов к БД). Технологии: Redis, Memcached.

// Пример использования Object Cache
$cache_key = 'yasha_latest_projects';
$projects = wp_cache_get( $cache_key );
if ( false === $projects ) {
$projects = get_posts( ['post_type' => 'portfolio'] );
wp_cache_set( $cache_key, $projects, '', HOUR_IN_SECONDS );
}

Со временем база наполняется ревизиями записей и мусором в wp_options.

Рекомендации:

  • Ограничение ревизий в wp-config.php: define('WP_POST_REVISIONS', 5);.
  • Использование индексов для кастомных таблиц.
  • Удаление неиспользуемых плагинов (они часто загружают данные через autoload в wp_options).

Всегда используйте wp_enqueue_script с правильными зависимостями и версионированием.

wp_enqueue_script(
'yasha-main',
get_template_directory_uri() . '/js/main.js',
['jquery'],
filemtime( get_template_directory() . '/js/main.js' ),
true // Загрузка в футере
);
  • Query Monitor: Плагин №1 для поиска медленных запросов и ошибок PHP.
  • WP-CLI: Позволяет очищать кэш и оптимизировать БД через терминал.
  • Используйте Page Caching для всех сайтов.
  • Подключайте Redis для высоконагруженных проектов.
  • Следите за размером таблицы wp_options.
  • Оптимизируйте изображения (WebP) и шрифты.

Дашборд оптимизации WordPress: